1.盒模型和怪异盒模型

标准盒模型

一、标准盒模型类比

    当我们在学习H5前端的时候,首先应该了解的是盒模型的结构,这样在写页面的时候才不会结构不清除,导致属性设置起来不明白,只是试出来,却不懂底层的原理。

    首先可以先在html中写个div,然后给div加上width,height ,background;设置好之后在谷歌浏览器运行打开。

会看到如下的界面:



这个里面就会出现后下角这个div的盒子模型。万物皆盒子,每个标签可以看成一个盒子。每个标签写在html里面,然后都可以通过浏览器的这里去看它的盒子模型,有的是有margin的,有的没有。

盒模型就是包含:margin、padding、border、内容区域

理解盒模型:

    我们将盒子比喻成一个家,家里有院子和一个房子。

   内容区域:(就是你家里的这个房子),设置width、height的区域,内容只能写在设置宽高的区域里面。

   padding:(就是你家的院子,即就是你家的房子离你家的外墙的距离)border和内容区域的距离,称为内边距。

   border: (就是你家的围墙) ,称为边框。

   margin: (就是你家的围墙和别人家的围墙的距离),称为外边距。

二、padding

由于布局的时候是从左到右,从上到下。所以padding就是将内容向下或者向右挤。

随着内容的向右或向下,盒子的边界也会相应的移动。(这就相当于你家的里面的房子不变,但是院子变大了,那围墙就得相应的变大)。

我们可以利用padding来让内容远离自己的盒子边界,从而实现两个盒子内容之间的距离的变化。

padding:简写属性后面的值;
padding:10px; 1个值:代表四个方向设置相同的内边距;
padding:10px 20px; 2个值:上下 左右
padding:10px 20px 30px; 3个值:上 左右 下
padding:10px 20px 30px 40px; 4个值:上 右 下 左。

都是顺时针的方向写值。

三、margin

margin可以改变盒子与盒子之间的距离。

margin布局也遵循从上到下,从左到右的原则。

    margin-top:会将自身盒子向下推

    margin-left:会将自身盒子向右推,

    margin-right:会与将盒子同行排列的同级元素向右推。

    margin-bottom:会将相邻的同级元素向下推。

嵌套结构下:子级通过margin来改变子级在父级中的位置,margin-left指的是子级左边框到父级内容区域左边界的距离。

                其他方向也是子级边框到父级内容区域边界之间的距离

四、嵌套结构下当父级没有明确的上边界时

    嵌套结构下,当父级没有明确的上边界时(border,padding),这时候子级设置margin-top的话,就会传递给父级,带着父级一起向下移动。

    解决方法:给父级加上边界。

(一般项目中,我们如果希望子级和父级之间顶部有一定的间隙,优先使用为父级设置上padding来解决,防止margin-top传递问题发生。
margin-top传递问题一般发生在高级浏览器上,IE8以下浏览器无此问题。)

五、同级块在设置margin的时候,各个块的margin会不会叠加的问题。

    block块 : 默认文本流,width是和父级相同;margin竖直方向会重叠(一倍),水平方向会叠加(2倍)。
    float块:尺寸由内容撑开;四个方向的margin会叠加。
定位块: fixed,尺寸由内容撑开,四个方向的margin会叠加
absolute,尺寸由内容撑开,四个方向的margin会叠加。
relative,依然具有默认文本流的特性。

怪异盒模型

六、怪异盒模型与标准盒模型对比

盒子在设置了box-sizing:border-box;后,盒子就成普通盒模型变成了怪异盒模型了。

怪异盒模型在设置width和height后,再去设置把border、padding都是将内容区域变小,不会影响盒子的整体大小,盒子的整体大小还是前面设置的width和height。

怪异盒模型:就是设置了宽高之后;不管再设置border和padding,这个盒子都是前面设置的宽高。
标准盒模型:就是设置了宽高之后;再设置了border和padding。这个盒子的整体的宽高就是 开始设置的宽高+padding+border;
所以开始设置的宽高在标准盒模型里面都是内容的宽高。
                怪异盒模型的适用范围:移动端随意用,PC端ie8以下不适合用。

















猜你喜欢

转载自blog.csdn.net/qq_37883356/article/details/80690071
今日推荐