CSS篇——第一章 六十五项关键技能(上篇)
目录
一、交集选择器
二、字体属性
三、字体族(font-family)
四、字体复合属性(font)
五、颜色(color)
六、伪类选择器
七、继承性
八、层叠性
九、优先级
十、复合选择器
十一、伪元素选择器
十二、背景图平铺
十三、背景图位置
十四、背景图缩放
十五、背景图固定
十六、背景复合属性
十七、显示模式转换
十八、结构伪类选择器
十九、:nth-child()公式
二十、显示模式基础
二十一、盒子模型组成
二十二、边框线
二十三、内边距(padding)
二十四、盒子尺寸计算
二十五、元素溢出
二十六、外边距问题
二十七、行内元素边距
二十八、盒子阴影
二十九、浮动基础
三十、清除浮动
三十一、浮动本质
CSS核心知识点摘要(148字)
- 选择器:交集选择器、伪类(:hover等)、结构伪类(:nth-child)、伪元素(::before)
- 字体控制:font复合属性(顺序:style weight size/line-height family)、多字体备选
- 盒模型:组成(content/padding/border/margin)、box-sizing、margin塌陷解决方案
- 背景:background复合属性(含position/size/attachment)
- 浮动:特点(脱标/行内块特性)、清除浮动4种方法(推荐双伪元素法)
- 优先级:!important > 行内 > ID > 类 > 标签 > 继承
- 显示模式:block/inline/inline-block特性及转换
一、交集选择器
-
作用
选中同时满足多个条件的元素(如:既是p标签又有.box类) -
写法
选择器1选择器2 { CSS属性 } (选择器之间无符号连写)cssp.box { color: red; } /* 选中类名为box的p标签 */
-
注意事项
⚠️ 含标签选择器时,标签选择器必须写在最前面
二、字体属性
属性 | 作用 | 控制对象 |
---|---|---|
font-size | 字体大小 | 文字 |
font-weight | 字体粗细 | 文字 |
font-style | 字体倾斜 | 文字 |
line-height | 行高 | 文字 |
font-family | 字体族 | 文字 |
font | 复合属性 | - |
text-indent | 文本缩进 | 段落 |
text-align | 文本对齐 | 文本 |
text-decoration | 修饰线 | 文字 |
color | 颜色 | 文字 |
三、字体族(font-family)
-
基本用法
font-family: 字体名;示例:font-family: 楷体;
-
多字体备选
font-family: "Microsoft YaHei", "Heiti SC", sans-serif;
-
从左向右依次查找可用字体
-
⚠️ 最后必须设置通用字体族(如
sans-serif
)
-
-
字体分类
类型 特点 示例 无衬线字体 无笔画装饰 Arial 衬线字体 有笔画装饰衬线 Times New Roman
四、字体复合属性(font)
-
作用
简写多个字体属性(font-style
+font-weight
+font-size/line-height
+font-family
) -
标准顺序
font: 是否倾斜 是否加粗 字号/行高 字体;
/* 原始写法 */ div {font-style: italic;font-weight: 700;font-size: 30px;line-height: 2;font-family: 楷体; }/* 复合写法 */ div {font: italic 700 30px/2 楷体; }
-
注意事项
⚠️ 字号和字体值必须书写,否则属性失效
五、颜色(color)
表示方式 | 写法 | 使用场景 |
---|---|---|
颜色关键字 | red , blue | 学习测试 |
RGB | rgb(255,0,0) | 了解 |
RGBA | rgba(255,0,0,0.5) | 透明效果 |
十六进制 | #FF0000 或 #F00 | 开发常用 |
六、伪类选择器
-
作用
选中元素的特定状态 -
鼠标悬停
选择器:hover { color: red; /* 鼠标悬停时变红 */ }
-
超链接四大状态
选择器 状态 :link
未访问 :visited
已访问 :hover
悬停 :active
点击时 ⚠️ 书写顺序必须为 LVHA(link → visited → hover → active)
七、继承性
-
规则
子元素默认继承父元素的文字控制属性 -
可继承属性
font-size
,font-weight
,font-style
,line-height
,font-family
,text-indent
,text-align
,color
等
⚠️ 非文字属性(如宽高)不继承
八、层叠性
-
相同属性
后写的覆盖先写的div { color: red; } div { color: green; } /* 最终显示绿色 */
-
不同属性
样式叠加生效div { color: red; font-weight: 700; } div { color: green; font-size: 30px; } /* 结果:绿色、700加粗、30px字号 */
九、优先级
-
权重规则
!important
> 行内样式 > ID选择器 > 类选择器 > 标签选择器 > 通配符 > 继承
(选择范围越小,优先级越高) -
叠加计算
-
格式:
(行内, ID个数, 类个数, 标签个数)
-
比较规则:从左向右逐级比对
#father #son {} /* (0,2,0,0) */ #father p.c2 {} /* (0,1,1,1) */ div.c1 p.c2 {} /* (0,0,2,2) */
-
-
关键规则
⚠️!important
权重最高
⚠️ 继承权重最低
十、复合选择器
-
后代选择器
父选择器 子选择器 { color: red; /* 选中所有后代 */ }
-
子代选择器
父选择器 > 子选择器 { color: red; /* 仅选中直接子元素 */ }
-
并集选择器
选择器1, 选择器2 { color: red; /* 同时选中多组元素 */ }
-
交集选择器
选择器1选择器2 { color: red; /* 选中同时满足条件的元素 */
十一、伪元素选择器
-
作用
创建虚拟元素用于摆放装饰性内容 -
常用伪元素
选择器 说明 E::before
在E元素内部最前面添加伪元素 E::after
在E元素内部最后面添加伪元素 -
注意事项
⚠️ 必须设置content: ""
属性(内容为空时引号留空)
⚠️ 默认显示模式为行内元素
⚠️ 权重等同于标签选择器
十二、背景图平铺
属性名 | background-repeat |
---|---|
属性值 | 效果 |
no-repeat | 不平铺 |
repeat | 平铺(默认) |
repeat-x | 水平方向平铺 |
repeat-y | 垂直方向平铺 |
十三、背景图位置
-
属性名
background-position
-
属性值写法
水平位置 垂直位置
-
关键字:
left
/right
/center
(水平),top
/bottom
/center
(垂直) -
坐标值:
50px -100px
(水平:正右负左;垂直:正下负上)
-
-
特性
-
关键字顺序可颠倒(
center bottom
≡bottom center
) -
只写一个值时:水平方向使用该值,垂直方向居中
-
十四、背景图缩放
属性名 | background-size |
---|---|
属性值 | 效果 |
cover | 等比例缩放完全覆盖区域(可能裁剪图片) |
contain | 等比例缩放完全装入区域(可能留白) |
百分比 | 按容器尺寸百分比缩放 |
具体尺寸 | 400px 等具体数值 |
十五、背景图固定
属性名 | background-attachment |
---|---|
属性值 | 效果 |
fixed | 背景图固定不随内容滚动 |
应用场景 | 创建视差滚动效果 |
十六、背景复合属性
-
属性名
background
-
标准写法
背景色 背景图 平铺方式 位置/缩放 固定方式
background: pink url('./1.png') no-repeat right center/cover fixed;
-
特性
-
属性值顺序可调
-
非必需值可省略
-
十七、显示模式转换
属性值 | 效果 | 特点 |
---|---|---|
block | 块级元素 | 独占一行,可设宽高 |
inline-block | 行内块元素 | 同行显示,可设宽高 |
inline | 行内元素 | 同行显示,不可设宽高 |
十八、结构伪类选择器
选择器 | 作用 |
---|---|
E:first-child | 选择父元素中第一个E元素 |
E:last-child | 选择父元素中最后一个E元素 |
E:nth-child(N) | 选择父元素中第N个E元素 |
十九、:nth-child()公式
需求 | 公式 | 示例 |
---|---|---|
偶数元素 | 2n | 2,4,6... |
奇数元素 | 2n+1 或 2n-1 | 1,3,5... |
5的倍数 | 5n | 5,10,15... |
第5个以后 | n+5 | 5,6,7... |
第5个以前 | -n+5 | 1,2,3,4,5 |
二十、显示模式基础
-
定义
元素在页面中的呈现方式 -
核心作用
根据布局需求选择合适的显示模式 -
常见模式对比
<div>块级元素(独占一行)</div> <span>行内元素(同行显示)</span>
二十一、盒子模型组成
-
核心组成
-
内容区域(
width
&height
) -
内边距(
padding
:内容与边框间距) -
边框线(
border
) -
外边距(
margin
:盒子外部间距)
-
二十二、边框线
-
基础属性
border: 粗细 样式 颜色; /* 顺序可调 */
样式值 效果 solid
实线 dashed
虚线 dotted
点线 -
单方向边框
border-top: 2px solid red; /* 上边框 */ border-right: 3px dashed green; /* 右边框 */ border-bottom: 4px dotted blue; /* 下边框 */ border-left: 5px solid orange; /* 左边框 */
二十三、内边距(padding)
-
作用
控制内容与边框的间距 -
多值写法
值数量 示例 含义 1值 padding: 20px;
四边相同 2值 padding: 10px 50px;
上下 | 左右 3值 padding: 10px 30px 50px;
上 | 左右 | 下 4值 padding: 10px 20px 30px 40px;
上 | 右 | 下 | 左
二十四、盒子尺寸计算
-
默认公式
数学
盒子尺寸 = 内容尺寸 + border尺寸 + padding尺寸
-
内减模式
box-sizing: border-box; /* 自动内减不撑大盒子 */
⚠️ 不加此属性时,添加border/padding会撑大盒子
二十五、元素溢出
属性值 | 效果 |
---|---|
hidden | 隐藏溢出内容 |
scroll | 强制显示滚动条 |
auto | 溢出时自动显示滚动条 |
二十六、外边距问题
-
合并现象
⚠️ 垂直排列元素:上下margin合并,取较大值生效div1 { margin-bottom: 30px; } div2 { margin-top: 50px; } /* 实际间距=50px */
-
塌陷问题
⚠️ 子元素margin-top导致父元素一起下移
解决:-
父元素加
overflow: hidden
-
父元素加
border-top
-
父元素用padding替代子元素margin
-
二十七、行内元素边距
-
限制
行内元素设置margin/padding
无法改变垂直位置 -
解决方案
span {line-height: 60px; /* 通过行高调整垂直位置 */ }
二十八、盒子阴影
-
属性
box-shadow: X偏移 Y偏移 模糊半径 扩散半径 颜色 内外阴影;
-
示例
box-shadow: 5px 5px 10px 2px rgba(0,0,0,0.3) inset;
-
注意事项
⚠️ X/Y偏移量必须填写
⚠️ 默认外阴影,内阴影需添加inset
关键问题总结
问题类型 | 现象 | 解决方案 |
---|---|---|
尺寸撑大 | 添加border/padding后盒子变大 | box-sizing: border-box |
垂直margin合并 | 相邻元素上下margin取最大值 | 避免双margin,使用单方向控制 |
父子margin塌陷 | 子元素margin-top带动父元素 | 父元素加overflow:hidden 或border |
行内元素垂直定位 | margin/padding无效 | 使用line-height 调整 |
二十九、浮动基础
-
作用
使块级元素水平排列 -
属性
float: left; /* 左浮动 */ float: right; /* 右浮动 */
-
核心特点
-
⚠️ 浮动元素顶对齐
-
⚠️ 浮动元素具备行内块特性(可设宽高且同行显示)
-
⚠️ 父级宽度不足时自动换行
-
⚠️ 浮动后脱标(脱离标准流不占位)
-
三十、清除浮动
-
问题场景
⚠️ 父元素无高度时,浮动子元素无法撑开父级高度 → 布局错乱 -
解决方法
方法 代码示例 特点 额外标签法 <div style="clear:both"></div>
在父元素末尾添加空标签 单伪元素法 .clearfix::after {<br> content: "";<br> display: block;<br> clear: both;<br>}
最常用 双伪元素法 .clearfix::before,<br>.clearfix::after {<br> content: "";<br> display: table;<br>}<br>.clearfix::after {<br> clear: both;<br>}
推荐方案 overflow法 父元素 { overflow: hidden }
简单但有裁剪风险
三十一、浮动本质
核心作用:实现图文混排效果(文字环绕图片)
<img src="photo.jpg" style="float: left">
<p>文本内容将自动环绕在图片周围...</p>
关键总结
特性 | 说明 |
---|---|
脱标 | 浮动元素不占据标准流位置 |
行内块特性 | 可设宽高且同行显示 |
父级高度塌陷 | 必须清除浮动保持布局 |
清除方案优先级 | 双伪元素法 > 单伪元素法 > overflow法 > 额外标签法 |