我正在使用DIV
创建一个网站。除非我创建DIV,否则一切正常。我像这样创建它们(例子):
newdiv {
width: 200px;
height: 60px;
padding-left: 20px;
text-align: left;
}
当我添加padding-left
属性时,DIV
的宽度更改为220px,我希望它保持在200px。
假设我创建另一个名为DIV
的{{1}}与anotherdiv
完全相同,并将其放在newdiv
内,但newdiv
没有填充和{ {1}}有newdiv
。我得到同样的东西,anotherdiv
的宽度将是220px。
如何解决此问题?
答案 0 :(得分:360)
添加属性:
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box; /* Firefox, other Gecko */
box-sizing: border-box; /* Opera/IE 8+ */
注意:在版本8以下的Internet Explorer中,此无效。
答案 1 :(得分:39)
答案 2 :(得分:8)
如果您想在不改变div大小的情况下缩进div中的文本,请使用CSS text-indent
而不是padding-left
。
.indent {
text-indent: 1em;
}
.border {
border-style: solid;
}

<div class="border">
Non indented
</div>
<br>
<div class="border indent">
Indented
</div>
&#13;
答案 3 :(得分:8)
只需添加box-sizing: border-box;
答案 4 :(得分:1)
当我添加padding-left属性时, DIV的宽度变为220px
是的,这完全符合标准。这就是它应该如何运作。
假设我创建另一个名为DIV的DIV 另一个与newdiv完全相同, 把它放在newdiv但newdiv中 没有填充,而另一个有 padding-left:20px。我得到了同样的结果 事情,newdiv的宽度将是220px;
不,newdiv将保持200px宽。
答案 5 :(得分:-1)
只需将div宽度更改为160px 如果你有一个20px的填充,它会增加你的div的宽度40px,所以你需要从宽度减去40px,以保持你的div看起来正常,并且没有扭曲,加上额外的宽度,你的文字都搞砸了。 / p>