2012-03-12 50 views
15

是否有某种方式将一组宽度/高度的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; 
} 

小提琴:http://jsfiddle.net/Wrc5S/

回答

21

是的,你可以使用

-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

+0

你举的例子是正确的,但你没不提[来源](http://css-tricks.com/box-sizing/)。如果你添加,我会删除我的downvote。 – bfavaretto 2012-03-12 22:14:03

+0

有大量的来源,在谷歌加入我用者之一,第一次一起来框中上浆 – Dampsquid 2012-03-12 22:18:35

+0

是的,但你从那里粘贴的例子,包括评论,所以你应该注明出处。 Downvote删除。 – bfavaretto 2012-03-12 22:19:59

2

根据您需要支持的浏览器,您可以将这些DIV上的框尺寸属性更改为边框。这将允许你设置一个高度,每个盒子上的宽度,不填充或边框影响你设置的尺寸。

曾有人建议由少数人来,因为它使事情变得更容易的风格(可以说是一个更好的盒子规模模型比默认),用于复位所有元素设置此全局。要做到这一点,你会使用类似:

* { 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
    box-sizing: border-box; 
} 

的更多信息,包括浏览器的支持和一些一般性警告可以在这里找到:http://paulirish.com/2012/box-sizing-border-box-ftw/

3

是刚刚减去高度和宽度填充两次或边界(换句话说,减去从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; 
} 

拨弄例如:http://jsfiddle.net/N6BYH/

1

最干净的方法很可能是巢<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 */ 
+0

比黑客更好,并且跨浏览器一致! – rashid 2014-03-29 10:27:46

相关问题