CSS之基础语法一文全解析
CSS之基础语法一文全解析
- 一、CSS语法核心结构:选择器+声明块
- 1.1 基础语法模板
- 1.2 关键组成部分
- 二、选择器全解析:精准定位目标元素
- 2.1 基础选择器(必掌握)
- 2.1.1 标签选择器(类型选择器)
- 2.1.2 类选择器(最灵活)
- 2.1.3 ID选择器(唯一性)
- 2.2 组合选择器(复杂场景)
- 2.2.1 后代选择器(空格分隔)
- 2.2.2 子代选择器(>`符号)
- 2.2.3 并集选择器(逗号分隔)
- 2.3 伪类选择器(动态状态)
- 2.3.1 链接状态伪类
- 2.3.2 结构伪类(表单/列表)
- 三、属性值类型:从基础值到函数表达式
- 3.1 基础值类型
- 3.1.1 颜色值
- 3.1.2 长度单位
- 3.1.3 关键字
- 3.2 函数表达式
- 3.2.1 计算函数`calc()`
- 3.2.2 自定义变量`var()`(CSS3新特性)
- 四、声明规则:层叠性、优先级与简写
- 4.1 层叠性:冲突时的样式应用规则
- 4.2 简写属性:简化代码
- 五、代码组织与最佳实践
- 5.1 注释规范
- 5.2 导入方式对比
- 5.3 代码格式化
- 六、常见问题与避坑指南
- 6.1 样式不生效?
- 6.2 单位使用误区
- 6.3 伪类顺序问题
在Web开发中,CSS(层叠样式表)负责网页的视觉呈现,其基础语法是实现精美页面的基石。本文将系统拆解CSS核心语法体系,并通过实战案例演示选择器、属性、声明规则等核心知识,帮你建立起扎实的CSS基础。
一、CSS语法核心结构:选择器+声明块
1.1 基础语法模板
CSS规则由选择器和声明块两部分组成,语法结构如下:
/* 选择器 { 声明块 } */
h1 {color: red; /* 属性: 值; */font-size: 24px; /* 多个声明用分号分隔 */
}
1.2 关键组成部分
- 选择器:指定样式作用的HTML元素(如
h1
、.class
、#id
) - 声明块:包含一组
属性: 值
对,用大括号包裹 - 属性:CSS样式名称(如
color
、font-size
、margin
) - 值:属性对应的有效值(如颜色值、长度单位、关键字)
- 分号:每个声明必须以分号结尾(最后一个声明可省略,但建议保留)
二、选择器全解析:精准定位目标元素
2.1 基础选择器(必掌握)
2.1.1 标签选择器(类型选择器)
- 语法:
标签名 { 样式 }
- 作用:选择所有该标签的元素
- 案例:统一设置所有段落字体颜色
p {color: #666;line-height: 1.6; }
2.1.2 类选择器(最灵活)
- 语法:
.类名 { 样式 }
(类名以.
开头) - 作用:选择所有
class
属性匹配的元素 - 案例:为按钮添加样式
.btn-primary {background-color: #4a90e2;color: white;padding: 8px 16px; }
2.1.3 ID选择器(唯一性)
- 语法:
#id名 { 样式 }
(ID名以#
开头) - 作用:选择
id
属性匹配的唯一元素(每个ID在页面中只能出现一次) - 案例:定位导航栏
#header-nav {background-color: #f5f5f5;padding: 20px; }
2.2 组合选择器(复杂场景)
2.2.1 后代选择器(空格分隔)
- 语法:
父元素 子元素 { 样式 }
- 作用:选择父元素内部的所有指定子元素
- 案例:仅设置列表中的链接样式
ul li a {text-decoration: none;color: #333; }
2.2.2 子代选择器(>`符号)
- 语法:
父元素>子元素 { 样式 }
- 作用:选择父元素的直接子元素
- 案例:仅设置第一级列表项
.menu>li {display: inline-block;margin-left: 15px; }
2.2.3 并集选择器(逗号分隔)
- 语法:
选择器1, 选择器2 { 样式 }
- 作用:同时选择多个元素
- 案例:统一标题和段落的字体
h1, h2, p {font-family: 'Arial', sans-serif; }
2.3 伪类选择器(动态状态)
2.3.1 链接状态伪类
:hover
:鼠标悬停时:active
:鼠标点击时:visited
:已访问链接- 案例:交互按钮效果
.link-btn:hover {color: #4a90e2;text-decoration: underline; }
2.3.2 结构伪类(表单/列表)
:first-child
:第一个子元素:nth-child(n)
:第n个子元素(n可为数字、公式如2n
):checked
:选中的单选/多选框- 案例:隔行变色表格
table tr:nth-child(even) {background-color: #f8f8f8; }
三、属性值类型:从基础值到函数表达式
3.1 基础值类型
3.1.1 颜色值
- 十六进制:
#fff
(简写)、#ffffff
(完整) - RGB:
rgb(255, 0, 0)
(十进制)、rgba(255, 0, 0, 0.5)
(带透明度) - 预定义名称:
red
、blue
、transparent
(透明) - 案例:渐变色背景(需配合
background-image
属性).hero {background-image: linear-gradient(to bottom, #4a90e2, #2196f3); }
3.1.2 长度单位
- 绝对单位:
px
(像素,最常用)、pt
(点,印刷场景) - 相对单位:
em
:相对于父元素字体大小(如1.2em
)rem
:相对于根元素(<html>
)字体大小(响应式设计常用)%
:百分比(如width: 50%
)
- 案例:响应式字体
html { font-size: 16px; } /* 根字体大小 */ body { font-size: 0.875rem; } /* 14px */
3.1.3 关键字
- 方向:
left
、right
、top
、bottom
- 对齐方式:
center
、justify
(两端对齐)、baseline
(基线对齐) - 显示方式:
block
(块级元素)、inline
(行内元素)、none
(隐藏) - 案例:水平居中元素
.container {margin: 0 auto; /* 上下0,左右自动居中 */width: 960px; }
3.2 函数表达式
3.2.1 计算函数calc()
- 作用:动态计算长度(支持
+
、-
、*
、/
) - 案例:自适应布局
.sidebar {width: calc(20% - 20px); /* 20%宽度减去20px边距 */ }
3.2.2 自定义变量var()
(CSS3新特性)
- 作用:定义可复用的变量(需配合
--变量名
声明) - 案例:主题色管理
:root {--primary-color: #4a90e2; } .button {background-color: var(--primary-color); }
四、声明规则:层叠性、优先级与简写
4.1 层叠性:冲突时的样式应用规则
- 来源优先级:浏览器默认样式 < 用户样式 < 开发者样式
- 选择器权重(从高到低):
- ID选择器(100分)
- 类选择器/属性选择器/伪类(10分)
- 标签选择器/伪元素(1分)
- 通配符
*
(0分)
- 案例:强制覆盖样式(!important)
.special {color: red !important; /* 最高优先级,慎用 */ }
4.2 简写属性:简化代码
- 字体简写:
font: [font-style] [font-weight] [font-size]/[line-height] [font-family]
/* 完整写法 */ p {font-style: italic;font-weight: bold;font-size: 16px;line-height: 1.5;font-family: 'Times New Roman', serif; } /* 简写 */ p {font: italic bold 16px/1.5 'Times New Roman', serif; }
- 背景简写:
background: [color] [image] [position] [size] [repeat] [attachment]
五、代码组织与最佳实践
5.1 注释规范
- 模块注释(/* 模块名称 */)
- 关键代码注释(单行或多行)
/* 导航栏样式 */ #nav {background-color: #333; /* 深色背景 */color: white;/* 弹性布局实现水平排列 */display: flex;justify-content: space-around; }
5.2 导入方式对比
方式 | 语法 | 加载时机 | 兼容性 |
---|---|---|---|
<link> | <link rel="stylesheet" href="style.css"> | 页面加载时并行加载 | 全兼容 |
@import | @import url(style.css); | 等待页面加载后加载 | IE5+(不推荐) |
推荐:使用<link>
标签,性能更优且支持媒体查询:
<link rel="stylesheet" href="desktop.css" media="(min-width: 768px)">
5.3 代码格式化
- 缩进:2个空格(避免制表符)
- 大括号:选择器后换行,声明块每行一个属性
- 空格:属性名与冒号后留一个空格(如
color: red
)
六、常见问题与避坑指南
6.1 样式不生效?
- 检查选择器是否正确匹配元素(浏览器控制台调试)
- 确认选择器权重是否被更高优先级覆盖(使用
!important
临时测试) - 检查属性是否拼写错误(CSS属性严格区分大小写吗?不区分,但建议统一小写)
6.2 单位使用误区
- 百分比相对于父元素计算(如
width: 50%
是父元素宽度的50%) rem
依赖根字体大小,需在<html>
标签设置基准值- 避免为
font-size
使用px
以外的单位(可能导致字体模糊)
6.3 伪类顺序问题
- 链接伪类必须遵循
a:link -> a:visited -> a:hover -> a:active
顺序(LVHA规则)/* 正确顺序 */ a:link, a:visited { color: #333; } a:hover { color: #4a90e2; } a:active { color: #2196f3; }
掌握CSS基础语法核心在于:
- 选择器精准性:根据场景选择合适的选择器(类选择器优先于ID选择器)
- 声明简洁性:善用简写属性和自定义变量(CSS3
var()
)- 规则层叠性:理解权重计算,合理使用
!important
- 代码规范性:统一格式、添加注释、使用外部样式表
若这篇内容帮到你,动动手指支持下!关注不迷路,干货持续输出!
ヾ(´∀ ˋ)ノヾ(´∀ ˋ)ノヾ(´∀ ˋ)ノヾ(´∀ ˋ)ノヾ(´∀ ˋ)ノ