什么是 CSS 样式表?

当你打开一个网页时,文字的字体、颜色、大小,图片的位置,背景的颜色,元素之间的间距——所有这些视觉呈现,都由 CSS 来定义。

CSS(Cascading Style Sheets,层叠样式表) 是一种用于控制网页外观和排版布局的样式表语言。它的核心功能非常简单:告诉浏览器"这个元素应该长什么样"。

为什么要用 CSS?

在 CSS 出现之前,网页的样式直接在 HTML 中定义。比如要让文字变成红色,就要在 HTML 标签上写 <font color="red">。这种方式有几个明显的缺陷:

  • 代码冗余:每个需要修改的文字都要单独加上样式属性。
  • 维护困难:如果要把全站的红色文字改为蓝色,需要逐个修改每个标签。
  • 内容与样式混杂:HTML 负责内容结构,样式代码穿插其中,代码可读性极差。

CSS 解决了这些问题。它将内容的编写样式的定义分开,让 HTML 专注于页面结构,CSS 专注于视觉呈现。

CSS 的核心概念

1. "层叠"的含义

CSS 中的"C"代表"Cascading(层叠)",这是 CSS 最核心的机制。它指的是多条样式规则可以同时作用于同一个 HTML 元素,浏览器会按照一定的优先级规则来决定最终应用哪个样式。

"层叠"有三层含义:

  • 样式来源的层叠:浏览器默认样式、用户自定义样式、开发者定义的样式,按优先级依次覆盖。
  • 选择器优先级的层叠:不同的 CSS 选择器有不同的权重,权重高的覆盖权重低的。
  • 样式位置的层叠:内联样式、页面内部样式、外部样式文件,按一定规则进行覆盖。

2. CSS 的基本语法

CSS 由一条条"规则"组成,每条规则包含选择器和声明块。

1
2
3
4
选择器 {
属性: 值;
属性: 值;
}
组成部分 说明 示例
选择器 指定要应用样式的 HTML 元素 p#header.intro
属性 要修改的样式特征 colorfont-sizemargin
属性的具体设置 red16px10px

示例

1
2
3
4
5
/* 将所有段落文字设为蓝色,字号为 16px */
p {
color: blue;
font-size: 16px;
}

CSS 的三种使用方式

1. 外部样式表

将 CSS 代码写在独立的 .css 文件中,在 HTML 中通过 <link> 标签引入。这是最推荐的方式,适合多页面共享样式,便于维护。

1
2
<!-- HTML 中引用 -->
<link rel="stylesheet" href="style.css">
1
2
3
4
/* style.css 文件内容 */
body {
background-color: #f0f0f0;
}

2. 内部样式表

在 HTML 的 <head> 中使用 <style> 标签编写 CSS。适用于单个页面的独有样式。

1
2
3
4
5
6
7
<head>
<style>
h1 {
color: green;
}
</style>
</head>

3. 内联样式

直接在 HTML 元素的 style 属性中定义样式。不推荐使用,因为它将样式和内容混在一起,难以维护,且优先级最高会覆盖其他所有样式。

1
<p style="color: red; font-size: 20px;">这是一段文字</p>

选择器:CSS 的"瞄准镜"

选择器用于定位需要应用样式的 HTML 元素,它是 CSS 最基础也最灵活的部分。

选择器类型 语法 说明 示例
标签选择器 标签名 选中所有该标签的元素 p { color: red; }
类选择器 .类名 选中所有带有该 class 的元素 .intro { font-weight: bold; }
ID 选择器 #ID名 选中具有该 id 的唯一元素 #header { height: 80px; }
后代选择器 父 子 选中父元素内的所有子元素 div p { color: blue; }
子选择器 父 > 子 选中父元素的直接子元素 ul > li { list-style: none; }
伪类选择器 :状态 选中元素的特定状态 a:hover { color: red; }
伪元素选择器 ::位置 选中元素的特定部分 p::first-line { font-weight: bold; }

层叠与优先级

当多条 CSS 规则作用于同一个元素时,浏览器会根据优先级规则决定使用哪一条。

优先级顺序(从高到低)

  1. 内联样式:写在元素 style 属性中的样式
  2. ID 选择器:如 #header
  3. 类选择器、伪类、属性选择器:如 .intro:hover[type="text"]
  4. 标签选择器、伪元素:如 p::first-line
  5. 通配选择器:如 *
  6. 浏览器默认样式

当多个选择器优先级相同且作用于同一元素时,后定义的样式覆盖先定义的样式

CSS 能做什么?

CSS 几乎可以控制网页的所有视觉方面:

  • 文字样式:字体、字号、颜色、粗细、行高、字间距。
  • 背景:背景色、背景图、渐变。
  • 盒模型:边距、边框、内边距、宽度、高度。
  • 布局:浮动、弹性盒子(Flexbox)、网格(Grid)、定位。
  • 动画与过渡:旋转、缩放、移动、渐变过渡。
  • 响应式设计:根据屏幕尺寸、设备类型调整布局。
  • 打印样式:控制页面打印时的显示效果。

CSS 的版本演进

版本 发布年份 主要特点
CSS 1 1996 基本样式(字体、颜色、边距等)
CSS 2 1998 添加了定位、伪类、媒体类型等
CSS 2.1 2011 修复和规范了 CSS 2
CSS 3 2011 起持续演进 模块化发布,新增圆角、阴影、动画、Flexbox、Grid、渐变等

CSS 3 与之前的版本最大的不同是采用了模块化的方式,不再有一个完整的"CSS 3"标准,而是将功能拆分为独立的模块(如 Selectors、Media Queries、Flexbox、Grid、Transitions、Animations 等),每个模块独立更新和推进。

总结

CSS 是 Web 的"视觉设计师"——它和 HTML 共同构成了网页的基础。如果说 HTML 是房子的混凝土框架,CSS 就是墙面涂料、地板砖和窗帘,决定了房子的外观和氛围。

掌握 CSS 的核心在于理解三个层面的内容:选择器(如何选中元素)、盒模型(元素如何占据空间)、布局(元素如何在页面上排列)。当你熟练运用这些概念后,就能构建出视觉美观、响应式适配的现代网页。