Как дать равный запас для внутреннего div?

0

Как мы можем сделать внутренний 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%;
}
  • 5
    Ваши решения в том, что я не хочу делать что-то подобное, это чистый CSS
Теги:
css-float

3 ответа

1

Ну, у вас странные пожелания, так как вы не хотите использовать свойство 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;
}
  • 0
    Дум ... Что если содержимое внутреннего div превышает высоту 100px :)?
  • 0
    @MackMon Добро пожаловать :)
Показать ещё 8 комментариев
1

Дайте внутренний верхний, нижний, левый и правый. это сделает промежуток между ним и внешним.

<!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>
  • 0
    Даже это хорошее решение, так что +1 от меня :)
  • 0
    Используя это решение, вы можете получить любые определения блоков, которые составляют размеры (относительные, фиксированные и т. Д.). внутренний должен иметь абсолютный размер (он находится внутри внешнего).
Показать ещё 1 комментарий
0

Дайте padding к .outer.

Пытаться:

.outer{
    height: 90px;
    width: 90px;
    padding:5px;
    background-color: gainsboro;
}
.inner{
    background-color: wheat;        
    height:100%;
}

ДЕМО здесь.

  • 0
    обратный к .inner {height: 90px; }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню