CSS盒子模型

    xiaoxiao2021-03-25  171

    这是一个迷茫,惶恐的三月,最近很着急,很害怕,有一种火烧眉毛,才知道自己之前浪费了多少时间。但是不管怎么样,相信只要一直学习巩固,过得充实了,剩下的就顺其自然了。说了一堆废话,接下来步入正题,谈一下,CSS著名的盒子模型。


    一. 盒子模型简述: 相信大家都知道,只要是块级元素,就都有自己的盒子模型,盒子模型由:content(内容)+padding(填充)+border(边框)+margin(边界)组成,也就是说,一个块级元素,实际所占的高度和宽度=content+padding+border+margin,下面是一张盒子模型的图:

    二. box-sizing属性 这个属性有两个属性值,content-box和border-box; (1)content-box:

    这是盒子模型的默认值;实现的效果是:当我们设置一个元素的固定高度和宽度时,实际上是针对content部分所设置的,当使用padding和border属性时宽度和高度会额外的增加。

    (2)border-box:

    实现效果:当我们给盒子模型指定好高度和宽度后,设置border-box值会使padding和border的值也属于所设置的高度和宽度,这样的效果更符合我们对盒子模型的认识;使用优点:使用该属性,当我们用百分比的时候,会很方便,会减少很多计算。使用缺点:兼容问题,IE6和7的标准模式下没有box-sizing属性。

    下面的代码,是这两个属性的对比效果:

    <!DOCTYPE html> <html> <head> <style> .container { width:30em; border:1em solid; } .box1 { box-sizing:border-box; -moz-box-sizing:border-box; /* Firefox */ -webkit-box-sizing:border-box; /* Safari */ width:50%; border:1em solid red; padding: 1em; background: blue; } .box2 { box-sizing:content-box; -moz-box-sizing:content-box;/* Firefox */ -webkit-box-sizing:content-box;/* Safari */ width:50%; border:1em solid yellow; padding: 1em; background: blue; } </style> </head> <body> <div class="container"> <div class="box1">第一个div</div> <div class="box2">第二个div</div> </div> </body> </html>

    效果如图:

    如图中,第一个div的box-sizing值是border-box,第二个是content-box,可以看出第二个的padding和border值并没有包含在width中,所以使用border-box来实现布局是比较容易达到预想的效果的。

    转载请注明原文地址: https://ju.6miu.com/read-2670.html

    最新回复(0)