第五章:精通视觉表现:背景、列表与装饰
第五章:精通视觉表现:背景、列表与装饰
Prorise第五章:精通视觉表现:背景、列表与装饰
摘要: 本章我们将专注于提升页面的视觉表现力。您将系统学习如何使用强大的 background
属性为元素添加颜色、渐变、图片等丰富的背景效果,此外,我们还将深入探讨列表、轮廓的自定义样式,以及如何利用 z-index
控制元素的层叠顺序,为您的网页增添更多精致的细节。
在本章的学习地图中,我们将:
- 首先,深入探索 背景 (
background
) 属性全家桶,学习如何为元素打造丰富的视觉层次。 - 接着,我们将学习如何通过 列表样式 (
list-style
) 来自定义项目符号。 - 然后,我们将辨析 轮廓 (
outline
) 与边框的区别,并学习如何控制元素的 层叠顺序 (z-index
)。 - 最后,我们将通过 核心速查总结 来巩固本章所有知识点。
5.1. 背景 (background):网页的“皮肤”
背景是元素内容之下的“画布”,通过一系列 background-*
属性,我们可以精确地控制这个画布的外观。
5.1.1. 核心背景属性
属性 | 说明 | 常用值举例 |
---|---|---|
background-color | 设置纯色背景 | #FFF , rgb(0,0,0) , transparent |
background-image | 设置背景图片 | url('path/to/image.jpg') |
background-repeat | 控制图片平铺方式 | no-repeat (不平铺, 只显示一次), repeat (平铺) |
background-position | 设置图片位置 | center , top right , 50% 50% |
background-size | 控制图片尺寸 | cover (铺满), contain (完整显示) |
background-attachment | 背景是否随页面滚动 | scroll (滚动), fixed (固定) |
background (简写) | 将以上属性写在一行 | blue url(...) no-repeat center / cover |
简写属性 background
顺序提示:
color
image
repeat
attachment
position
/ size
(注意 size
前必须有 /
)
5.1.2. 核心实战技巧
除了基础属性的设置,background
属性的真正威力体现在其组合应用上。以下是三个在开发中几乎必然会遇到的实战技巧。
技巧一:实现半透明背景 (rgba vs opacity)
- 场景: 需要一个半透明的叠加层,但又不希望层内的文字也变透明。
- 方案: 使用
background-color: rgba(...)
而非opacity
。
1 | <style> |
技巧二:全屏背景图 (Full-Screen Background)
- 场景: 网站的首页、登录页或活动页,需要一张高清大图作为背景,铺满整个浏览器视口。
- 方案: 将背景图应用到
html
或body
标签,并结合background-size: cover
和background-attachment: fixed
。
1 |
|
技巧三:用背景图优雅填充盒子)
- 场景: 卡片列表、相册或用户头像展示。容器尺寸是固定的,但内部的图片高宽比各不相同,需要让图片填满容器且不被拉伸变形。
- 方案: 不要使用
<img>
标签,而是用一个<div>
作为容器,并将图片设为其background-image
,再利用background-size
控制填充方式。
1 | <style> |
5.2. 列表样式 (list-style)
在第四章的实战中我们学习了使用伪元素 ::before
来创建更灵活的自定义列表符号,对于 list-style 我们最常用的仅仅只是将它设置为 none 即无符号
list-style-type
: 改变项目符号的类型,例如square
(方块),circle
(空心圆),upper-roman
(大写罗马数字),none
(无符号)。list-style-position
:outside
(默认,符号在列表项外) 或inside
(符号在列表项内,会随文本缩进)。list-style-image
: 使用url()
指定一张图片作为项目符号。list-style
(简写属性):list-style: type position image;
。
1 | <style> |
5.3. 轮廓 (outline) 与层叠 (z-index)
5.3.1. 轮廓 (outline):不占空间的“高亮框”
outline
是绘制于元素 border
之外的一条线,它与 border
最大的区别在于:
核心区别: outline
不属于 盒模型的一部分,它不占据任何布局空间,不会把其他元素推开。而 border
会增加元素的实际尺寸,影响布局。
outline
常用于调试或在元素获得焦点时(:focus
)提供视觉反馈,在开发中我们也并不是很常用,简单了解即可
outline-style
:solid
,dashed
,dotted
等。outline-width
: 轮廓宽度。outline-color
: 轮廓颜色。outline-offset
: 轮廓与边框之间的距离。
1 | <style> |
5.3.2. z-index:控制元素的堆叠顺序
网页是三维的,除了 X 轴和 Y 轴,还存在一个垂直于屏幕的 Z 轴。z-index
属性就用于控制元素在 Z 轴上的堆叠顺序。
前置条件: z-index
属性 仅在 元素定义了 position
属性(且值不为 static
)时才有效。我们将在下一章详细学习 position
,这里先作初步了解。
z-index
的值是一个整数,可以是正数、负数或 0。- 值越大的元素,层级越高,会显示在值小的元素的上方。
- 如果没有设置
z-index
,则在 HTML 中后出现的元素会叠在先出现的元素之上。
1 | <style> |
5.4. 本章核心速查总结
分类 | 关键项 | 核心描述 |
---|---|---|
背景 | background-color | 使用 rgba() 实现仅背景半透明,是最佳实践。 |
background-size | cover (裁剪铺满) 和 contain (完整显示) 是响应式背景的关键。 | |
background-position | 配合精灵图(Sprites)使用负值来定位图标,是性能优化技巧。 | |
background | 简写属性,顺序: color image repeat attachment position / size 。 | |
列表 | list-style-type | 设置项目符号样式,可用 none 去除。 |
list-style-position | inside (内) 或 outside (外)。 | |
轮廓 | outline | 不占据布局空间,不影响周围元素,常用于 :focus 状态。 |
层叠 | z-index | 必须配合 position (非 static ) 使用。数值越大,层级越高。 |