如何在不添加预定义宽度的情况下向元素添加填充?
最好定义一列的宽度来为布局创建一个干净的网格;但也想为列内的内容添加填充。有什么方法可以指定吗?
element {
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box; /* Firefox, other Gecko */
box-sizing: border-box; /* Opera/IE 8+ */
}
使用 box-sizing,它使填充包含在内: https ://developer.mozilla.org/en-US/docs/CSS/box-sizing
例子:
div {
box-sizing:border-box;
-moz-box-sizing:border-box; /* Firefox */
-webkit-box-sizing:border-box; /* Safari */
}
值得注意的是,这不适用于 IE7。
对于 IE8,请参阅此问题的最佳答案:box-sizing:border-box => for IE8?
每次向块元素添加填充时,该元素的宽度都会发生变化。这个问题有很多解决方案。我通常设置margin
为第一个子元素并width: 100%
为此元素设置。
例如,我们有:
<div id="main">
<div id="child">
This is content with margin
</div>
</div>
这些元素的 CSS 样式:
#main {
border: solid 1px red;
float: left;
width: 5em;
}
#child {
border: solid 1px blue;
float: left;
width: 100%;
margin: 0.5em;
}
这是任何浏览器的解决方案
这是一个旧线程,我知道。但是上次我有一个完整的黑洞,关于制作一个没有设置宽度和填充的 DIV,所以它不会炸毁我的 3 列行和 CSS2。所以我放了一个左浮动的DIV,右浮动的DIV,在它们之间放置一个没有浮动且没有固定宽度的DIV,但我想在其中添加填充。那个怎么样...
我放弃了。:D 但我在中间放了一个内部 DIV 并给它 width=90%。到目前为止一切顺利,这是一个非常简单但不是很好的解决方案,但有时它有助于实现您需要的外观。;]
br