DIV宽度(%)和填充

时间:2013-09-15 10:05:45

标签: html css

我在一个980像素宽的容器中彼此相邻(左边是A,右边是B)有2个DIV。我为A和B设置了50%的宽度,效果很好。

问题:我想为DIV A添加一些填充权限,以便其中的文本不会触及div B的文本。如果我这样做,我需要调整DIV的%(即48%)。有没有办法避免这种情况? (即根据填充量自动调整%)

7 个答案:

答案 0 :(得分:2)

您可以使用填充将box-sizing:border-box应用于div

-moz-box-sizing: border-box;
box-sizing: border-box;

Live demo

来自MDN

  

border-box
  宽度和高度属性包括填充和边框,但不包括边距。

box-sizing一直支持IE8。

答案 1 :(得分:2)

您可以再使用一次div包裹:

<div class="wrapper">
    <div class="inner">
         <div class="left"></div>
         <div class="right"></div>
    </div>
</div>

.wrapper { width: 960px; }
.inner { padding: 1em; }
.left, .right { width: 50%; float: left; }

或者使用box-sizing使得计算变得非常容易。

-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;

它会更改填充和边框的渲染,以便它们包含在宽度中而不是添加到其中。

答案 2 :(得分:2)

如果您想在不减小div宽度的情况下添加填充,可以使用:box-sizing: border-box; More info

e.g。

-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box;    /* Firefox, other Gecko */
box-sizing: border-box;         /* Opera/IE 8+ */

这将使div成为所需的宽度(50%),并且将减去填充而不是添加到div。请注意这是一个CSS3属性,并不适用于所有版本的IE: http://caniuse.com/css3-boxsizing

答案 3 :(得分:2)

是的,您可以使用box-sizing属性。通过设置:

box-sizing: border-box;

width属性将设置总宽度(包括边框和填充),例如div为:

div {
    width:500px;
    padding: 20px;
    border: 10px solid blue;
    box-sizing: border-box;
}

的视觉总宽度为500px,而不是默认宽度为500 + 40 + 20 = 560px。

供参考:http://css-tricks.com/box-sizing/

答案 4 :(得分:2)

HTML

<div class="tbl">
  <div class="row">
    <div class="cell">A</div>
    <div class="cell">B</div>
  </div>
</div>

CSS:

.tbl{

  display:table;
  border-spacing:5px;
}
.row{
  display:table-row;

}
.cell{
  display:table-cell;
  width:50%;
}

答案 5 :(得分:2)

宽度,边距和宽度填充值使用%或em值

看一下这段代码

 .container { 
     max-width: 980px;
 }
 section {
     float: left;
     margin: 0.0122448;   /*  10px ÷ 980px */
     width: 0.479591;   /* 470px ÷ 660px  */   
 }
 aside {
     float: right;
     margin: 0.0122448;   /*  10px ÷ 980px */
     width: 0.479591;   /* 470px ÷ 980px */
}

有关响应式设计的完整教程 -

http://learn.shayhowe.com/advanced-html-css/responsive-web-design

答案 6 :(得分:2)

您必须使用box-sizing:border-box;因为使用border-box;会让您看到带有边框和&amp;的框。它将自行管理边框的空间。

你可以自己给出边框的宽度和颜色border:2px solid black;。因此,你们两个div的内容可能会有所不同。