学习 CSS(层叠样式表)是前端开发的核心技能之一,它用于控制网页的布局、样式和视觉呈现。以下是一份系统的学习路径和关键知识点,帮助你逐步掌握 CSS:
一、CSS 基础入门
什么是 CSS?
CSS 用于描述 HTML 元素的显示方式,实现“内容与样式分离”,让网页结构更清晰、维护更方便。引入 CSS 的三种方式
- 内联样式:直接在 HTML 标签中用
style属性定义(不推荐,耦合度高)。
例:<p style="color: red;">文本</p> - 内部样式表:在 HTML 的
<head>中用<style>标签定义(适用于单页样式)。
例:<style> p { color: red; } </style> - 外部样式表:创建
.css文件,通过<link>引入(推荐,多页面复用)。
例:<link rel="stylesheet" href="style.css">
- 内联样式:直接在 HTML 标签中用
基本语法
CSS 由“选择器”和“声明块”组成:选择器 { 属性名: 属性值; /* 声明(键值对) */ 属性名: 属性值; }例:
h1 { color: blue; font-size: 20px; }
二、核心选择器
选择器用于定位 HTML 元素,是 CSS 的核心:
基础选择器
- 元素选择器:直接用标签名(如
p、div)。 - 类选择器:用
.类名(可复用,一个元素可多个类)。
例:.title { color: green; },对应 HTML<p class="title"> - ID 选择器:用
#ID名(唯一,一个元素只能一个 ID)。
例:#logo { width: 100px; },对应 HTML<div id="logo"> - 通配符:
*匹配所有元素(慎用,性能影响)。
- 元素选择器:直接用标签名(如
组合选择器
- 后代选择器:
A B匹配 A 内部的所有 B(无论嵌套层级)。 - 子选择器:
A > B仅匹配 A 的直接子元素 B。 - 相邻兄弟选择器:
A + B匹配 A 后面紧邻的第一个 B。 - 通用兄弟选择器:
A ~ B匹配 A 后面所有同级的 B。
- 后代选择器:
伪类与伪元素
- 伪类:用于元素的特定状态(如
:hover鼠标悬停、:active点击时、:nth-child(n)第 n 个子元素)。
例:a:hover { color: red; } - 伪元素:创建虚拟元素(如
::before在元素前插入内容、::after在元素后插入)。
例:p::before { content: "→"; }
- 伪类:用于元素的特定状态(如
三、样式属性核心
文本样式
color:文本颜色(支持关键词、#rrggbb、rgb()、rgba())。font-family:字体(如font-family: "Microsoft YaHei", sans-serif;)。font-size:字号(如16px、1.2rem)。font-weight:字重(normal、bold或 100-900)。text-align:对齐方式(left、center、right)。line-height:行高(控制文本垂直间距,1.5表示 1.5 倍字号)。
盒模型(Box Model)
每个元素都是一个“盒子”,由以下部分组成(从内到外):content:内容区域(width、height控制)。padding:内边距(内容与边框的距离)。border:边框(border: 1px solid #000;宽度、样式、颜色)。margin:外边距(盒子与其他元素的距离)。- 注意:默认
box-sizing: content-box(width仅含内容),建议设置box-sizing: border-box(width包含 padding 和 border)。
背景样式
background-color:背景色。background-image:背景图(url("图片路径"))。background-repeat:是否重复(no-repeat、repeat-x等)。background-position:背景图位置(如center、20px 30px)。- 简写:
background: #f00 url("img.jpg") no-repeat center;
布局相关
display:控制元素显示类型(核心!):block:块级元素(独占一行,可设宽高,如div、p)。inline:行内元素(不独占一行,宽高无效,如span、a)。inline-block:行内块(不独占一行,可设宽高)。none:隐藏元素(不占空间)。
float:浮动(left/right,让元素脱离文档流,用于早期布局,注意清除浮动)。position:定位(控制元素位置):static:默认(正常文档流)。relative:相对自身原位置偏移(不脱离文档流)。absolute:绝对定位(相对于最近的非 static 父元素偏移,脱离文档流)。fixed:固定定位(相对于视口,不随滚动变化)。
四、进阶布局技术
Flex 布局(弹性盒)
最常用的现代布局方式,通过给父元素设置display: flex,控制子元素的排列、对齐、分配空间。- 核心属性(父容器):
flex-direction(方向)、justify-content(水平对齐)、align-items(垂直对齐)、flex-wrap(换行)。 - 子元素属性:
flex(分配剩余空间,如flex: 1占比 1 份)。
- 核心属性(父容器):
Grid 布局(网格)
二维布局系统(行 + 列),适合复杂布局,父元素设置display: grid。- 核心属性:
grid-template-columns(列宽)、grid-template-rows(行高)、gap(间距)。 - 例:
grid-template-columns: 100px 200px auto;定义 3 列,宽度分别为 100px、200px、自适应。
- 核心属性:
响应式布局
使网页在不同设备(手机、平板、电脑)上自适应显示:- 媒体查询(Media Queries):根据屏幕尺寸应用不同样式。
例:@media (max-width: 768px) { /* 屏幕宽度 ≤768px 时生效 */ .container { width: 100%; } } - 相对单位:
rem(相对于根元素字号)、vw/vh(视口宽度/高度的 1%)。
- 媒体查询(Media Queries):根据屏幕尺寸应用不同样式。
五、实践与工具
- 调试工具:浏览器 F12 开发者工具的「Elements」面板,可实时修改和查看 CSS。
- 学习资源:
- 文档:MDN Web Docs(最权威)。
- 练习:CodePen、JSFiddle 在线编写代码。
- 框架:后期可学习 Bootstrap、Tailwind CSS 等样式框架,提高开发效率。
学习建议
- 先掌握基础选择器、盒模型、Flex 布局,这些是日常开发的核心。
- 多写实例:用 CSS 复刻简单网页(如导航栏、卡片布局),加深理解。
- 关注浏览器兼容性:部分属性(如早期 Flex)在旧浏览器(如 IE)中需加前缀(
-webkit-、-moz-)。
从基础到进阶,逐步实践,你会慢慢掌握 CSS 的精髓!