Добавление дополнительного отступа к элементу div, вызывающему перемещение других элементов div - CSS?
Я создал скрипку, которая работает нормально, но всякий раз, когда я пытаюсь добавить дополнительный левый отступ к lef-col
другие два деления движутся вниз.
Я ожидаю, что заполнение применяется к внутреннему содержимому и внешней границе div, но в этом случае это выглядит как добавление к div
расчет. Дайте мне знать, что я неправильно понимаю для прохождения.
PS - я исправил, подав заявку box-sizing: border-box
в left-col
, Я ищу e.xplanation для этой причины, чем решение (хотя приветствуются и альтернативные решения!!)
Код -
HTML -
<div class="container">
<div class="left-col">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dignissimos illum perferendis corporis, nemo dolorem, mollitia at sequi quis corrupti. Fugit eaque dolores inventore, aliquam quisquam, saepe officiis eos quia at!</p>
</div>
<div class="mid-col">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dignissimos illum perferendis corporis, nemo dolorem, mollitia at sequi quis corrupti. Fugit eaque dolores inventore, aliquam quisquam, saepe officiis eos quia at!</p>
</div>
<div class="right-col">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dignissimos illum perferendis corporis, nemo dolorem, mollitia at sequi quis corrupti. Fugit eaque dolores inventore, aliquam quisquam, saepe officiis eos quia at!</p>
</div>
</div>
CSS -
*, html {
margin: 0;
padding: 0;
}
body {}
.container {
padding: 20px;
overflow: hidden;
}
.left-col, .mid-col, .right-col {
width: 33.3%;
float: left;
}
.left-col {
background: lightpink;
}
.mid-col {
background: lightgreen;
}
.right-col {
background: lightblue;
}
Скрипка - https://jsfiddle.net/km2brd8m/
3 ответа
Если вы добавите box-sizing: border-box
в left-col
это будет работать, и причина в том, что при использовании box-sizing: border-box
отступы включены в заданную ширину.
Вы также можете вычесть отступы из ширины, используя CSS Calc
.left-col {
width: calc(33.3% - 20px);
background: lightpink;
padding-left: 20px;
}
Добавить box-sizing: border-box;
собственность на три столбца. Это будет включать заполнение его общими размерами, а не за пределами исходных размеров, как это происходит в настоящее время.
padding
увеличивает пространство, используемое элементом, так же, как margin
, border-box
заставляет его использовать пространство от самого элемента вместо увеличения его размера.
Вы можете прочитать больше об этом здесь.