CSS盒子模型

本文详细介绍了CSS盒子模型的各个组成部分,包括margin、border、padding及content,并通过实例演示了如何设置内外边距、边框样式、宽度和颜色,以及圆角、阴影等CSS3特性。

本章内容

  1. CSS盒子模型-概述
  2. CSS盒子模型-内边距
  3. CSS盒子模型-边框
  4. CSS盒子模型-外边距
  5. CSS盒子模型-外边距合并
  6. CSS盒子模型-盒子模型应用

CSS盒子模型-概述
盒子模型的内容范围包括
margin、border、padding、content部分组成

这里写图片描述


CSS盒子模型-内边距
内边距
内边距在content外,边框内
属性
padding                     设置所有边距

padding-bottom              设置底边距

padding-left                设置左边距

padding-right               设置右边距

padding-top                 设置上边距

示例:
html:

<body>
    <table border="1">
        <tr>
            <td class="td1">内边距</td>
            <td class="td2">内边距</td>
            <td class="td3">内边距</td>
            <td class="td4">内边距</td>
        </tr>
    </table>
</body>

CSS

.td1{
    padding: 20px;
}
.td2{
    padding-left: 20px;
}
.td3{
    padding-right: 20px;
}
.td4{
    padding-bottom: 20px;
}

效果

这里写图片描述


CSS盒子模型-边框
CSS边框
我们可以创建出效果出色的边框,并且可以应用于任何元素
CSS边框
border-style:定义了10个不同的非继承样式,包括none

示例,例举了3个样式:
html:

<body>
    <p class="p1">CSS样式</p>
    <p class="p2">CSS样式</p>
    <p class="p3">CSS样式</p>
</body>

CSS:

.p1{
     border-style: double;
 }
.p2{
    border-style: dashed;
}
.p3{
    border-style: dotted;
}

效果:

这里写图片描述

CSS边框的单边样式
border-top-style
border-left-style
border-right-style
border-bottom-style
CSS边框宽度
border-width
border-top-width
border-bottom-width
border-right-width
border-left-width
CSS边框颜色
border-color
border-top-color
border-left-color
border-right-color
border-bottom-color
CSS3边框
border-radius               圆角边框

box-shadow                  边框阴影

border-image                边框图片

示例:
html

<body>
    <p class="p1">CSS3样式</p>
    <p class="p2">阴影</p>
</body>

CSS:

.p1{
    border-radius: 10px;
    width: 100px;
    padding: 10px;
    background-color: aqua;
    text-align: center;
    border: 2px solid blue;
}
.p2{
    background-color: aqua;
    width: 100px;
    height: 100px;
    text-align: center;
    box-shadow: 10px 10px 5px #FF0000;
}

效果:

这里写图片描述


CSS盒子模型-外边距
外边距
围绕在内容边框的区域就是外边距,外边距默认为透明区域
外边距接受任何长度单位、百分数值
外边距常用属性
margin              设置所有边距
margin-bottom       设置底边距
margin-left         设置左边距
margin-right        设置有边距
margin-top          设置上边距

padding&margin 示例:
html:

<body>
    <div class="container">
        <div class="bd">
            <div class="pd">
                <div class="content">hello</div>
            </div>
        </div>
    </div>
</body>

CSS:

body{
    margin: 0px;
}
.container{
    margin: 100px;
}
.bd{
    border-style: dotted;
}
.pd{
    padding: 100px;
}
.content{
    background-color: aqua;
}

效果

这里写图片描述


CSS盒子模型-外边距合并
外边距合并
外边距合并就是一个叠加的概念

这里写图片描述
举个栗子:
html:

<body>
    <div class="container">
        <div class="bd">
            <div class="pd">
                <div class="content">hello</div>
            </div>
        </div>
    </div>

    <div class="container1">
        <div class="bd1">
            <div class="pd1">
                <div class="content1">hello</div>
            </div>
        </div>
    </div>
</body>

CSS:

body{
    margin: 0px;
}
.container{
    margin: 50px;
}
.bd{
    border-style: dotted;
}
.pd{
    padding: 100px;
}
.content{
    background-color: aqua;
}

.container1{
    margin: 100px;
}
.bd1{
    border-style: dotted;
}
.pd1{
    padding: 100px;
}
.content1{
    background-color: aqua;
}

为了区分,两个最外层的div,一个margin是50,一个是100,效果:

这里写图片描述

理论上,两个div之间应该有150的间隔,实际上却是100,这体现了两个概念:
外边距叠加的概念
叠加以最大值为准

CSS盒子模型-盒子模型应用

示例模型:

这里写图片描述

html:

<body>
    <div class="title">
        <div class="title_content"></div>
    </div>
    <div class="body">
        <div class="body_img"></div>
        <div class="body_content">
            <div class="body_notify"></div>
        </div>
    </div>
    <div class="footing">
        <div class="foot_content"></div>
        <div class="foot_subnav"></div>
    </div>
</body>

CSS:

*{
    margin: 0px;
    padding: 0px;
}
.title{
    background-color: black;
    width: 100%;
    height: 50px;
}
.title_content{
    width: 75%;
    height: 50px;
    margin: 0px auto;
    background-color: aqua;
}
.body{
    margin: 20px auto;
    width: 75%;
    height: 700px;
    background-color: cornflowerblue;
}
.body_img{
    width: 100%;
    height: 200px;
    background-color: darkcyan;
}
.body_content{
    background-color: dimgray;
    width: 100%;
    height: 500px;
}
.body_notify{
    width: 100%;
    height: 50px;
    background-color: cornflowerblue;
}
.footing{
    margin: 20px auto;
    width: 75%;
    height: 120px;
    background-color: brown;
}
.foot_content{
    background-color: blueviolet;
    height: 80%;
    width: 100%;
}
.foot_subnav{
    background-color: coral;
    height: 20%;
    width: 100%;
}

效果:

这里写图片描述


OVER!

### CSS 盒子模型详解 CSS盒子模型是网页设计和布局中的核心概念之一。它描述了HTML文档结构化的方式以及如何通过样式控制这些元素的空间分配。 #### 1. 盒子模型的组成部分 每个HTML元素都可以看作是一个矩形盒子,该盒子由以下几个部分组成[^1]: - **内容 (Content)**: 这是盒子的主要区域,用于放置文本或其他媒体内容。 - **内边距 (Padding)**: 它位于内容边缘与边框之间的空白区域,用来增内容周围的可读空间。 - **边框 (Border)**: 边框围绕着内边距和内容,可以设置不同的宽度、颜色和风格来定义边界线。 - **外边距 (Margin)**: 外边距是在边框之外的一片透明区域,用于分隔相邻的盒子并防止它们相互接触。 #### 2. 盒子模型属性 以下是几个重要的盒子模型相关属性及其功能说明: ##### 2.1 `width` 和 `height` 属性 这两个属性分别设定盒子的内容区宽度和高度。需要注意的是,默认情况下,指定的尺寸仅适用于内容区域而不包括 padding, border 或 margin 的值[^2]。 ##### 2.2 `border` 边框属性 可以通过此属性自定义边界的外观,比如粗细、线条样式(实线、虚线等)以及颜色[^3]。 ##### 2.3 `padding` 内边距 用于调整内部填充量,即内容与其周围边框间的距离。它可以单独应用于上、右、下、左各个方向或者统一应用到所有侧面[^1]。 ##### 2.4 `margin` 外边距 负责管理与其他元素之间外部间距的部分。同样支持多向配置,并且当两个垂直 margins 邻近时会发生折叠现象——取两者较大者作为最终间隔[^2]。 ##### 2.5 盒子模型占位计算 总的实际占用面积等于 content area 上其四周的所有附层厚度之和。例如给定一个具有固定 width/height 值为100px 的 div 元素上额外参数如下所示,则实际渲染出来的大小将是 `(100 + 5 + 5 + 20 + 20)` px × `(100 + 5 + 5 + 20 + 20)` px: ```css div { width: 100px; height: 100px; border: 5px solid black; /* 上下左右均为5像素 */ padding: 20px; /* 各侧均设为20像素 */ } ``` #### 3. box-sizing 属性 为了简化复杂布局的设计过程,引入了一个名为 `box-sizing` 的新特性。默认行为遵循传统标准模式 (`content-box`) ,其中声明的 dimensions 不含 paddings/borders;而另一种选项叫做 alternate model(`border-box`) 可让开发者更直观地操作整体尺寸因为此时所指代的就是整个可视范围内的确切数值. ```css /* 使用 border-box 来改变盒模型的行为方式*/ * { box-sizing: border-box; } ``` 以上便是关于CSS盒子模型的一些基本介绍及常见应用场景下的实现方法论探讨。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值