1. CSS 基础语法
核心知识点
- 选择器 + 声明块结构
- 三种引入方式:行内/内部/外部
- 常用选择器类型:标签/类/ID/通配符
<!-- 行内样式 -->
<p style="color: red;">红色文字</p><!-- 内部样式 -->
<style>/* 标签选择器 */p { line-height: 1.5; }/* 类选择器 */.ac { color: blue; }/* ID选择器 */#main-title { font-size: 24px; }
</style><!-- 外部样式 -->
<link rel="stylesheet" href="ac.css">
2. 盒子模型
盒子结构
- Content → Padding → Border → Margin
- 总宽度 = width + padding2 + border2
.box {width: 200px;padding: 20px;border: 5px solid #333;margin: 30px;background-color: #f0f0f0;
}/* 怪异盒子模型 */
.box-border-box {box-sizing: border-box; /* width包含padding和border */
}
3. 浮动与定位
浮动布局
.left-col {float: left;width: 30%;
}.right-col {float: right;width: 65%;
}/* 清除浮动 */
.clearfix::after {content: '';display: block;clear: both;
}
定位方式
.relative-box {position: relative;top: 20px;left: 50px;
}.absolute-box {position: absolute;right: 0;bottom: 0;
}.fixed-header {position: fixed;top: 0;width: 100%;
}
4. CSS3 新特性
常用新特性
/* 圆角与阴影 */
.rounded-box {border-radius: 15px;box-shadow: 5px 5px 15px rgba(0,0,0,0.3);
}
/*box-shadow: h-shadow v-shadow blur spread color inset; *//* 渐变背景 */
<div class="gradient-bg"> 我会偏移但保留原位置</div>
.gradient-bg {background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
}/* 过渡动画 */<button class="btn">Hover Me</button>
.btn {padding: 10px 20px;background-color: #007bff;color: white;border: none;border-radius: 5px;cursor: pointer;transition: all 0.3s ease;}
.btn:hover {transform: scale(1.1);
}
/*
all:表示所有属性(如颜色、大小、位置等)都会应用过渡效果。
0.3s:表示过渡的持续时间为 0.3 秒。
ease:表示过渡的时间曲线(缓入缓出效果)。
这段代码的意思是:当 .btn 元素的任何属性发生变化时,变化会在 0.3 秒内以平滑的方式完成。
linear(匀速变化,从头到尾速度一致。)
ease-in(慢速开始,逐渐加速)
ease-out(快速开始,逐渐减速)
ease-in-out(慢速开始和结束,中间加速):hover :表示当鼠标悬停在按钮上时,应用以下样式。
transform: scale(1.1):将元素缩放到原始大小的 1.1 倍。
scale(1.1):表示在 X 和 Y 轴上都放大 10%。
这段代码的意思是:当鼠标悬停在按钮上时,按钮会放大 1.1 倍。
*/
可选值 | 含义 |
---|---|
h-shadow | 水平阴影的位置,必须填写,可以为负值 |
v-shadow | 垂直阴影的位置,必须填写,可以为负值 |
blur | 可选,模糊距离 |
spread | 可选,阴影的外延值 |
color | 可选,阴影的颜色 |
inset | 可选,将外部阴影改为内部阴影 |
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Slide-in 示例</title><style>@keyframes slide {/*@keyframes slide:这是定义动画的关键帧规则,名为slide。*/from {transform: translateX(-100%);}/**//* from { transform: translateX(-100%); }:表示动画开始时,元素位于其原始位置的左侧100%处(即完全不可见)。*/to {transform: translateX(0);}}
/*to { transform: translateX(0); }:表示动画结束时,元素移动到其原始位置(即完全可见)。*/.slide-in {animation: slide 0.5s forwards;}
/*.slide-in:这是一个类选择器,表示应用该类的元素将执行slide动画。*/.box {width: 100px;height: 100px;background-color: lightblue;margin: 20px;}
/*
animation: slide 0.5s forwards;:
slide:指定要使用的动画名称。
0.5s:动画持续时间为0.5秒。
forwards:动画结束后,元素将保持在动画的最终状态(即transform: translateX(0))。*/</style>
</head>
<body><div class="box slide-in"></div>
</body>
</html>
5. 弹性盒子布局
Flex 容器设置
.container {display: flex;justify-content: space-between;align-items: center;flex-wrap: wrap;
}.item {flex: 1;min-width: 200px;margin: 10px;
}/* 垂直居中 */
.vertical-center {display: flex;align-items: center;height: 300px;
}
6. 媒体查询
响应式断点设置
/* 手机端 */
@media (max-width: 576px) {.container {flex-direction: column;}
}
/*
@media (max-width: 576px):表示当屏幕宽度小于或等于 576px 时,应用以下样式。
flex-direction: column;:将 .container 的布局方向改为垂直排列(默认是水平排列)。
*/
/* 平板端 */
@media (min-width: 577px) and (max-width: 992px) {.item {flex: 0 0 48%;}
}
/*
@media (min-width: 577px) and (max-width: 992px):表示当屏幕宽度在 577px 到 992px 之间时,应用以下样式。
flex: 0 0 48%;:将 .item 元素的宽度设置为 48%(即每行显示两个元素,留出 4% 的间隙)。
适用场景:在中等屏幕设备(如平板)上,调整布局以更好地利用屏幕空间。
*/
/* 打印样式 */
@media print {.no-print {display: none;}
}
/*
@media print:表示当页面被打印时,应用以下样式。
display: none;:隐藏所有带有 .no-print 类的元素。
适用场景:在打印页面时,隐藏不需要打印的内容(如导航栏、按钮等)。
*/
蓝桥杯真题技巧
- 布局题优先考虑Flex方案
- 动画题注意性能优化(使用transform)
- 响应式题目注意断点设置
- 注意浏览器兼容性前缀问题
- 复杂布局结合Grid+Flex使用
rint {
display: none;
}
}
/*
@media print:表示当页面被打印时,应用以下样式。
display: none;:隐藏所有带有 .no-print 类的元素。
适用场景:在打印页面时,隐藏不需要打印的内容(如导航栏、按钮等)。
*/
## 蓝桥杯真题技巧
1. 布局题优先考虑Flex方案
2. 动画题注意性能优化(使用transform)
3. 响应式题目注意断点设置
4. 注意浏览器兼容性前缀问题
5. 复杂布局结合Grid+Flex使用