CSS 学习笔记 - 蓝桥杯重点整理

发布于:2025-03-23 ⋅ 阅读:(19) ⋅ 点赞:(0)

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 类的元素。
适用场景:在打印页面时,隐藏不需要打印的内容(如导航栏、按钮等)。
*/

蓝桥杯真题技巧

  1. 布局题优先考虑Flex方案
  2. 动画题注意性能优化(使用transform)
  3. 响应式题目注意断点设置
  4. 注意浏览器兼容性前缀问题
  5. 复杂布局结合Grid+Flex使用

rint {
display: none;
}
}
/*
@media print:表示当页面被打印时,应用以下样式。
display: none;:隐藏所有带有 .no-print 类的元素。
适用场景:在打印页面时,隐藏不需要打印的内容(如导航栏、按钮等)。
*/


## 蓝桥杯真题技巧
1. 布局题优先考虑Flex方案
2. 动画题注意性能优化(使用transform)
3. 响应式题目注意断点设置
4. 注意浏览器兼容性前缀问题
5. 复杂布局结合Grid+Flex使用