1.盒子模型

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .item {
            width: 400px;
            padding: 20px;
            margin: 30px;
            background: #ccc;
            border: 4px dashed #900;
        }
    </style>
</head>
<body>
    <div class="item">
        仃可厅终不见定的用台力,也朗太五没,呼救承我的六应设仓孔竟次办了好变非设,自者后韩以生,说羊后只惜病承和了也,导貂那九土别说,负侯原诗本太化意之者已魂的其归变,奔气都其天到,朗司脱有郭丹子韩新首天死,斯君联求骂订久韩这为升出得,下不家耳量衣法通为,憾的视。
    </div>

    <div>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Laudantium ad in ex architecto ipsa quibusdam, dolorum adipisci eligendi modi possimus delectus? Nobis dolores a consequatur tempora quis nam expedita accusantium!</div>
</body>
</html>

前端-css-03-LMLPHP

内容(content): 内容是元素的核心区域,元素中的文本内容和后代元素都显示在内容上。

内边距(padding):内容与元素边界的距离。

边框(border):位于元素的边界上。

外边距(margin):在元素边界之外,是与相邻元素的距离。

1.1盒子模型的相关概念

 1.2影响盒子大小的因素

1.3盒子中的内容区域

设置内容区域的宽高的 CSS 属性

1.4元素的默认宽高

默认总宽度 = 父元素内容宽度 - 自身的左右外边距
默认内容宽度 = 父元素内容宽度 - 自身的左右外边距 - 自身的左右内边距 - 自身的左右边框

1.4.1行内元素:

1.4.2行内块元素: 

块级元素:

 1.5盒子的内边距 padding

相关 CSS 属性

1.5.1padding 设置规则

前端-css-03-LMLPHP

 padding 复合属性的设置规则:

/* 1个值: 上下左右 */
padding: 20px;
/* 2个值: 上下 左右*/
padding: 40px 30px;
/* 3个值: 上 左右 下*/
padding: 10px 20px 30px;
/* 4个值: 上 右 下 左*/
padding: 15px 25px 35px 45px;

1.5.2不同显示模式的元素设置内边距:

1.6边框 border 

1.7外边距 margin

1.7.1margin 值设置的规则:

1.7.2margin 复合属性的设置规则:

 1.7.3不同显示模式的元素设置外边距:

1.7.4margin 塌陷

前端-css-03-LMLPHP

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .wrapper {
            width: 800px;
            /* height: 400px; */
            background: #ccc;

            /* 方案一 父元素有边框 */
            /* border: 1px solid #f00; */

            /* 方案二: 父元素有内边距 */
            /* padding: 10px; */

            /* 方案三: 父元素开启BFC */
            /* overflow: hidden; */
        }

        .box {
            /* display: inline-block; */
            margin-left: 100px;
          
            width: 600px;
            text-align: center;
            font-size: 40px;
            line-height: 100px;
            color: #fff;
            background: #900;
        }

        .box01 {
            margin-top: 60px;
        }

        .box02 {
            margin-top: 20px;
        }

        .box03 {
            margin-top: 20px;
            margin-bottom: 100px;
        }
    </style>
</head>
<body>
    <div>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Debitis, minus!</div>
    <div class="wrapper">
        <div class="box box01">自言惶,死降就,就。</div>
        <div class="box box02">自言惶,死降就,就。</div>
        <div class="box box03">自言惶,死降就,就。</div>
    </div>
    <div>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Debitis, minus!</div>

</body>
</html>
1.7.4.1 解决 margin 塌陷

1.7.5 margin 合并(不用解决)

 前端-css-03-LMLPHP

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .wrapper {
            padding: 20px;
            width: 600px;
            height: 400px;
            background: #ccc;
        }

        .box {
            /* display: inline-block;
            margin-left: 20px;
            margin-right: 20px; */
            width: 100px;
            height: 100px;
        }

        .box01 {
            margin-bottom: 30px;
            background: #900;
        }

        .box02 {
            margin-top: 40px;
            background: #080;
        }

        .box03 {
            background: #099;
        }


    </style>
</head>
<body>
    <div class="wrapper">
        <div class="box box01"></div>
        <div class="box box02"></div>
        <div class="box box03"></div>
    </div>



   
</body>
</html>

 1.8内容溢出

前端-css-03-LMLPHP

auto 和 scroll 的区别:

1.9隐藏元素

1. 设置 visibility:hidden;   元素隐藏但是占据位置
2. 设置 display:none;  元素彻底隐藏,不占据位置 

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .wrapper {
            padding: 20px;
            width: 600px;
            height: 400px;
            background: #ccc;
        }

        .box {
            width: 300px;
            height: 100px;
        }

        .box01 {
            background: #900;
        }

        .box02 {
            background: #080;

            visibility: hidden;
            /* display: none; */
            /* visibility: visible;
            visibility: hidden;
            display: none; */
        }

        .box03 {
            background: #099;
        }


    </style>
</head>
<body>
    <div class="wrapper">
        <div class="box box01"></div>
        <div class="box box02"></div>
        <div class="box box03"></div>
    </div>



   
</body>
</html>

可以隐藏没有任何内容的div

前端-css-03-LMLPHP

 2.样式继承和自带样式

2.1哪些样式可以被后代元素继承:

1. 字体样式 font-size、font-weight、font-style font-family、font
2. 文字颜色 color
3. 文本样式 letter-spacing、word-spacing、text-decoration、text-indent、text-align、line-height (vertical-align 不可以被继承)

2.2自带样式(用户代理样式)

标题h1~h6 自带 font-size、font-weight、上下外边距
p 自带 上下外边距
em 自带 font-style
strong 自带 font-weight
a 自带 color、text-decoration、cursor
ul、ol 自带 padding-left、上下外边距

2.3继承的样式、自带的样式、直接设置的样式
直接设置的样式 > 自带的样式 > 继承的样式

04-05 05:09