CSS 基础概念

CSS 基础概念

CSS(层叠样式表)用于控制网页的视觉表现,包括布局、颜色、字体等。通过选择器和属性组合,将样式应用到 HTML 元素。

css 复制代码
/* 示例:修改段落文本颜色和字体 */
p {
  color: blue;
  font-family: Arial;
}

常用选择器

  • 元素选择器 :直接针对 HTML 标签(如 pdiv)。
  • 类选择器 :通过 .classname 定义,可重复使用。
  • ID 选择器 :通过 #idname 定义,具有唯一性。
  • 伪类选择器 :如 :hover:active 定义交互状态。
css 复制代码
.button {
  background-color: #4CAF50;
}
#header {
  font-size: 24px;
}
a:hover {
  text-decoration: underline;
}

盒模型

每个 HTML 元素被视为一个盒子,包含 contentpaddingbordermargin

  • 标准盒模型widthheight 仅指内容区域。
  • 替代盒模型box-sizing: border-box 包含边框和内边距。
css 复制代码
.box {
  width: 200px;
  padding: 20px;
  border: 5px solid black;
  margin: 10px;
  box-sizing: border-box; /* 启用替代盒模型 */
}

布局技术

  • Flexbox:一维布局,适合动态排列项目。
  • Grid:二维布局,支持复杂网格结构。
  • 浮动(Float):传统布局方式,现多用于图文环绕。
css 复制代码
/* Flexbox 示例 */
.container {
  display: flex;
  justify-content: space-between;
}

/* Grid 示例 */
.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

响应式设计

使用媒体查询(@media)适配不同设备屏幕尺寸。

css 复制代码
@media (max-width: 600px) {
  .container {
    flex-direction: column;
  }
}

动画与过渡

通过 transition@keyframes 实现动态效果。

css 复制代码
/* 过渡效果 */
.button {
  transition: background-color 0.3s ease;
}
.button:hover {
  background-color: red;
}

/* 关键帧动画 */
@keyframes slide {
  from { transform: translateX(0); }
  to { transform: translateX(100px); }
}
.slide-element {
  animation: slide 2s infinite;
}

预处理器(如 Sass)

扩展 CSS 功能,支持变量、嵌套和混合。

scss 复制代码
$primary-color: #333;
.button {
  background-color: $primary-color;
  &:hover {
    opacity: 0.8;
  }
}

性能优化

  • 减少选择器复杂性。
  • 使用 will-change 提示浏览器优化渲染。
  • 压缩 CSS 文件以减少加载时间。
css 复制代码
.element {
  will-change: transform; /* 提前告知浏览器变化属性 */
}
相关推荐
NEXT068 分钟前
AI 应用工程化实战:使用 LangChain.js 编排 DeepSeek 复杂工作流
前端·javascript·langchain
念风零壹16 分钟前
AI 时代的前端技术:从系统编程到 JavaScript/TypeScript
前端·ai
光影少年1 小时前
react的hooks防抖和节流是怎样做的
前端·javascript·react.js
小毛驴8501 小时前
Vue 路由示例
前端·javascript·vue.js
发现一只大呆瓜1 小时前
AI流式交互:SSE与WebSocket技术选型
前端·javascript·面试
m0_719084112 小时前
React笔记张天禹
前端·笔记·react.js
Ziky学习记录3 小时前
从零到实战:React Router 学习与总结
前端·学习·react.js
wuhen_n3 小时前
JavaScript链表与双向链表实现:理解数组与链表的差异
前端·javascript
wuhen_n3 小时前
JavaScript数据结构深度解析:栈、队列与树的实现与应用
前端·javascript
狗哥哥3 小时前
微前端路由设计方案 & 子应用管理保活
前端·架构