基本语法
1. CSS 基本结构
CSS(Cascading Style Sheets)用于设置 HTML 的样式。
CSS 的引入方式
内联样式(在 HTML 标签中直接使用
style
属性):1
<p style="color: red;">这是红色的文字。</p>
内部样式表(在 HTML 的
<style>
标签中定义):1
2
3
4
5<style>
p {
color: blue;
}
</style>外部样式表(将样式写在独立的
.css
文件中,并通过<link>
标签引用):1
<link rel="stylesheet" href="styles.css">
2. CSS 选择器
CSS 选择器用于选择需要应用样式的 HTML 元素。
常见选择器
通用选择器:选择所有元素
1
2
3
4* {
margin: 0;
padding: 0;
}标签选择器:选择某种 HTML 标签
1
2
3h1 {
color: green;
}类选择器:选择特定类的元素
1
2
3.highlight {
background-color: yellow;
}ID 选择器:选择特定 ID 的元素
1
2
3#main-title {
font-size: 24px;
}后代选择器:选择某元素内部的所有特定子元素
1
2
3div p {
color: gray;
}组合选择器:
选择多个元素:
1
2
3h1, h2, p {
font-family: Arial, sans-serif;
}子元素选择器:
1
2
3div > p {
color: red;
}相邻兄弟选择器:
1
2
3h1 + p {
font-style: italic;
}
3. 常见样式属性
文本和字体样式
1 | p { |
背景样式
1 | body { |
边框样式
1 | div { |
盒模型相关属性
1 | div { |
4. 定位与布局
定位(Position)
1 | div { |
浮动(Float)
1 | img { |
Flex 布局
1 | .container { |
Grid 布局
1 | .grid-container { |
5. 伪类与伪元素
伪类
伪类用于选择元素的特定状态。
1 | a:hover { |
伪元素
伪元素用于选择元素的一部分。
1 | p::first-line { |
6. 媒体查询
媒体查询用于响应式设计,根据屏幕大小应用不同的样式。
1 | /* 屏幕宽度小于600px时 */ |
7. 动画
过渡(Transition)
1 | button { |
动画(Animation)
1 | @keyframes slideIn { |
8. 单位
- 绝对单位:
px
(像素),cm
,mm
,in
。 - 相对单位:
em
:相对于父元素字体大小。rem
:相对于根元素字体大小。%
:相对于父元素的百分比。vw
:视口宽度的百分比。vh
:视口高度的百分比。
9. CSS 变量
CSS 支持自定义变量,增强样式的复用性。
1 | :root { |
10. 浏览器前缀
为了兼容不同浏览器,某些 CSS 属性需要添加前缀。
1 | div { |
高级特性
1. 高级选择器
属性选择器
匹配具有特定属性的元素:
1
2
3input[type="text"] {
border: 1px solid black;
}属性值以某字符串开头:
1
2
3a[href^="https"] {
color: green;
}属性值包含某字符串:
1
2
3a[href*="example"] {
color: blue;
}
伪类选择器
:nth-child
:匹配第 n 个子元素。1
2
3li:nth-child(odd) {
background-color: lightgray;
}:not
:排除某些元素。1
2
3div:not(.active) {
opacity: 0.5;
}:hover
和:focus
:交互状态。1
2
3button:hover {
background-color: lightblue;
}
2. 变量与计算
CSS 变量
CSS 变量提高样式的复用性和动态性。
1 | :root { |
calc()
函数
使用 calc()
动态计算属性值。
1 | div { |
3. Flex 布局
Flexbox 是一种用于一维布局的强大工具。
容器属性
1 | .container { |
子元素属性
1 | .item { |
4. Grid 布局
Grid 是一种用于二维布局的强大工具。
容器属性
1 | .container { |
子元素属性
1 | .item { |
5. 响应式设计
媒体查询
根据屏幕尺寸应用不同的样式。
1 | @media (max-width: 768px) { |
CSS 中的断点
常见屏幕尺寸的断点:
1 | /* 手机 */ |
6. 过渡与动画
过渡效果
使用 transition
实现元素样式的平滑过渡。
1 | button { |
动画效果
使用 @keyframes
定义动画。
1 | @keyframes slideIn { |
7. 剪裁与遮罩
剪裁(Clipping)
使用 clip-path
裁剪元素。
1 | div { |
遮罩(Masking)
通过遮罩图片控制元素的显示。
1 | div { |
8. 滤镜(Filters)
滤镜用于给元素应用视觉效果。
1 | img { |
9. 高级背景与渐变
背景渐变
1 | div { |
多背景
1 | div { |
10. 伪类与伪元素的高级用法
伪类
:nth-of-type()
:匹配特定类型的子元素。1
2
3p:nth-of-type(2) {
color: red;
}:target
:匹配当前被锚点选中的元素。1
2
3#section:target {
background-color: yellow;
}
伪元素
- 创建自定义内容:
1
2
3h1::after {
content: " 🌟";
}
11. 混合模式
使用 mix-blend-mode
和 background-blend-mode
创建混合效果。
1 | div { |
12. 滚动效果
滚动行为
1 | html { |
固定背景
1 | body { |
13. 自定义字体
使用 @font-face
导入自定义字体。
1 | @font-face { |
14. Web 支持功能
检测浏览器功能支持
1 | @supports (display: grid) { |
15. CSS Houdini
CSS Houdini 提供低级 API,让开发者扩展 CSS 的功能。
1 | CSS.registerProperty({ |