【发布时间】:2019-12-10 07:36:36
【问题描述】:
以下是简单的三栏设计的 HTML 和 CSS 代码。但是当我添加padding: 0 1%; 时,它会破坏列并将第三列推到第二行。这真的很奇怪,因为我认为我添加了填充,它应该在 div 内,而不是边距?我该如何解决?
#container {
width: 800px;
margin: 0 auto;
}
.row {
width: 100%
}
.part {
width: 33.33%;
padding: 0 1%;
}
<div id="container">
<div class="row">
<div class="part"><img>
<p class="text">some text</p>
</div>
<div class="part"><img>
<p class="text">some text</p>
</div>
<div class="part"><img>
<p class="text">some text</p>
</div>
</div>
<div class="row">
<div class="part"><img>
<p class="text">some text</p>
</div>
<div class="part"><img>
<p class="text">some text</p>
</div>
<div class="part"><img>
<p class="text">some text</p>
</div>
</div>
<div class="row">
<div class="part"><img>
<p class="text">some text</p>
</div>
<div class="part"><img>
<p class="text">some text</p>
</div>
<div class="part"><img>
<p class="text">some text</p>
</div>
</div>
</div>
【问题讨论】:
-
在#container 中添加 box-sizing:border-box。它将在元素的总宽度和高度中包含填充和边框
-
@HienLuong 不是#container,而是
.part,但是由于百分比宽度和填充,这可能会导致 IE 出现问题。 -
另外 - div 是块元素 - 让它们
inline-block -
您考虑过使用引导程序吗?你在这里重新发明轮子。
-
@fnostro 不适用于给定的 html,因为 div 之间有空格
标签: html css responsive-design multiple-columns padding