学习盒模型的整理转述

前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!

1. css盒模型有标准盒模型和IE盒模型,结构是:content、padding、border、margin。

css3有个box-sizing属性,设置用哪种盒模型;

box-sizing:content-box(默认)  标准盒模型;

box-sizing:border-box IE盒模型;

用的比较多的就这两种。

页面中每个元素都被当成一个矩形盒子,占一定空间;

标准盒模型所占空间宽度=marginLeft + borderLeft + paddingLeft + width+ paddingRight + borderRight + marginRight ;

IE盒模型所占空间宽度=marginLeft + width +marginRight ;    (IE盒模型的css里的width属性值已经包含了border和padding)

高度是一样的,分为标准盒模型和IE盒模型;

2. 上面主要讲的是block块元素的盒子模型,inline行内元素的盒子模型也有所区别(有的叫线模型,不确定是否准确),结构是一样的;

inline元素的空间是有内容撑开的,在没有转换元素类型的情况下css设置width和height是没有用的(如果没有内容,就不占据空间);

设置margin-top\margin-bottom,也不占空间;

设置padding-top\padding-bottom,不占据空间,但是背景色可以覆盖(这又涉及到背景background的知识)

只有margin-left\margin-right\padding-left\padding-right有用;

学习盒模型的整理转述

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            .wrapper{
                width: 300px;
                height: 300px;
                background: #333;
                position: absolute;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                margin: auto;
            }
            .nothing{
                width: 200px;
                height: 100px;
                background: #0f2;
            }
            .test{
                width: 100px;
                background: #f90;
                padding-left: 20px;
                padding-right: 60px;
                padding-top: 30px;
                padding-bottom: 20px;
                
                margin-left: 20px;
                margin-right: 60px;
                margin-top: 30px;
                margin-bottom: 20px;
            }
        </style>
    </head>
    <body>
        <div class="wrapper">
            <div class="nothing">被压住了</div>
            span测试
        </div>
    </body>
</html>
View Code