CSS 盒子模型

前言


盒子模型-组成

CSS盒子模型是一种用来描述元素在页面布局中占据空间的模型。它将每个元素看作由内容区域、内边距、边框和外边距组成的一个矩形框。

盒子模型的组成部分包括:

  1. 内容区域(Content):显示元素的实际内容,例如文本、图像或其他嵌套元素。

  2. 内边距(Padding):位于内容区域与边框之间的空白区域,可以通过padding属性设置。

  3. 边框(Border):围绕内容和内边距的线条,用于分隔元素与其周围的其他元素。可以使用border属性来设置元素的边框样式、颜色和宽度、

  4. 外边距(Margin):位于元素边框与相邻元素之间的空白区域,用于控制元素之间的间距。可以使用margin属性来设置元素的外边距。


边框

设置边框的相关属性有以下几个:

属性 说明
border-width 用于设置边框的宽度。可以使用具体的像素值或预定义的关键字来指定宽度。
border-style 用于设置边框的样式。常见样式包括实线(solid)、虚线(dashed)、点线(dotted)、双实线(double)等。可以使用属性值none来隐藏边框。
border-color 用于设置边框颜色。可以使用具体的颜色值或预定义的颜色关键字来指定颜色。

示例:

css 复制代码
div {
    width: 200px;
    height: 200px;
    background-color: orange;

    border-width: 2px;
    border-style: solid;
    border-color: blue;
}

上述代码将<div>元素的边框宽度设置为2像素,样式为实线,颜色为蓝色。

预览:

此外,还可以使用border缩写属性来同时设置边框的宽度、样式和颜色。

例如:

css 复制代码
div {
    width: 200px;
    height: 200px;
    background-color: orange;

    border: 2px solid blue;
}

上述代码与前面的示例效果相同。


设置单方向边框线

要设置元素的单方向边框,可以使用以下属性:

属性 说明
border-top 用于设置元素的上边框
border-right 用于设置元素的右边框
border-bottom 用于设置元素的下边框
border-left 用于设置元素的左边框

示例:

css 复制代码
div {
    width: 200px;
    height: 200px;
    background-color: orange;

    border-top: 1px solid red;
    border-right: 2px dashed black;
    border-bottom: 3px dotted green;
    border-left: 4px double yellow;
}

预览:


内边距

以下属性可以设置不同方位的内边距:

属性 说明
padding-top 用于设置上方的内边距值
padding-right 用于设置右侧的内边距值
padding-bottom 用于设置下方内边距值
padding-left 用于设置左侧内边距值

示例:

css 复制代码
div {
    width: 200px;
    height: 200px;
    background-color: orange;

    padding-top: 10px;
    padding-right:20px;
    padding-bottom: 10px;
    padding-left:20px
}

上述代码会将<div>元素的顶部和底部内边距设为10像素,右侧和左侧的内边距设置为20像素。


内边距-多值写法

可以使用缩写属性padding来设置不同方向的内边距。

示例:

  • 统一的内边距:
css 复制代码
padding: 10px;
  • 水平和垂直方向的不同内边距:
css 复制代码
padding: 10px 20px;
  • 上方、水平、下方方向的不同内边距:
css 复制代码
padding: 10px 20px 30px;
  • 上、右、下、左方向的各自不同的内边距:
css 复制代码
padding: 10px 20px 30px 40px;

盒子尺寸计算

盒子尺寸=内容尺寸+边框尺寸+内边距尺寸

示例:

css 复制代码
div {
    width: 200px;
    height: 200px;
    background-color: orange;
    border: 5px solid black;
    padding: 10px 20px;
    margin: 20px;
}

上述示例,盒子总宽度=250px,总高度为230px。


外边距

可以使用以下属性设置盒子的外边距:

属性 说明
margin-top 设置元素顶部的外边距
margin-right 设置元素右侧的外边距
margin-bottom 设置元素底部的外边距
margin-left 设置元素左侧的外边距

示例:

css 复制代码
div {
    width: 200px;
    height: 200px;
    background-color: orange;
    margin: 100px;
}

预览:

其多值写法与内边距padding属性相同。

自动边距:

css 复制代码
div {
    width: 200px;
    height: 200px;
    background-color: orange;
    margin: 0 auto;
}

上述代码中,将垂直方向外边距设置为0,左右外边距设为"auto"将会自动将容器(或版心)水平居中。

预览:


盒子模型-元素溢出

当元素的内容超出其容器的尺寸时,就会发生溢出的情况。可以使用overflow属性来控制溢出元素的显示方式。

overflow属性有以下几个可选值:

属性值 效果
visible 默认值,内容会溢出容器显示,并可能遮盖其他元素。
hidden 内容会被裁剪,超出容器部分将不可见。
scroll 若内容溢出容器,会显示滚动条以便滚动查看内容。
auto 若内容溢出容器,会根据需要显示滚动条。若不溢出,则不显示滚动条。

示例:

1.溢出情况:

HTML代码:

html 复制代码
<div>
    生活就是一半诗意,一半烟火,手执烟火以谋生,心怀诗意以谋爱。
    曾经一直觉得远方才是诗,经历了人间烟火,才发现,油盐酱醋茶,亦可成诗。
</div>

CSS代码:

css 复制代码
div {
    width: 200px;
    height: 150px;
    background-color: orange;
    overflow: visible;
}

溢出情况预览:


2.溢出隐藏:

css 复制代码
div {
    width: 200px;
    height: 150px;
    background-color: orange;
    overflow: hidden;
}

预览:


3.溢出滚动(无论是否溢出都会显示滚动条):

准备两个盒子模型

HTML代码:

html 复制代码
<div class="div_1">
    生活就是一半诗意,一半烟火,手执烟火以谋生,心怀诗意以谋爱。
    曾经一直觉得远方才是诗,经历了人间烟火,才发现,油盐酱醋茶,亦可成诗。
</div>

<div class="div_2">
    人面不知何处去,桃花依旧笑春风。
</div>

CSS代码:

css 复制代码
.div_1 {
    width: 200px;
    height: 150px;
    background-color: orange;
    margin: 20px 0;
    overflow: scroll;
}

.div_2 {
    width: 200px;
    height: 150px;
    background-color: green;
    overflow: scroll;
}

预览:


4.溢出滚动(元素溢出才显示滚动条):

css 复制代码
.div_1 {
    width: 200px;
    height: 150px;
    background-color: orange;
    margin: 20px 0;
    overflow: auto;
}

.div_2 {
    width: 200px;
    height: 150px;
    background-color: green;
    overflow: auto;
}

预览:


盒子模型-圆角

盒子模型中的圆角(border-radius)属性用于为元素的边框添加圆角效果。通过设置适当的圆角半径,可以使元素的边框变得圆润。

圆角属性可以应用于四个角落:

属性 说明
border-top-left-radius 左上角的圆角半径
border-top-right-radius 右上角的圆角半径
border-bottom-right-radius 右下角的圆角半径
border-bottom-left-radius 左下角的圆角半径

使用这些属性,你可以指定一个长度值(如像素或百分比)来定义圆角的大小。

示例:

css 复制代码
div {
    width: 200px;
    height: 200px;
    background-color: orange;
    
    border-top-left-radius: 10px;
    border-top-right-radius: 20px;
    border-bottom-right-radius: 30px;
    border-bottom-left-radius: 40px;
}

预览:


多值写法

语法格式如下:

css 复制代码
.element {
    border-radius: [top-left] [top-right] [bottom-right] [bottom-left];
}

具体说明:

  • top-left:左上角的圆角半径。
  • top-right:右上角的圆角半径。
  • bottom-right:右下角的圆角半径。
  • bottom-left:左下角的圆角半径。
示例 效果
border-radius: 10px; 所有角都具有相同的圆角半径10px。
border-radius: 10px 20px; 左上角和右下角为10px,右上角和左下角为20px。
border-radius: 10px 20px 30px; 左上角为10px,右上角和左下角为20px,右下角为30px。
border-radius: 10px 20px 30px 40px; 左上角为10px,右上角为20px,右下角为30px,左下角为40px。

常见应用:

  • 正圆形状:给正方形盒子设置圆角属性值为宽高的一半(或50%)
css 复制代码
div {
    width: 200px;
    height: 200px;
    background-color: orange;

    border-radius: 50%;
}

预览:

  • 胶囊形状:给长方形盒子设置圆角属性值为盒子高度的一半
css 复制代码
div {
    width: 300px;
    height: 100px;
    background-color: orange;

    border-radius: 50px;
}

预览:

相关推荐
excel2 分钟前
webpack 核心编译器 十三 节
前端
腾讯TNTWeb前端团队7 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰10 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪10 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪11 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy11 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom12 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom12 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom12 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom12 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试