
作为前端开发的核心技术之一,CSS 就像网页的 “化妆术”,能让原本单调的 HTML 结构焕发出绚丽的光彩。如果你刚踏入前端领域,对 CSS 充满好奇又有些迷茫,这篇文章将带你从零开始,全面解锁 CSS 的基础核心知识,从 “是什么” 到 “怎么用”,用通俗易懂的语言 + 实战代码样例,让你快速入门 CSS 世界!下面就让我们正式开始吧!
CSS 的全称是 Cascading Style Sheets,中文译为 “层叠样式表”。它是一种专门用于描述 HTML 文档呈现样式的语言,能够对网页中元素的位置、颜色、大小、字体等进行像素级的精确控制,最终实现美化页面的效果。
在没有 CSS 的年代,网页的样式只能通过 HTML 标签的属性来设置,比如用 <font> 标签设置字体颜色和大小,用 <center> 标签实现居中对齐。这种方式存在致命缺陷:
而 CSS 的出现彻底解决了这些问题,它实现了页面结构(HTML)与样式(CSS)的完全分离:
如果把 HTML 比作一个人的 “素颜”,那么 CSS 就是全套的 “化妆工具” 和 “化妆技巧”:

想要用好 CSS,首先得掌握它的基本语法规则。就像写字要遵循笔画顺序一样,CSS 代码也有固定的书写规范,只有按照规则编写,浏览器才能正确解析。
CSS 的基本语法由两部分组成:选择器和声明块,格式如下:
选择器 {
声明1;
声明2;
...
}<p>、div 容器等),告诉浏览器 “要给谁化妆”;{} 包裹,包含一条或多条样式声明,每条声明都是 “键值对” 形式,用于定义具体的样式规则,告诉浏览器 “要化什么妆”;: 分隔,每条声明末尾必须用分号 ; 结束(最后一条声明的分号可省略,但建议加上,避免后续添加声明时出错)。<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS 基本语法示例</title>
<style>
/* 选择器:p 标签(所有段落) */
p {
/* 声明1:设置字体颜色为红色 */
color: red;
/* 声明2:设置字体大小为 30px */
font-size: 30px;
/* 声明3:设置字体加粗 */
font-weight: bold;
}
</style>
</head>
<body>
<p>这是应用了 CSS 样式的段落</p>
<p>CSS 语法真简单!</p>
</body>
</html>在这个例子中:
p,表示要选中页面中所有的 <p> 标签;<p> 标签的文字都会变成红色、30px 大小且加粗显示。运行效果如下:

注释规则:CSS 中的注释用 /* 注释内容 */ 表示,注释内容不会被浏览器解析,仅用于开发者备注。快捷键 Ctrl + / 可快速添加 / 取消注释,建议在关键样式处添加注释,方便后续维护。
/* 页面标题样式:红色、24px、居中 */
h1 {
color: red;
font-size: 24px;
text-align: center;
}style 标签位置:CSS 代码通常写在 <style> 标签中,<style> 标签可以放在 HTML 文档的任意位置,但建议放在 <head> 标签内。这样浏览器在加载页面内容前,会先加载 CSS 样式,避免页面出现 “先显示素颜,再加载妆容” 的闪烁现象。
属性值的合法性:每个 CSS 属性都有对应的合法值,比如 color 属性可以取预定义颜色名(red、blue)、十六进制值(#ff0000)、RGB 值(rgb (255,0,0))等,若取值不合法,浏览器会忽略该声明。
CSS 有三种常见的引入方式,分别是内部样式表、行内样式表和外部样式表。不同的引入方式适用于不同的场景,掌握它们的用法和区别,能让你更灵活地运用 CSS。
内部样式表是将 CSS 代码写在 HTML 文档的 <style> 标签内,<style> 标签通常位于 <head> 标签中。这种方式将 CSS 与 HTML 放在同一个文件中,实现了样式与结构的初步分离。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>内部样式表示例</title>
<style>
/* 内部样式表:所有 div 标签样式 */
div {
color: green;
font-size: 20px;
background-color: #f5f5f5;
padding: 10px;
border-radius: 5px;
}
/* 所有 p 标签样式 */
p {
color: #333;
line-height: 1.5;
}
</style>
</head>
<body>
<div>这是一个 div 容器,应用了内部样式表</div>
<p>这是一个段落,也应用了内部样式表</p>
<div>内部样式表适合单个页面的样式定义</div>
</body>
</html> 行内样式表是通过 HTML 标签的 style 属性直接定义元素的样式,样式仅作用于当前标签。这种方式将 CSS 样式直接写在元素上,是最直接的样式设置方式。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>行内样式表示例</title>
</head>
<body>
<!-- 行内样式:直接通过 style 属性设置样式 -->
<div style="color: green; font-size: 20px; background-color: #f5f5f5; padding: 10px; border-radius: 5px;">
想要生活过的去,头上总得带点绿
</div>
<p style="color: red; font-size: 18px; font-weight: bold;">这是应用了行内样式的段落</p>
<span style="color: blue; text-decoration: underline;">行内样式仅作用于当前标签</span>
</body>
</html>运行效果如下:

行内样式表的优先级最高,会覆盖内部样式表和外部样式表中对同一元素的相同样式声明。
例如:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>行内样式优先级示例</title>
<style>
/* 内部样式表:div 标签颜色为红色 */
div {
color: red;
font-size: 20px;
}
</style>
</head>
<body>
<!-- 行内样式:颜色为绿色,会覆盖内部样式的红色 -->
<div style="color: green;">想要生活过的去,头上总得带点绿</div>
</body>
</html>运行结果:div 标签的文字颜色为绿色,而非内部样式表中设置的红色。

<style> 标签或外部文件;style 属性。 外部样式表是将 CSS 代码单独写在一个 .css 后缀的文件中,然后通过 HTML 中的 <link> 标签将 CSS 文件引入到 HTML 文档中。这种方式实现了样式与结构的完全分离,是实际开发中最常用的 CSS 引入方式。
.css(如 style.css),在文件中编写 CSS 代码;<head> 标签中,使用 <link> 标签引入 CSS 文件,href 属性指定 CSS 文件的路径。style.css 文件(CSS 外部文件)/* style.css:外部样式表文件 */
div {
color: red;
font-size: 22px;
background-color: #f0f0f0;
padding: 15px;
margin: 10px 0;
border-radius: 8px;
}
p {
color: #666;
font-size: 16px;
line-height: 1.8;
text-indent: 2em;
}
h1 {
color: #333;
text-align: center;
margin-bottom: 30px;
}demo.html 文件(HTML 文件)<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>外部样式表示例</title>
<!-- 引入外部 CSS 文件 -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>外部样式表演示</h1>
<div>上帝为你关上一扇门,然后就去睡觉了</div>
<p>外部样式表是实际开发中最常用的方式,它实现了样式与结构的完全分离。多个 HTML 页面可以共享同一个 CSS 文件,便于样式的统一管理和维护。</p>
<div>使用外部样式表,修改样式时只需修改 CSS 文件,所有引入该文件的 HTML 页面都会同步更新样式,极大地提高了开发效率。</div>
</body>
</html> <link> 标签的 href 属性用于指定 CSS 文件的路径,路径分为两种:
href="style.css":CSS 文件与 HTML 文件在同一目录下;href="css/style.css":CSS 文件在 HTML 文件同级的 css 文件夹中;href="../style.css":CSS 文件在 HTML 文件上一级目录中。href="https://cdn.example.com/css/style.css"。外部样式表会受到浏览器缓存的影响。浏览器为了提高页面加载速度,会将频繁访问的外部资源(如 CSS、JS、图片等)缓存到本地磁盘中,下次访问时直接从本地读取,无需重新从服务器获取。这可能导致修改 CSS 文件后,页面样式没有立即更新(浏览器仍在使用缓存的旧版本 CSS 文件)。
解决方法:
Ctrl + F5(Windows)或 Cmd + Shift + R(Mac),强制浏览器重新获取 CSS 文件;style.css 改为 style_v2.css,并更新 HTML 中 <link> 标签的 href 属性;href="style.css?v=2",每次修改 CSS 后更新版本号,浏览器会视为新文件并重新加载。引入方式 | 优点 | 缺点 | 适用场景 | 优先级 |
|---|---|---|---|---|
内部样式表 | 无需额外请求,加载快;开发调试方便 | 样式无法复用;CSS 过多导致 HTML 臃肿 | 单个页面、简单样式、原型开发 | 中等 |
行内样式表 | 优先级最高,快速覆盖样式;书写简单 | 样式与结构混杂;无法复用;维护困难 | 单个元素特殊样式、临时调整 | 最高 |
外部样式表 | 样式复用性强;维护方便;代码整洁 | 需额外请求文件;可能受缓存影响 | 多页面网站、复杂项目、团队协作 | 最低 |
总结:实际开发中,优先使用外部样式表;若仅需为单个页面设置简单样式,可使用内部样式表;仅在需要为单个元素设置特殊样式时,偶尔使用行内样式表(尽量避免滥用)。
好的代码风格不仅能让代码更易读、易维护,还能提高开发效率,减少错误。CSS 虽然语法简单,但也有一套约定俗成的代码风格规范,遵循这些规范,能让你的 CSS 代码更加优雅、专业。
CSS 样式有两种常见的格式:紧凑风格和展开风格。
将所有声明写在同一行,适合样式较少的情况。
/* 紧凑风格 */
p { color: red; font-size: 30px; font-weight: bold; }
div { background-color: #f5f5f5; padding: 10px; margin: 5px; }每条声明单独一行,大括号单独成行,缩进对齐。这种风格更易读、易维护,是实际开发中推荐使用的格式。
/* 展开风格(推荐) */
p {
color: red;
font-size: 30px;
font-weight: bold;
}
div {
background-color: #f5f5f5;
padding: 10px;
margin: 5px;
} CSS 对大小写不敏感,color: Red 和 color: red 效果相同,font-size 和 FONT-SIZE 也等效。但为了代码的一致性和规范性,推荐统一使用小写字母。
/* 推荐:所有属性名和属性值使用小写 */
h1 {
color: blue;
font-size: 24px;
background-color: #f0f0f0;
}/* 不推荐:大小写混用 */
h1 {
Color: Blue;
FONT-SIZE: 24PX;
Background-Color: #F0F0F0;
}适当的空格能让 CSS 代码更易读,避免因代码拥挤导致的误读。以下是必须遵守的空格规范:
属性名和属性值之间的冒号 : 后面必须加一个空格,冒号前面不加空格。
/* 推荐 */
p {
color: red;
font-size: 18px;
}
/* 不推荐 */
p {
color:red; /* 冒号后无空格 */
font-size : 18px; /* 冒号前有空格 */
} 选择器和后面的左大括号 { 之间必须加一个空格。
/* 推荐 */
div {
padding: 10px;
}
/* 不推荐 */
div{ /* 选择器和大括号之间无空格 */
padding: 10px;
} 当属性值包含多个值(如 margin: 10px 20px 30px 40px)时,逗号后面加一个空格。
/* 推荐 */
.box {
background: linear-gradient(red, blue, green);
font-family: "Microsoft YaHei", sans-serif;
}
/* 不推荐 */
.box {
background: linear-gradient(red,blue,green); /* 逗号后无空格 */
font-family: "Microsoft YaHei",sans-serif; /* 逗号后无空格 */
} 当属性值需要计算(如 width: calc(100% - 20px))时,运算符前后加一个空格。
/* 推荐 */
.container {
width: calc(100% - 20px);
height: calc(50vh + 100px);
}
/* 不推荐 */
.container {
width: calc(100%-20px); /* 运算符前后无空格 */
height: calc(50vh+100px); /* 运算符前后无空格 */
}选择器的命名直接影响代码的可读性和维护性,推荐使用语义化命名,即根据元素的功能或用途命名,而非根据样式命名。
/* 推荐:语义化命名 */
.header { /* 头部区域 */
height: 80px;
background-color: #fff;
}
.nav { /* 导航栏 */
display: flex;
justify-content: space-around;
}
.footer { /* 底部区域 */
padding: 20px;
text-align: center;
}
.btn-primary { /* 主要按钮 */
background-color: #007bff;
color: #fff;
}/* 不推荐:根据样式命名 */
.red-text { /* 红色文字 */
color: red;
}
.big-box { /* 大盒子 */
width: 500px;
height: 300px;
}
.margin-10 { /* 外边距10px */
margin: 10px;
}- 连接(如 btn-primary、header-nav),避免使用下划线 _ 或驼峰命名(如 btnPrimary);#、!)作为选择器名称;div、p)作为类名或 ID 名(除非是标签选择器);user-info 比 user-personal-information 更简洁)。 注释是代码的 “说明书”,能帮助自己和他人理解代码的用途。CSS 中使用 /* 注释内容 */ 表示注释,以下是注释的规范:
在 CSS 文件开头,添加文件说明注释,包括文件名、作者、创建日期、文件用途等。
/*
* 文件名:style.css
* 作者:前端小菜鸟
* 创建日期:2024-05-20
* 文件用途:网站首页样式表,包含头部、导航、内容区、底部等样式
* 版本:v1.0
*/对 CSS 中的主要区块(如头部、导航、内容区、底部)添加注释,说明该区块的作用。
/* 头部区域样式 */
.header {
height: 80px;
background-color: #fff;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
/* 导航栏样式 */
.nav {
display: flex;
justify-content: space-around;
align-items: center;
height: 100%;
}对关键样式或复杂样式添加单行注释,说明该样式的用途或注意事项。
.btn-primary {
background-color: #007bff;
color: #fff;
padding: 8px 16px;
border-radius: 4px;
border: none;
cursor: pointer;
transition: background-color 0.3s; /* hover 过渡效果,时长0.3秒 */
}
.btn-primary:hover {
background-color: #0056b3; /* hover 时颜色加深 */
}为了提高代码的可读性,建议按照一定的顺序排列 CSS 属性。常用的排列顺序:
display、position、float、clear、visibility 等);width、height、margin、padding、border 等);background-color、background-image、background-position 等);color、font-size、font-weight、text-align、line-height 等);cursor、transition、opacity 等)。/* 推荐:按属性顺序排列 */
.card {
/* 布局属性 */
display: flex;
position: relative;
/* 盒模型属性 */
width: 300px;
height: 400px;
margin: 10px;
padding: 20px;
border: 1px solid #eee;
border-radius: 8px;
/* 背景属性 */
background-color: #fff;
/* 字体文本属性 */
color: #333;
font-size: 16px;
line-height: 1.5;
text-align: left;
/* 其他属性 */
cursor: pointer;
transition: transform 0.3s;
}
.card:hover {
transform: translateY(-5px);
}margin: 10px 10px 10px 10px 可简化为 margin: 10px,#ff0000 可简化为 red 或 #f00;display: none 的元素设置 color、font-size 等样式(浏览器不会渲染)。/* 推荐:合并重复样式,简化属性值 */
h1, h2, h3 {
color: #333;
font-weight: bold;
margin-bottom: 15px;
}
.box {
margin: 10px; /* 简化前:margin: 10px 10px 10px 10px */
color: #f00; /* 简化前:color: #ff0000 */
} CSS 中常用的单位有 px(像素)、em(相对当前字体大小)、rem(相对根元素字体大小)、%(百分比)等。建议在项目中统一使用一种或两种单位,避免单位混用导致的混乱。
例如:
px;em、rem 或 %;width: 200px + 50%,这种写法无效)。CSS 是一门 “实践出真知” 的技术,仅仅掌握理论知识是不够的。建议你结合本文中的代码样例,亲自在编辑器中编写、运行、修改,感受 CSS 带来的页面变化。后续我们还会学习 CSS 选择器的进阶用法、常用属性详解、布局技巧等内容,逐步解锁 CSS 的更多高级功能。 如果在学习过程中遇到问题,不妨多查阅官方文档(如 W3School、MDN),或通过浏览器的开发者工具(F12)调试样式。相信只要坚持练习,你一定能熟练运用 CSS,打造出美观、精致的网页!