盒子模型

组成部分

Image

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 边框 */
        .body div {
            width: 300px;
            height: 300px;

            /* 边框粗细 */
            /* border-width: 5px;  边框的粗细 */
            border-width: 5px;

            /* 边框样式 */
            /* border-style: dotted; 边框的样式 */
            /* solid-实线 dashed-虚线 dotted-点线 其余查手册*/
            border-style: dotted;

            /* 边框颜色 */
            /* border-color: bisque; 边框的颜色 */
            border-color: bisque;

            /* 复合写法 */
            /* 一般格式:粗细、样式、颜色 */
            bottom: 5px solid pink;

            /* 单独设置边框 */
            bottom-top: 5px solid pink;
            /* top、bottom、left、right */
            /* 注意:
            覆盖性——先写大的,再写小的
            bottom: 5px solid pink;
            bottom-top: 55px solid blue;
            上边框为蓝,其余为粉
            若顺序反了则全为粉
             */

            /* 注意: 边框会影响盒子的实际大小 */
            /* 实际大小 = 盒子大小 + 边框大小 */
        }

        /* 表格细线边框 */
        table,
        td,
        th {
            border: red 1px solid;
            font-style: 14px;
            text-align: center;

            /* 边框合并 */
            /* 由于相邻边框重叠,实际宽度不修改会为两倍 */
            border-collapse: collapse;
        }

        /* 盒子内边距padding */
        .padding {
            width: 200px;
            height: 300px;
            background-color: red;

            /* 内边距设置 */
            padding-left: 5px;
            padding-top: 30px;
            padding-bottom: 5px;
            padding-right: 5px;

            /* 复合写法 */
            /* padding: 5px; 上下左右有5px */
            /* padding: 5px 7px; 上下有5px 左右为7px */
            /* padding: 5px 7px 9px; 上为5px,左右为7px,下为9px */
            /* padding: 5px 6px 7px 8px; 上为5px,右为6px,下为7px,左为8px */

            /* 注意: padding会影响盒子的实际大小 */
            /* 实际大小 = 盒子大小 + padding大小 */
            /* 可以用此特性完成设计,不用宽度用内边距设定大小 */
        }

        /* padding不会撑开盒子的情况 */
        h1 {
            /* 不给宽度就不会撑开 */
            /* 两种情况: 1.默认宽度 2.继承来的大小 */
            height: 500px;
            background-color: pink;
            padding: 30px;

            /* 此时会多加30px */
            /* width: 100%;
            height: 500px;
            background-color: pink;
            padding: 30px; */
        }

        /* 盒子外边距margin */
        .margin {
            width: 200px;
            height: 300px;
            background-color: rgb(0, 255, 89);

            /* 外边距设置 */
            /* 和padding规则相同 */
            margin-top: 50px;
            margin-bottom: 5px;
            margin-left: 5px;
            margin-right: 5px;

            /* 复合写法 */
            /* margin: 5px; */

            /* 让盒子水平居中对齐 */
            /* 有以下写法:
            margin-left: auto; margin-right: auto;
            margin: 0 auto; 上下为0,左右为auto */
        }

        /* 行内元素或者行内块元素居中对齐 */
        .hnk {
            /* 方法:给父元素添加text-align: center;即可 */
            width: 900px;
            height: 400px;
            background-color: pink;
            text-align: center;
            margin: auto;
        }

        /* 外边距合并-套嵌块元素塌陷 */
        /* 塌陷案例 */
        .father {
            width: 400px;
            height: 400px;
            background-color: red;
            margin-top: 50px;
        }

        .son {
            width: 40px;
            height: 200px;
            background-color: pink;
            margin-top: 100px;
            /* 谁大谁会塌陷,父元素和子元素无论谁大会把另一个也拖下来 */
        }

        /* 解决方法 */
        /* 1.为父元素加上边框 border 如:border:1px solid transparent;
        2.为父元素定义内边距
        3.为父元素添加overflow: hidden */
        .father2 {
            width: 400px;
            height: 400px;
            background-color: red;
            margin-top: 50px;
            overflow: hidden;
            /* padding: 10px; */
        }

        .son2 {
            width: 20px;
            height: 100px;
            background-color: pink;
            margin-top: 100px;
        }

        /* 清除浏览器内外边距 */
        /* * {
            margin: 0;
            padding: 0;
        } */
        /* 这是我们CSS的第一行代码 */
        /* 行内元素为了照顾兼容性,一般只设置左右内外边距,不设置上下边距 */
    </style>
</head>

<body>
    <table align="center" cellspacing="0" width="500px" height="400px">
        <thead>
            <tr>
                <th>排名</th>
                <th>关键词</th>
                <th>趋势</th>
                <th>进入搜索</th>
                <th>最近qitian</th>
                <th>相关链接</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>鬼吹灯</td>
                <td><img src="/上箭头.jpg" alt="" width="13px" height="13px"></td>
                <td>456</td>
                <td>123</td>
                <td>
                    <a href="#">贴吧</a>
                    <a href="#">图片</a>
                    <a href="#">百科</a>
                </td>
            </tr>
            <tr>
                <td>1</td>
                <td>鬼吹灯3</td>
                <td><img src="/下箭头.jpg" alt="" width="13px" height="13px"></td>
                <td>456</td>
                <td>123</td>
                <td>
                    <a href="#">贴吧</a>
                    <a href="#">图片</a>
                    <a href="#">百科</a>
                </td>
            </tr>
            <tr>
                <td>1</td>
                <td>鬼吹灯2</td>
                <td><img src="/上箭头.jpg" alt="" width="13px" height="13px"></td>
                <td>456</td>
                <td>123</td>
                <td>
                    <a href="#">贴吧</a>
                    <a href="#">图片</a>
                    <a href="#">百科</a>
                </td>
            </tr>
        </tbody>
    </table>

    <div class="padding">
        盒子的内容是content
        盒子的内容是content
        盒子的内容是content
        盒子的内容是content
        盒子的内容是content
    </div>

    <h1>padding 不会撑开盒子的情况</h1>

    <div class="margin">margin1</div>
    <div class="margin">margin2</div>

    <div class="hnk">
        <span>行内块元素居中</span>
    </div>

    <div class="father">
        <div class="son">zi</div>
    </div>

    <div class="father2">
        <div class="son2">zi2</div>
    </div>
</body>

</html>

下载链接:

盒子模型.html