掌握CSS盒子模型:一站式指南

在这里插入图片描述

更多web开发知识欢迎访问我的专栏>>>

盒子模型

01-选择器

结构伪类选择器

基本使用

作用:根据元素的结构关系查找元素。

选择器说明
E:first-child匹配父元素的第一个子元素E
E:last-child匹配父元素的最后一个子元素E
E:nth-child(n)匹配父元素的第n个子元素E
E:nth-last-child(n)匹配父元素的倒数第n个子元素E
E:first-of-type匹配父元素下同类型元素中的第一个E
E:last-of-type匹配父元素下同类型元素中的最后一个E
E:nth-of-type(n)匹配父元素下同类型元素中的第n个E
E:nth-last-of-type(n)匹配父元素下同类型元素中的倒数第n个E

:nth-child(公式)

以下是针对:nth-child()伪类中公式的说明表格:

功能公式
匹配第n个子元素:nth-child(n)
匹配偶数位置的子元素:nth-child(2n)
匹配奇数位置的子元素:nth-child(2n+1)
匹配前n个子元素:nth-child(-n+3)
匹配后n个子元素:nth-last-child(n)
匹配倒数第n个子元素:nth-last-child(-n)
匹配从第n个开始的子元素:nth-child(n+x)
匹配从第n个结束的子元素:nth-last-child(n+x)

这些公式可以用于选择符合特定条件的子元素,并为它们应用样式。

伪元素选择器

作用:创建虚拟元素(伪元素),用来摆放装饰性的内容

div::before {
  content: "before 伪元素";
}
div::after {
  content: "after 伪元素";
}

注意点:

  • 必须设置 content: ””属性,用来 设置伪元素的内容,如果没有内容,则引号留空即可
  • 伪元素默认是行内显示模式
  • 权重和标签选择器相同

扩展:PxCook(像素大厨) 是一款切图设计工具软件。

02-盒子模型

作用:布局网页,摆放盒子和内容。

盒子模型-组成

  • 内容区域 – width & height
  • 内边距 – padding(出现在内容与盒子边缘之间)
  • 边框线 – border
  • 外边距 – margin(出现在盒子外面)
div {
  margin: 50px;
  border: 5px solid brown;
  padding: 20px;
  width: 200px;
  height: 200px;
  background-color: pink;
}

image-20240221152943909

image-20240221152951115

边框线

四个方向

属性名:border(bd)

属性值:边框线粗细 线条样式 颜色(不区分顺序)

以下是关于表框线属性的表格:

属性值线条样式
none
hidden隐藏
dotted点线
dashed虚线
solid实线
double双实线
groove凹槽效果
ridge凸起效果
inset内阴影效果
outset外阴影效果

这些属性值可用于控制表框线的样式,从而实现不同的外观效果。

div {
  border: 5px solid brown;
  width: 200px;
  height: 200px;
  background-color: pink;
}

尝试一下>>>

单方向边框线

属性名:border-方位名词(bd+方位名词首字母,例如,bdl)

属性值:边框线粗细 线条样式 颜色(不区分顺序)

div {
  border-top: 2px solid red;
  border-right: 3px dashed green;
  border-bottom: 4px dotted blue;
  border-left: 5px solid orange;
  width: 200px;
  height: 200px;
  background-color: pink;
}

内边距

作用:设置 内容 与 盒子边缘 之间的距离。

  • 属性名:padding / padding-方位名词
div {
  /* 四个方向 内边距相同 */
  padding: 30px;
  /* 单独设置一个方向内边距 */
  padding-top: 10px;
  padding-right: 20px;
  padding-bottom: 40px;
  padding-left: 80px;
  width: 200px;
  height: 200px;
  background-color: pink;
}

提示:添加 padding 会撑大盒子。

  • padding 多值写法
取值个数示例含义
1padding: 10px;设置四个方向的内边距为10像素
2padding: 10px 20px;设置上下内边距为10像素,左右内边距为20像素
3padding: 10px 20px 15px;设置上内边距为10像素,左右内边距为20像素,下内边距为15像素
4padding: 10px 20px 15px 25px;分别设置上、右、下、左内边距为10、20、15、25像素

这些多值写法可以用于同时设置不同方向的内边距。

技巧:从开始顺时针赋值,当前方向没有数值则与对面取值相同

尺寸计算

1680331322935

默认情况:盒子尺寸 = 内容尺寸 + border 尺寸 + 内边距尺寸

结论:给盒子加 border / padding 会撑大盒子

解决:

  • 手动做减法,减掉 border / padding 的尺寸
  • 內减模式:box-sizing: border-box

外边距

作用:拉开两个盒子之间的距离

属性名:margin

提示:与 padding 属性值写法、含义相同

版心居中

左右 margin 值 为 auto(盒子要有宽度)

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

清除默认样式

清除标签默认的样式,比如:默认的内外边距。

/* 清除默认内外边距 */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
/* 清除列表项目符号 */
li {
  list-style: none;
}

元素溢出

作用:控制溢出元素的内容的显示方式。

属性名:overflow

属性值效果
visible默认值,溢出内容可见,不会出现滚动条。
hidden溢出内容被隐藏,不可见。
scroll溢出内容被隐藏,但会显示滚动条。
auto当内容溢出时显示滚动条,没有溢出时不显示滚动条。

这些属性值用于控制元素在内容溢出时的行为,如是否显示滚动条以及如何处理溢出内容。

外边距问题

合并现象

场景:垂直排列的兄弟元素,上下 margin合并

现象:取两个 margin 中的较大值生效

1680331672628

.one {
  margin-bottom: 50px;
}
.two {
  margin-top: 20px;
}
外边距塌陷

场景:父子级的标签,子级的添加 上外边距 会产生塌陷问题

现象:导致父级一起向下移动

.son {
  margin-top: 50px;
  width: 100px;
  height: 100px;
  background-color: orange;
}

1680333860271

解决方法:

  • 取消子级margin,父级设置padding
  • 父级设置 overflow: hidden
  • 父级设置 border-top

提示:设置子集 display: inline-block; 也能解决此问题;注意多个子集控件的情况。

尝试一下>>>

行内元素-内外边距问题

场景:行内元素添加 margin 和 padding,无法改变元素垂直位置

解决方法:给行内元素添加 line-height 可以改变垂直位置

span {
  /* margin 和 padding 属性,无法改变垂直位置 */
  margin: 50px;
  padding: 20px;
  /* 行高可以改变垂直位置 */
  line-height: 100px;
}

圆角

作用:设置元素的外边框为圆角。

属性名:border-radius

属性值:数字+px / 百分比

提示:属性值是圆角半径盒子阴影(拓展)

image-20240221170011010

  • 多值写法
取值个数示例含义
1border-radius: 10px;设置四个角的圆角半径都为10像素
2border-radius: 10px 20px;设置水平方向上的圆角半径为10像素,垂直方向上的圆角半径为20像素
3border-radius: 10px 20px 15px;设置左上角和右下角的圆角半径为10像素,右上角和左下角的圆角半径为20像素和15像素
4border-radius: 10px 20px 15px 25px;分别设置左上、右上、右下、左下的圆角半径为10、20、15、25像素

技巧:从左上角开始顺时针赋值,当前角没有数值则与对角取值相同。

  • 正圆形状:给正方形盒子设置圆角属性值为 宽高的一半 / 50%
img {
  width: 200px;
  height: 200px;
  
  border-radius: 100px;
  border-radius: 50%;
}
  • 胶囊形状:给长方形盒子设置圆角属性值为 盒子高度的一半
div {
  width: 200px;
  height: 80px;
  background-color: orange;
  border-radius: 40px;
}

盒子阴影

作用:给元素设置阴影效果

属性名:box-shadow

属性值:X 轴偏移量 Y 轴偏移量 模糊半径 扩散半径 颜色 内外阴影

注意:

  • X 轴偏移量 和 Y 轴偏移量 必须书写
  • 默认是外阴影,内阴影需要添加 inset
div {
  width: 200px;
  height: 80px;
  background-color: orange;
  box-shadow: 2px 5px 10px 0 rgba(0, 0, 0, 0.5) inset;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/403572.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

043-WEB攻防-PHP应用SQL注入符号拼接请求方法HTTP头JSON编码类

043-WEB攻防-PHP应用&SQL注入&符号拼接&请求方法&HTTP头&JSON&编码类 #知识点: 1、PHP-MYSQL-SQL注入-数据请求类型 2、PHP-MYSQL-SQL注入-数据请求方法 3、PHP-MYSQL-SQL注入-数据请求格式 演示案例: ➢PHP-MYSQL-数据请求类型…

java替换jar中的class文件

1、编译好class文件2、找到需要修改class文件的路径3、解压需要替换的文件4、上传编译后的class文件5、重新压缩 在调整java代码过程中会遇到需要改jar包中的class文件的情况,改了如何替换呢? 1、编译好class文件 将需要修改的class文件代码复制到java编…

第四套CCF信息学奥赛c++ CSP-J认证初级组 中小学信奥赛入门组初赛考前模拟冲刺题(选择题)

第四套中小学信息学奥赛CSP-J考前冲刺题 1、在网络上,若某台电脑的设备及数据可由其他电脑共享,这台电脑称为 A、个人服务器 B、主机 C、副机 D、服务器 答案:D 考点分析:主要考查网络相关知识,网络上这样的电脑统称为服务器&#xff0…

mac/windows git ssh 配置多平台账号(入门篇)

目录 引子多账号多平台配置git一、.ssh文件夹路径1.1 mac 系统1.2 windows 系统 二、生成new ssh2.1 mac系统2.2 windows 系统 三、配置 config四、验证五、用ssh方式拉取远程仓库代码 引子 push代码到github仓库时,提示报错。 Push failed Remote: Support for pa…

【自然语言处理】:实验5,司法阅读理解

清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 代码和报告均为本人自己实现(实验满分),只展示主要任务实验结果,如果需要详细的实验报告或者代码可以私聊博主 有任何疑问或者问题,也欢…

Unity接入SQLite (一):SQLite介绍

1.简介 SQLite是一个开源的嵌入式关系数据库管理系统。它是一种轻量级的数据库引擎,不需要单独的服务器进程,可以直接嵌入到应用程序中使用。Sqlite使用简单、高效,并且具有对标准SQL的完整支持。它适用于需要在本地存储和访问数据的应用程序…

hash,以及数据结构——map容器

1.hash是什么? 定义:hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出, 该输出就是散列值。这种转换是一种压缩映射&…

Maven depoly:Skipping artifact deployment

问题描述: 使用IDEA执行mvn depoly将本地开发的模块发布到Maven私服时,一直提示:Skipping artifact deployment,自动跳过了depoly部署阶段。 问题分析 Maven构建生命周期中的每一个阶段都是由对应的maven插件执行具体工作的。既然…

linux运维xshell同时控制多个窗口的快捷方式

下面去实现同时操作的功能。 1. 找到 工具- 2. 根据需要,选择需要操作的窗口即可。 以上就是对xshell中同时操作多个窗口的方法

【k8s核心概念与专业术语】

k8s架构 1、服务的分类 服务分类按如下图根据数据服务支撑,分为无状态和有状态 无状态引用如下所示,如果一个nginx服务,删除后重新部署有可以访问,这个属于无状态,不涉及到数据存储。 有状态服务,如redis&a…

四、矩阵的分类

目录 1、相等矩阵 2、同形矩阵 3、方阵: 4、负矩阵、上三角矩阵、下三角矩阵: 5、对角矩阵:是方阵 ​编辑7、单位矩阵:常常用 E或I 来表示。它是一个方阵 8、零矩阵: 9、对称矩阵:方阵 1、相等矩阵 …

力扣经典题目解析--两数之和

两数之和 题目地址: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 简单来说就是在一个数组中找出两个数,这两个数相加要等于给定的target,下面是完整的题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中…

阿里云SSL免费证书到期自动申请部署程序

阿里云的免费证书只有3个月的有效期,不注意就过期了,还要手动申请然后部署,很是麻烦,于是写了这个小工具。上班期间抽空写的,没有仔细测试,可能存在一些问题,大家可以自己clone代码改改&#xf…

(done) 矩阵的对角化,以及是否可对角化的判断、还有对角化的本质。相似对角化计算过程

相似对角化 和 对角化 很大程度上是一回事 甚至判断两个矩阵的相似性,也跟对角化有很大关系 参考视频1:https://www.bilibili.com/video/BV1PA411T7b5/?spm_id_from333.788&vd_source7a1a0bc74158c6993c7355c5490fc600 参考视频2:http…

【移动安全】MobSF联动安卓模拟器配置动态分析教程

原文链接 MobSF联动安卓模拟器配置动态分析教程 实现方式 Windows开启安卓模拟器并进行相关配置作为调试客户端,Linux使用docker开启MobSF作为服务端。 好处:干净,部署简单,不用安装乱七八糟的环境,防止破坏其他应…

最新YOLOv9论文理论:使用可编程梯度信息学习您想学习的内容 | Programmable Gradient Information

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information YOLOv9 论文地址:https://arxiv.org/pdf/2402.13616.pdf 摘要 当今的深度学习方法侧重于如何设计最合适的目标函数,以便模型的预测结果最接近真实情况。同时&…

CSS轻松学:简单易懂的CSS基础指南

css基础 更多web开发知识欢迎访问我的专栏>>> 01-CSS初体验 层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)。 书写位置:…

Qt事件过滤器

1. 事件过滤器 void QObject::installEventFilter(QObject *filterObj) bool eventFilter(QObject *obj, QEvent *event); filterObj表示事件筛选器对象,它接收发送到此QObject对象(安装事件过滤器的部件对象)的所有事件。筛选器可以停止事件…

【Oracle】玩转Oracle数据库(四):SQL语言

前言 嘿,各位数据达人们!准备好迎接新的挑战了吗?今天,我们要探索的是数据库世界的魔法咒语——SQL语言!🔮💻 在这篇博文【Oracle】玩转Oracle数据库(四):SQL…

ssm+springmvc基于springboot的宠物领养系统的设计与实现_j5fk4

宠物领养系统主要是为了提高管理员的工作效率,满足管理员对更方便、更快、更好地存储所有信息和数据检索功能的要求。通过对多个类似网站的合理分析,确定了宠物领养系统的各个模块。考虑到用户的可操作性,经过深入调查研究,遵循系…