海欣 發表於 2023-9-9 11:35:36

padding、border会把div撑大的解决方法

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">盒子模型的组成:</a></li><li><a href="#_label1">box-sizing下的盒子模型</a></li><li><a href="#_label2">calc()的运用</a></li></ul></div><p>所有HTML元素都可以看作盒子。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。因为Div添加了padding、border,Div的实际宽度=Div的初始固定值+边距值+边框值</p>
<p class="maodian"><a name="_label0"></a></p><h2>盒子模型的组成:</h2>
<blockquote><p>Margin(外边距) - 清除边框外的区域,外边距是透明的。<br />Border(边框) - 围绕在内边距和内容外的边框。<br />Padding(内边距) - 清除内容周围的区域,内边距是透明的。<br />Content(内容) - 盒子的内容,显示文本和图像</p></blockquote>
<p>以上是html中盒子模型的结构,每个元素都可以用这个盒子模型来解析。在开发中,一个元素的样式表现形式,也是由这个盒子模型的每个部分来表现的。对应到css中样式的属性有一下几个纬度&mdash;&mdash;width, height, padding, border, margin。由于在不同的浏览器中,这几个属性所表示的盒子模型中的部分有所差异,所以又分为了标准盒子模型和怪异盒子模型。</p>
<p class="maodian"><a name="_label1"></a></p><h2>box-sizing下的盒子模型</h2>
<p>语法:(属性)box-sizing: (属性值)content-box/border-box/inherit;</p>
<p>box-sizing对盒子模型的影响:</p>
<p>(1)当&ldquo;box-sizing&ldquo;的值为&rdquo;content-box&ldquo;时,css中的width所包含的部分是盒子模型中content的宽度。此时和标准盒子模型表现一致。</p>
<p>(2)当&ldquo;box-sizing&ldquo;的值为&rdquo;border-box&ldquo;时,css中的width所包含的是盒子模型中的content的宽度+padding+border的宽度。此时和怪异盒子模型的表现一致。</p>
<p>总结:box-sizing属性,让开发人员可以控制浏览器的是以标准盒子模型表现,还是以怪异盒子模型表现。</p>
<div class="jb51code"><pre class="brush:css;">.box {
box-sizing: border-box;
padding   : 0 20px;
width   : 780px;
height    : 355px;
background: #f2f1ef;
}</pre></div>
<p></p>
<p class="maodian"><a name="_label2"></a></p><h2>calc()的运用</h2>
<p>知道总宽度是100%,在这个基础上减去boder的宽度(5px * 2 = 10px),在减去padding的宽度(10px * 2 = 20px),即&rdquo;100% - (10px + 5px) * 2 = 30px&rdquo; ,最终得到的值就是div.box的width值:</p>
<div class="jb51code"><pre class="brush:css;">.box {
    background: #f60;
    height: 50px;
    padding: 10px;
    border: 5px solid green;
    width: 90%;/*写给不支持calc()的浏览器*/
    width:-moz-calc(100% - (10px + 5px) * 2);
    width:-webkit-calc(100% - (10px + 5px) * 2);
    width: calc(100% - (10px + 5px) * 2);
}</pre></div>
<p></p>
頁: [1]
查看完整版本: padding、border会把div撑大的解决方法