前端笔记(三)CSS 盒子模型

结构伪类选择器

基本的结构伪类选择器

可以根据元素的结构关系来查找元素
image.png
比如列标签 li,使用 li:first-child { background-color: green; }就可以选中第一个该标签。
image.png

<!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>li:first-child {background-color: green;}li:last-child {background-color: red;}li:nth-child(2) {background-color: yellow;}</style>
</head>
<body><ol><li>li1</li><li>li2</li><li>li3</li></ol>
</body>
</html>

image.png

利用 nth-child( 公式 )

可以通过书写公式来查找符合这个公式的多个元image.png

伪元素选择器

创建虚拟的元素(伪元素),用来摆放装饰性的内容
image.png
注意点:

  • 必须设置 content 属性,用来设置伪元素的内容,如果没有内容引号引号后面不用写内容,不写的话整个伪元素都不会生效
  • 伪元素默认是行内显示模式,通过 disply: 来修改
  • 权重和标签选择器相同(复合选择器)

PxCook

PxCook(像素大厨),是一款切图设计工具软件。支持 PSD 文件的文字、颜色、距离的自动识别。

有两个模式,开发模式设计模式,开发模式会自动智能识别,设计模式需要手动测量,当开发模式无法自动识别的时候可以使用测量模式的工具来手动测量内容。
PxCook 官方网站:https://fancynode.com.cn/pxcook

盒子模型

盒子模型-组成

  1. 内容区域:width & height
  2. 内边距:padding (出现在内容和盒子边缘之间的距离)
  3. 边框线:border
  4. 外边距:margin

下面来看一下这几个部分出现的位置 :

<!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>div {height: 300px;width: 300px;font-weight: 700;background-color: yellow;/* 边框 */border: 5px solid black;/* 内边距 */padding: 20px;/* 外边距 */margin: 50px;}</style>
</head>
<body><div>这是一个盒子</div>
</body>
</html>

image.png

盒子模型-边框线

属性名:border
属性值:边框线粗细 线条样式 颜色(不区分顺序)
image.png
除了设置整体的边框线,我们还可以设置某个方向的边框线
属性名:border-方位名词
属性值:边框线粗细 线条样式 颜色(不区分顺序)

盒子模型-内边距

可以设置内容和盒子的边缘的距离,显示效果更好

和上面的边框线一样,我们也可以设置整体的内边距或者某一个方向的内边距
属性名:padding / padding-方位名词

.example {padding-top: 10px; /* 顶部10像素的内边距 */padding-right: 15px; /* 右侧15像素的内边距 */padding-bottom: 20px; /* 底部20像素的内边距 */padding-left: 5px; /* 左侧5像素的内边距 */
}
内边距的多值写法

当你希望一次性设置元素的上、右、下、左四个方向的内边距时,可以使用 padding 属性的多值写法,即按照顺时针方向设置内边距值;也可以设置仅有两个值(上下 / 左右)或三个值(上 / 左右 / 下)。

比如:

.example {padding: 10px 20px 15px 25px; /* 上 右 下 左 */
}
.example {padding: 10px 20px; /* 上下 左右 */
}
.example {padding: 10px 20px 15px; /* 上 左右 下 */
}

盒子模型-尺寸计算

盒子尺寸 = 内容尺寸 + border 尺寸 + 内边距尺寸
所以不论是给盒子加上 border / padding 会撑大盒子,如果我们想要获取规定的盒子的大小

解决方式

手动解决:在内容尺寸中剪掉增加的borderpadding 的属性
内减模式:浏览器自动执行上面的步骤:box-size:border-box

盒子模型-外边距

可以拉开两个盒子之间的距离
属性名:margin
和 padding 的属性值写法和含义完全相同
下面我们利用外边距实现一个版心居中的效果,将方向的属性设置为 auto会自动居中

<!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>div {width: 300px;height: 300px;background-color: yellow;margin: 20px auto;text-align: center;}</style>
</head>
<body><div>这是一个盒子</div>
</body>
</html>

image.png

清除默认样式

通过在控制工具中查看,我们发现比如标题标签,段落标签都是由内外边距的,我们可以将这些边距清除掉,,然后根据我们的需要去设置这些样式

<style>* {margin: 0;padding: 0;box-sizing: border-box;}
</style>

将这些设置写在通配符中,可以控制整个界面的效果

盒子模型-元素溢出

控制当内容区域超出盒子区域的显示方式
属性名:overflow
image.png

外边距特性

外边距合并问题
垂直排列的兄弟元素,上下设置 margin 的话,这个 margin 会合并,取得两个 margin 中的较大值生效
外边距塌陷问题
父子级标签,子级加 上外边距 会产生塌陷问题,导致父级一起移动
解决办法:取消父级的 margin,给父级加上内边距 padding
父级设置:overflow:hidden
父级设置:border-top
行内元素的内外边距问题
发给行内元素添加 margin 和 padding 都无法改变元素的垂直位置,通过加行高可以实现垂直方向的变化

盒子模型-圆角

可以设置内容的外边框为圆角效果
属性名:border-radius
属性值:数字 + px / 百分比
属性值就是圆角的半径,可以给不同的角设不同的值,设置的顺序为从左上角开始顺时针,没有设置的会和对角相同,比如 border-radius: 10px 80px是这样的效果
image.png,同理可以推出从 1 到 3 的效果
圆角常见的案例有正圆形或者胶囊形状
image.pngimage.png
分别通过设置圆角属性为宽高的一半和圆角属性为高度的一半即可

<!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>div {height: 300px;width: 300px;background-color: yellow;border-radius: 50%;text-align: center;line-height: 300px;}</style>
</head>
<body><div>圆角的盒子</div>
</body>
</html>

image.png

<!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>div {height: 160px;width: 300px;background-color: yellow;border-radius: 80px;text-align: center;line-height: 160px;}</style>
</head>
<body><div>圆角的盒子</div>
</body>
</html>

image.png

盒子模型-阴影效果

给元素设置阴影效果
属性名:box-shadow
属性值:x 轴偏移 y 轴编译 模糊半径 扩散半径 颜色 内外阴影
注意:
X 和 Y 轴的偏移量必须书写
默认是外阴影,内阴影需要设置 inset

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧能源:数字孪生压缩空气储能管控平台

压缩空气储能在解决可再生能源不稳定性和提供可靠能源供应方面具有重要的优势。压缩空气储能&#xff0c;是指在电网负荷低谷期将电能用于压缩空气&#xff0c;在电网负荷高峰期释放压缩空气推动汽轮机发电的储能方式。通过提高能量转换效率、增加储能密度、快速启动和调节能力…

如何知道B站各分区直播数据趋势?

随着短视频时代的来临&#xff0c;直播行业也越来越火爆&#xff0c;很多博主开启直播之路&#xff0c;B站也顺应了时代发展所需&#xff0c;在直播板块投入颇多&#xff0c;那么在B站开直播&#xff0c;我们应该如何知晓B站每个分区的直播数据情况呢&#xff1f; 借用第三方数…

MySQL练习题,学生成绩查询练习题,附带答案

题目 (一) 新建以下几个表 student(学生表)&#xff1a; snosnamesexdeptbirthagePhone 其中约束如下&#xff1a; &#xff08;1&#xff09; 学号不能存在相同的 sno int auto_increment primary key &#xff08;2&#xff09; 名字为非空 sname varchar(20) not nu…

Excel如何设置在未打印时显示虚线打印时不显示虚线

记得之前分享过一个BOM表模板&#xff0c;但是在我打印时&#xff0c;发现明明是留空白的地方却打印出来的虚线 后来&#xff0c;看了自己的页面布局&#xff0c;原来是网格线设置错误了 当我设置为查看时显示网格线&#xff0c;打印时不显示网格线&#xff0c;这样就正常了

苹果配件妙控鼠标、键盘、触控板值得入手吗

大家好&#xff0c;我是极智视界&#xff0c;欢迎关注我的公众号&#xff0c;获取我的更多前沿科技分享 邀您加入我的知识星球「极智视界」&#xff0c;星球内有超多好玩的项目实战源码和资源下载&#xff0c;链接&#xff1a;https://t.zsxq.com/0aiNxERDq 苹果的优质和成功绝…

STM32存储左右互搏 SPI总线读写FRAM MB85RS16

STM32存储左右互搏 I2C总线读写FRAM MB85RS16 在中低容量存储领域&#xff0c;除了FLASH的使用&#xff0c;&#xff0c;还有铁电存储器FRAM的使用&#xff0c;相对于FLASH&#xff0c;FRAM写操作时不需要预擦除&#xff0c;所以执行写操作时可以达到更高的速度&#xff0c;其…

40 mysql join 的实现

前言 join 是一个我们经常会使用到的一个 用法 我们这里 看一看各个场景下面的 join 的相关处理 测试数据表如下, 两张测试表, tz_test, tz_test03, 表结构 一致 CREATE TABLE tz_test (id int(11) unsigned NOT NULL AUTO_INCREMENT,field1 varchar(128) DEFAULT NULL,fi…

BGP多跳及BGP4+

一、知识补充 1、BGP4 传统BGP-4只管理IPV4路由信息&#xff0c;对于使用其它网络程协议 (若IPV6等)的应用末给予支持。IETF对BGP-4扩展&#xff0c;提出BGP4&#xff0c;可以提供对IPV6、IPX和MPLS VPN的支持 (简单说: 扩展IPV6协议栈支持)。 2、全互联 在上一篇博文中提…

leetcode - 矩阵区域和

1314. 矩阵区域和 - 力扣&#xff08;LeetCode&#xff09; 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c …

备忘录模式 rust和java的实现

文章目录 备忘录模式介绍实现javarustrust仓库 备忘录模式 备忘录&#xff08;Memento&#xff09;模式的定义&#xff1a;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff0c;以便以后当需要时能将该对象恢复到原先…

【5G PHY】5G NR 如何计算资源块的数量?

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

严蔚敏数据结构p17(2.19)——p18(2.24) (c语言代码实现)

目录 2.19已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一高效的算法,删除表中所有值大于 mink 且小于 maxk 的元素(若表中存在这样的元素&#xff09;同时释放被删结点空间,并分析你的算法的时间复杂度(注意:mink 和 maxk 是给定的个参变量,它们的值可以和表…

Hdoop学习笔记(HDP)-Part.12 安装HDFS

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

继阿里云、滴滴、语雀后,腾讯视频也出现重大系统故障

昨晚&#xff0c;许多网友报告称腾讯视频出现了网络故障&#xff0c;具体表现为首页无法加载内容、VIP 用户无法观看会员视频等问题。 针对这一问题&#xff0c;腾讯视频回应称&#xff1a;目前腾讯视频遇到了暂时的技术问题&#xff0c;正在紧急修复中&#xff0c;各项功能正在…

在项目根目录未找到 app.json

这个问题就是我们在编译后的app.json文件找不到&#xff0c;路径出现了问题 首先看dist下我们该文件的路径 所以我们需要将该路径配置到我们project.config.json文件中去 在这里新加下面这行代码就可以了&#xff0c; "miniprogramRoot": "dist/dev/mp-weixi…

C语言扫雷游戏

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、扫雷游戏的分析和设计1.1扫雷游戏的功能说明1.2数据结构的分析1.3文件结构设计 二、扫雷游戏的代码实现总结 前言 详细介绍扫雷游戏的思路和实现过程。 一…

基于springboot + vue体育馆使用预约平台

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

自动提交日志脚本(6)浏览器抓包日志提交的数据

主要完成 do_logigdo_write_log 通过python的requests库post数据上传&#xff0c;因为是公司的系统我就展示抓包了&#xff0c;不展示怎么写了。 这边用日志暂存的页面做展示。 步骤 打开对应的页面&#xff0c;再打开浏览器的开发人员工具【一般是按f12】点击暂存按钮&…

每周一算法:背包问题(三)多重背包

多重背包 有 N N N件物品和一个容量是 M M M的背包。第 i i i种物品最多有 s i s_i si​件&#xff0c;每件的体积是 v i v_i vi​&#xff0c;价值是 w i w_i wi​。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输…

最强Node js 后端框架学习看这一篇文章就够

距离上次认真花时间写作&#xff0c;似乎已经过了许久许久&#xff0c;前端讲了一个新框架 &#xff0c;叫 Nest.js 下方是课件&#xff0c;有过一定开发经验可跟随视频学习 B站 地址 &#xff1a; https://www.bilibili.com/video/BV1Lg4y197u1/?vd_sourcead427ffaf8a5c8344…