如何添加填充或边界的DIV,并保持宽度和高度?
是否有某种方式将一组宽度/高度的DIV,和垫没有DIV日益增长的内容?看下面的例子。我想要所有的盒子都是140x140。如何添加填充或边界的DIV,并保持宽度和高度?
HTML:
<div class="box1">Howdy.</div>
<div class="box2">Howdy.</div>
<div class="box3">Howdy.</div>
CSS:
.box1 {
width: 140px;
height: 140px;
background: #f66;
}
.box2 {
width: 140px;
height: 140px;
background: #66f;
padding: 1em;
}
.box3 {
width: 140px;
height: 140px;
background: #6f6;
border: 1em solid #000;
}
是的,你可以使用
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box; /* Firefox, other Gecko */
box-sizing: border-box; /* Opera/IE 8+ */
改变盒模型,使边框和填充INTERNA升到你的宽度/高度,但边距仍然添加。
和更新的Fiddle
点击此处了解详情css tricks
是解决你的问题是盒大小:边界盒; (http://css-tricks.com/box-sizing/,http://paulirish.com/wp-content/uploads/2011/gplus-boxsizing.html)(适用于IE8 +和所有现代浏览器)
Dampsquid击败了我1秒:/ – 2012-03-12 22:13:05
根据您需要支持的浏览器,您可以将这些DIV上的框尺寸属性更改为边框。这将允许你设置一个高度,每个盒子上的宽度,不填充或边框影响你设置的尺寸。
曾有人建议由少数人来,因为它使事情变得更容易的风格(可以说是一个更好的盒子规模模型比默认),用于复位所有元素设置此全局。要做到这一点,你会使用类似:
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
的更多信息,包括浏览器的支持和一些一般性警告可以在这里找到:http://paulirish.com/2012/box-sizing-border-box-ftw/
是刚刚减去高度和宽度填充两次或边界(换句话说,减去从div
的每一侧上的填充或边框):
.box1
{
width: 140px;
height: 140px;
background: #f66;
}
.box2
{
width: 130px;
height: 130px;
background: #66f;
padding: 5px;
}
.box3
{
width: 130px;
height: 130px;
background: #6f6;
border: 5px solid #000;
}
最干净的方法很可能是巢<div>
标签当前的<div>
标签中,并应用填充,以他们:
<div class="box" id="box1"><div>Howdy.</div></div>
<div class="box" id="box2"><div>Howdy.</div></div>
<div class="box" id="box3"><div>Howdy.</div></div>
CSS:
.div { /* ... */ }
.div > div { padding: 1em; } /* Apply to all inner divs */
#box2 > div { padding: 1em; } /* Only apply to the inner div in #box2 */
比黑客更好,并且跨浏览器一致! – rashid 2014-03-29 10:27:46
你举的例子是正确的,但你没不提[来源](http://css-tricks.com/box-sizing/)。如果你添加,我会删除我的downvote。 – bfavaretto 2012-03-12 22:14:03
有大量的来源,在谷歌加入我用者之一,第一次一起来框中上浆 – Dampsquid 2012-03-12 22:18:35
是的,但你从那里粘贴的例子,包括评论,所以你应该注明出处。 Downvote删除。 – bfavaretto 2012-03-12 22:19:59