CSS 盒子模型

news/2024/7/9 1:54:32

前言


盒子模型-组成 

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

CSS盒子模型以及外边框合并的问题 - 知乎

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

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

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

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

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


边框

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

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

示例:

div {
    width: 200px;
    height: 200px;
    background-color: orange;

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

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

预览:

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

例如:

div {
    width: 200px;
    height: 200px;
    background-color: orange;

    border: 2px solid blue;
}

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


设置单方向边框线

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

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

示例:

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用于设置左侧内边距值

示例:

div {
    width: 200px;
    height: 200px;
    background-color: orange;

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

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


内边距-多值写法

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

示例:

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

盒子尺寸计算

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

示例:

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设置元素左侧的外边距

示例: 

div {
    width: 200px;
    height: 200px;
    background-color: orange;
    margin: 100px;
}

预览:

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

自动边距:

div {
    width: 200px;
    height: 200px;
    background-color: orange;
    margin: 0 auto;
}

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

预览:


盒子模型-元素溢出

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

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

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

示例:

1.溢出情况:

HTML代码:

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

CSS代码:

div {
    width: 200px;
    height: 150px;
    background-color: orange;
    overflow: visible;
}

溢出情况预览:


2.溢出隐藏:

div {
    width: 200px;
    height: 150px;
    background-color: orange;
    overflow: hidden;
}

预览:


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

准备两个盒子模型

HTML代码:

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

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

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.溢出滚动(元素溢出才显示滚动条):

.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左下角的圆角半径

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

示例:

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;
}

预览:


多值写法

语法格式如下:

.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%)
div {
    width: 200px;
    height: 200px;
    background-color: orange;

    border-radius: 50%;
}

预览:

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

    border-radius: 50px;
}

预览:

 


http://lihuaxi.xjx100.cn/news/1479003.html

相关文章

后端项目开发:集成日志

SpringBoot 默认选择的是slf4j做日志门面&#xff0c;logback做日志实现。由于log4j有性能问题&#xff0c;不建议使用。 由于log4j2的表现性能更好&#xff0c;我们需要集成log4j2&#xff0c;同时排除旧的日志实现包。 <!-- Spring Boot 启动器 --> <dependency>…

【实战】十一、看板页面及任务组页面开发(四) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十六)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…

睿趣科技:抖音开网店要怎么找货源

在当今数字化的时代&#xff0c;电商平台的兴起为越来越多的人提供了开设网店的机会&#xff0c;而抖音作为一个充满活力的短视频平台&#xff0c;也为创业者提供了广阔的发展空间。然而&#xff0c;对于许多初次涉足电商领域的人来说&#xff0c;找到合适的货源却是一个重要的…

SQL注入读写文件

文章目录 条件利用SQL注入漏洞读取hosts文件查看文件读写权限安全选项允许导入导出读取hosts文件 利用SQL注入漏洞写入一句话木马&#xff0c;并用蚁剑连接webshell写入文件 条件 SQL注入有直接SQL注入&#xff0c;也有文件读写时的注入&#xff0c;后者的主要 目的在于获取web…

智慧能源管理系统助力某制造企业提高能源利用效率

随着全球能源需求不断增加和能源价格的上涨&#xff0c;企业和机构日益意识到能源管理的重要性。传统的能源管理方式不仅效率低下&#xff0c;还容易造成资源浪费和环境污染。因此&#xff0c;许多企业开始探索采用智慧能源管理系统来提高能源利用效率&#xff0c;降低能源成本…

ansible批量创建crontab文件并添加到定时任务

Ansible 来修改 crontab 文件并添加计划任务。用于将你提供的 cron 行添加到特定用户的 crontab 中&#xff1a; --- - name: Add cron job to users crontabhosts: your_target_hosttasks:- name: Add cron jobcron:name: "ntpdate_job"minute: "0"hour:…

纸贵科技连续三年蝉联IDC中国 FinTech 50榜单

近日&#xff0c;国际权威市场研究机构IDC公布了“2023 IDC中国FinTech 50榜单”。作为领先的区块链技术和解决方案服务商&#xff0c;纸贵科技凭借过硬的区块链技术和丰富的金融科技创新成果&#xff0c;连续第三年荣登IDC中国FinTech 50榜单。 IDC中国FinTech 50榜单是金融科…

Mysql 基本概念

数据库的组成 数据 数据是描述事务的符号记录&#xff1b;包括数字、文字、图形、图像、声音、档案记录等 以“记录“形式按统一的格式进行存储 表 将不同的记录以行和列的方式组合成了表 用来存储具体数据 数据库 它就是所有不同属性表的集合 以一定的组织方式存储的…