浅谈css盒模型

盒模型

做网页设计,对网页中的每个元素的了解就尤为重要,“box model”这一术语,就经常被我们提到了。

见名知意,"box model",也就是网页中存放着元素的各个方方正正的盒子,我们称它为盒模型。

盒模型示意图

盒模型的属性

width:;元素宽度

height:;元素高度

padding:;元素内填充物,也就是元素到边框的距离

border:;盒模型边框,也就是盒子的宽度

margin:;盒模型外边距

那么我们了解了盒模型的属性,便可以通过示意图,来得出盒模型真正的宽高

盒模型真实的宽度:width+2*padding+2*border

盒模型真实的高度:height+2*padding+2*border

padding的用法

    1:padding是长在内容和和盒子之间的,在盒子内部。

    2:padding是为了调整子元素在父元素里面的位置关系。

    3:padding的特点:padding会把盒子给撑大,这也就是盒子实际宽为什么加上padding的原因 

    4:如果想让盒子保持大小,需要在原有宽高的基础上减掉padding值。

    5:可以给单一方向设置padding。

        padding-left:;向左设置

        padding-right:;向右设置

        padding-top:;向上设置

        padding-bottom:;向下设置

    6:也可以直接通过padding进行设置。

        padding:1个值;向四周设置

        padding:2个值;第一个值代表上下,第二个值代表左右

        padding:3个值;第一个值上,第二值为左右,第三个值为下

        padding:4个值;分别为上,右,下,左

    7:padding是不能够设置负值的。

    8:padding也不会对背景图造成影响。

    9:如果一个盒子它本身没有设置宽高,那么添加padding时是不用减的。

border的用法

    1:可以通过border-width来设置边框粗细eg:border-width:1px;

    2:具有常用的四种不同的边框线样式,通过border-style:;来进行设置。

        solid(实线)  dashed(虚线)  dotted(点状线)  double(双线)

    3:可以通过border-color来对边框添加颜色样式eg:border-color:red;

    4:也可以合起来,直接用border来进行设置eg:border:1px solid red;

    5:我们通过border也可以完成一个好玩的事情,可以通过border自身带的特性,在网页上完成一个三角形。

      eg:

<style>
        div{
            width: 0;
            border-top: 100px solid pink;
            border-right: 100px solid transparent;
            border-left: 100px solid  transparent;
        }
    </style>
</head>
<body>
    <div></div>
</body>

margin的用法

    1:margin是长在元素之外的。

    2:margin控制的是同级元素之间的位置关系。

    3:margin不会对盒子本身宽高造成影响。

    4:给单一方向添加margin值。

        margin-left:;向左设置

        margin-right:;向右设置

        margin-top:;向上设置

        margin-bottom:;向下设置

    5:也可以单独设置margin值。

        margin:1个值;向四周设置

        margin:2个值;第一个值代表上下,第二个值代表左右

        margin:3个值;第一个值上,第二值为左右,第三个值为下

        margin:4个值;分别为上,右,下,左

    6:相比padding,margin是可以设置负值的。

    7:margin有一个小bug:

        a:当父元素和第一个子元素没有设置浮动的时候,给第一个子元素增加margin-top把整体都拉下来,也就是错误的把margin-top加到了父元素上面。

        b:上下相邻的两个元素之间的margin值,不会叠加,按照最大值去设置。

    8:margin:0 auto;可以使当前元素在父元素中居中呈现。

有一些标签是自带一些padding值和margin值的,为了方便我们在网页设计更好的设计版块,也可以通过以上我们总结的知识进行一个设置

*{
    margin:0; 
    padding:0;      
}

这样,我们所有的标签默认的margin值和padding值都被设置为0。

posted on 2020-03-31 17:47  Huskie!  阅读(192)  评论(0编辑  收藏  举报