Как мы можем сделать внутренний div равными полями от внешнего div со всех четырех сторон?
Вот что я пробовал:
<div class="outer">
<div class="inner">
A
</div>
</div>
Мои стили:
div
{
overflow: hidden;
}
.outer{
height: 100px;
width: 100px;
background-color: gainsboro;
}
.inner{
background-color: wheat;
margin: 5px;
}
Примечание. Я хочу добиться этого с помощью чистого CSS+. Я не хочу делать что-то вроде этого:
.inner{
height: 90px;
}
или
.inner{
height: 90%;
}
Ну, у вас странные пожелания, так как вы не хотите использовать свойство height
, поэтому единственный способ - использовать display: table;
для родительского элемента и display: table-cell;
для дочернего элемента. И так как элемент td
не будет использовать margin
am, используя padding
на родительском элементе с box-sizing
установленным в border-box
чтобы он учитывал padding
внутри, а не вне элемента.
div
{
overflow: hidden;
}
.outer{
height: 100px;
width: 100px;
background-color: gainsboro;
display: table;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 5px;
}
.inner{
background-color: wheat;
display: table-cell;
}
Дайте внутренний верхний, нижний, левый и правый. это сделает промежуток между ним и внешним.
<!doctype html>
<html>
<head>
<title>
Bla!
</title>
<style type='text/css'>
div { overflow:hidden; }
div.outer {height:100px; width:100px; background-color:gainsboro; position:absolute}
div.outer >div {top:5px; left:5px; right:5px; bottom:5px; position:absolute; background-color: wheat;}
</style>
</head>
<body>
<div class='outer'>
<div></div>
</div>
</body>
</html>
Дайте padding
к .outer
.
Пытаться:
.outer{
height: 90px;
width: 90px;
padding:5px;
background-color: gainsboro;
}
.inner{
background-color: wheat;
height:100%;
}