当前位置: 首页 > news >正文

前端CSS样式详细笔记

文章目录

    • 一、CSS基础概念
      • 1. 什么是CSS
      • 2. CSS三大核心特性
      • 3. CSS基本语法结构
    • 二、CSS引入方式
    • 三、CSS选择器详解
      • 1. 基础选择器
      • 2. 组合选择器
      • 3. 属性选择器
      • 4. 伪类与伪元素
    • 四、选择器优先级规则
      • 1. 优先级计算方法
      • 2. 优先级实战示例
      • 3. 优先级注意事项
    • 五、CSS盒模型
      • 1. 盒模型组成
      • 2. 盒模型计算
      • 3. 外边距折叠
    • 六、CSS布局技术
      • 1. 浮动布局
      • 2. 定位布局
      • 3. Flexbox布局
      • 4. Grid布局
    • 七、CSS样式属性
      • 1. 文本样式
      • 2. 盒子样式
      • 3. 背景样式
    • 八、CSS高级特性
      • 1. 媒体查询(响应式设计)
      • 2. CSS动画与过渡
      • 3. CSS变量
    • 九、CSS最佳实践
      • 1. 代码规范
      • 2. 组织CSS技巧
      • 3. 调试CSS问题
    • 十、学习建议

一、CSS基础概念

1. 什么是CSS

  • CSS(Cascading Style Sheets,层叠样式表)是一种用于描述HTML或XML文档外观的样式表语言
  • 核心作用:控制网页元素的布局、颜色、字体、间距等视觉表现,实现"内容与样式分离"

2. CSS三大核心特性

  • 层叠性:多个样式规则可以叠加应用,根据优先级决定最终效果
  • 继承性:子元素可以继承父元素的某些样式(如字体、颜色等)
  • 优先级:当样式冲突时,根据选择器权重决定应用哪个样式

3. CSS基本语法结构

/* 选择器 { 声明块 } */h1{color:#333;/* 属性: 值; */font-size:24px;/* 每个声明以分号结尾 */}
  • 选择器:指定应用样式的HTML元素(如h1.class#id
  • 声明块:包含在大括号{}内的样式规则
  • 声明:由属性和值组成的键值对,格式为property: value;

二、CSS引入方式

引入方式语法示例优点缺点适用场景
行内样式<div style="color: red;">优先级最高,针对性强无法复用,耦合度高临时调整单个元素
内部样式表<style>div { color: red; }</style>与HTML同文件,便于调试文件臃肿,不利于复用小型页面或临时测试
外部样式表<link rel="stylesheet" href="style.css">样式与结构分离,复用性强需额外加载文件项目开发首选
@import导入@import url('another.css');可组织样式文件影响性能,不推荐使用特定场景

优先级规则:行内样式 > 内部样式表 = 外部样式表(后定义的覆盖先定义的)

三、CSS选择器详解

1. 基础选择器

  • 元素选择器p { color: #333; }- 选择所有<p>元素,优先级最低(1分)
  • 类选择器.text-red { color: red; }- 选择所有class="text-red"的元素,优先级10分
  • ID选择器#header { background: #f5f5f5; }- 选择唯一id="header"的元素,优先级100分
  • 通配选择器* { margin: 0; padding: 0; }- 选择所有元素,优先级最低

2. 组合选择器

  • 后代选择器div p { line-height: 1.5; }- 选择div内所有p元素(空格分隔)
  • 子元素选择器ul > li { list-style: none; }- 仅选择直接子元素(>分隔)
  • 相邻兄弟选择器h1 + p { margin-top: 0; }- 选择紧接在h1后的p元素(+分隔)
  • 通用兄弟选择器h1 ~ p { color: gray; }- 选择h1之后的所有p元素(~分隔)
  • 并集选择器h1, h2, .heading { font-family: Arial; }- 选择多个元素(,分隔)

3. 属性选择器

  • 存在属性[disabled] { opacity: 0.5; }
  • 精确匹配[type="text"] { border: 1px solid #ccc; }
  • 包含特定值[class~="active"] { background: #007bff; }
  • 属性值开头匹配[href^="https"] { color: green; }
  • 属性值结尾匹配[src$=".jpg"] { border-radius: 4px; }

4. 伪类与伪元素

  • 伪类:匹配元素状态(以:开头)
    • a:hover { color: red; }- 鼠标悬停状态
    • li:nth-child(odd) { background: #f9f9f9; }- 选择奇数子元素
    • input:focus { outline: 2px solid blue; }- 获得焦点状态
  • 伪元素:创建虚拟元素(以::开头)
    • .text::before { content: "★"; }- 在元素前添加内容
    • .text::after { content: "★"; }- 在元素后添加内容

四、选择器优先级规则

1. 优先级计算方法

  • 优先级从低到高:元素选择器(个) < 类/伪类/属性选择器(十) < ID选择器(百) < 行内样式(千) <!important(最高)

  • 计算方式:按"百、十、个"计数(如#main .container p= 1(ID) + 1(类) + 1(元素) = 111)

  • 权重相同:当两个选择器的权重完全相同时,在 CSS 文件中后出现(或后加载)的那条规则会覆盖先出现的规则。

    等级包含的选择器类型分值 (权重)备注
    A (百位)ID 选择器(#id)100权重极高,通常不建议堆叠
    B (十位)类选择器(.class)、属性选择器([type="text"])、伪类(:hover)10属性和类是平级的
    C (个位)标签选择器(div,p)、伪元素(::before)1权重最低

2. 优先级实战示例

.text p{color:red;}/* 1(类)+1(元素) = 11 */div p{color:blue;}/* 2(元素) = 2 */#main p{color:green;}/* 1(ID)+1(元素) = 101 */
  • 最终效果:.text p文字红色(优先级11 > 2)
  • 同优先级规则:后声明的样式覆盖先声明的

3. 优先级注意事项

  • 避免滥用!important:会破坏样式层级,难以维护
  • ID选择器慎用:优先级过高,后期难以覆盖,且ID全局唯一无法复用
  • 行内样式尽量少用:不利于样式复用和维护
  • 样式合并:CSS 的样式合并是指浏览器将多条匹配规则中不冲突的属性进行叠加互补,而对冲突的属性则依据权重和源码顺序进行覆盖,最终计算出元素唯一应用样式的过程。CSS 的处理逻辑其实是“属性级”的,而不是“规则级”的。

五、CSS盒模型

1. 盒模型组成

  • content:内容区域(文本、图片等)
  • padding:内边距(内容与边框之间的空间)
  • border:边框(围绕内容和内边距的边框)
  • margin:外边距(边框与相邻元素之间的空间)

2. 盒模型计算

  • 标准盒模型:元素总宽度 = 内容宽度 + padding + border + margin
  • 怪异盒模型:元素总宽度 = 内容宽度(包含padding和border)
  • 设置怪异盒模型* { box-sizing: border-box; }

3. 外边距折叠

  • 当两个垂直外边距相遇时,它们将合并为一个外边距,合并后的外边距等于两个外边距中较大的那个
  • 解决方法:使用overflow: auto创建BFC(块格式化上下文)

六、CSS布局技术

1. 浮动布局

  • 基本原理float: left/right使元素脱离文档流,向左或向右浮动
  • 清除浮动:使用clear: both或创建BFC(如overflow: auto
  • 应用场景:多列布局、文字环绕图片

2. 定位布局

  • relative:相对定位,相对于自身原位置移动
  • absolute:绝对定位,相对于最近的定位祖先元素移动
  • fixed:固定定位,相对于视口定位,滚动页面时位置不变
  • static:默认定位,遵循正常文档流

3. Flexbox布局

  • 容器设置display: flex,可设置justify-contentalign-items等属性
  • 项目设置:可设置flex-growflex-shrinkflex-basis等属性
  • 优势:灵活控制子元素间距,实现复杂布局

4. Grid布局

  • 容器设置display: grid,可设置grid-template-columnsgrid-template-rows
  • 项目设置:可设置grid-columngrid-row等属性
  • 优势:二维布局,适合复杂网格结构

七、CSS样式属性

1. 文本样式

  • 字体大小font-size: 16px;(默认单位px)
  • 字体颜色color: #333;color: red;
  • 字体粗细font-weight: bold;font-weight: 700;
  • 字体类型font-family: "Arial", sans-serif;
  • 文本对齐text-align: center;(左、右、居中)

2. 盒子样式

  • 宽高设置width: 300px; height: 200px;
  • 边框样式border: 1px solid #ddd;
  • 圆角设置border-radius: 8px;
  • 阴影效果box-shadow: 0 2px 4px rgba(0,0,0,0.1);

3. 背景样式

  • 背景颜色background-color: #fff;
  • 背景图片background-image: url('bg.jpg');
  • 背景重复background-repeat: no-repeat;
  • 背景位置background-position: center;

八、CSS高级特性

1. 媒体查询(响应式设计)

/* 手机设备 */@media(max-width:767px){.container{width:100%;}}/* 平板设备 */@media(min-width:768px)and(max-width:1023px){.container{width:750px;}}/* 桌面设备 */@media(min-width:1024px){.container{width:1200px;}}
  • 作用:根据不同设备尺寸应用不同样式,实现响应式网页设计

2. CSS动画与过渡

  • 过渡效果transition: color 0.3s ease;
  • 关键帧动画
@keyframesslide{0%{transform:translateX(0);}100%{transform:translateX(100px);}}.element{animation:slide 2s infinite;}
  • 应用场景:按钮悬停效果、页面元素动态变化

3. CSS变量

:root{--primary-color:#007bff;--spacing:16px;}.button{background:var(--primary-color);padding:var(--spacing);}
  • 优势:便于维护,实现样式统一

九、CSS最佳实践

1. 代码规范

  • 展开式写法:比紧凑式更易读
/* 推荐 */.container{width:1200px;margin:0 auto;}/* 不推荐 */.container{width:1200px;margin:0 auto;}
  • 统一小写font-size而非FontSize
  • 空格规范:冒号后加空格,选择器与{之间加空格

2. 组织CSS技巧

  • 模块化设计:将样式按功能拆分(如_header.css、_footer.css)
  • OOCSS(面向对象CSS):抽离通用样式为基类,特殊样式为子类
  • 使用注释/* 导航栏样式 */提高代码可读性

3. 调试CSS问题

  • 浏览器开发者工具:检查元素、查看样式计算
  • 样式重置* { margin: 0; padding: 0; }消除浏览器默认样式差异
  • 优先级问题排查:检查选择器优先级,避免过度使用!important

十、学习建议

  1. 从基础开始:先掌握选择器、盒模型、基本属性等核心概念
  2. 多实践:通过实际项目巩固知识,尝试实现常见布局
  3. 善用开发者工具:Chrome DevTools等工具能帮助你快速调试和理解CSS
  4. 关注最新规范:CSS3新增了许多强大特性,如Flexbox、Grid、动画等
  5. 学习优秀代码:分析GitHub上高质量项目的CSS实现方式

CSS是Web前端开发的基石,掌握好CSS能让你的网页更加美观、结构清晰、用户体验更佳。随着技术发展,CSS的功能越来越强大,值得深入学习和探索。

http://www.jsqmd.com/news/575634/

相关文章:

  • FanControl终极指南:让你的电脑风扇安静又高效
  • 关于ClaudeCode核心设计
  • 从硬币到自动驾驶:MATLAB图像分割的工业级应用避坑指南
  • 2026三坐标对外检测实验室推荐:5大核心标准选对“质量管家”,长三角企业首选这一家 - 博客湾
  • 瑞芯微RK3588安卓系统分区烧录实战:从fastboot到bootloader的进阶指南
  • 数据库RAC开启归档SOP方案
  • 【题解】P5206 [WC2019] 数树
  • 数字孪生赋能水电站:三维可视化与智能运维实践
  • 抛光不锈钢螺旋桨OEM选购指南:如何找到靠谱的定制合作伙伴 - 博客湾
  • Multisim新手必看:从555定时器到74LS系列,这20个经典电路仿真案例够你练手了
  • KART-RERANK快速入门:10分钟完成本地部署与API测试
  • 低成本自动化方案:OpenClaw+自部署千问3.5-27B替代ChatGPT API调用
  • Agent架构:规划、记忆、工具、反思
  • JY61P陀螺仪数据解析实战:从原始字节到三维角度的STM32处理全流程
  • NVIDIA Profile Inspector深度解析:显卡性能调优实战技巧
  • Qwen3.5-2B多场景案例:法律文书图识别+法条关联+类案推荐三合一系统
  • Windows DLL注入终极指南:Xenos工具完全解析与实战技巧
  • 大数据在电力行业的应用案例解析-【电力技术】(五)大数据在电力双碳管控中的深度应用(含碳核算代码)
  • 【物联网通信与网络技术深度解析】从TCP/IP到5G:构建万物互联的核心架构
  • 【深度学习】BatchNorm与LayerNorm:从原理到实战,如何为你的模型选择正确的归一化层?
  • Graphormer高性能部署:多进程预测服务提升吞吐量至127 req/s实测
  • DOCX.js企业级前端Word文档生成架构深度解析
  • 企业安全生产知识竞赛活动指南:策划、实施与高效工具
  • Qwen3.5-2B保姆级教程:20亿参数模型端侧部署与图文对话实操
  • GHelper完全指南:轻量高效管理华硕笔记本的创新方法
  • 用PyTorch复现f-AnoGAN:从MNIST手写数字到工业缺陷检测的保姆级代码拆解
  • 架构革命:如何通过REPENTOGON实现以撒的结合脚本扩展器技术突破
  • Windows安卓应用安装终极指南:告别模拟器,三步完成APK直接运行
  • Qwen-Image镜像体验:无需配置环境,RTX4090D上直接运行视觉大模型
  • 条码字体革命:如何在任何软件中零成本生成专业条码