讲师中心 微信公众号
AI工具推荐 视频效率加速

css 组合选择器如何书写_减少重复代码的方法

千杰君_6031

千杰君_6031

发布时间:2026-01-06 12:11:02

|

341人浏览过

|

来源于php中文网

原创

多个选择器共用样式时用逗号分隔,嵌套结构中用空格组合避免重复父类名,属性选择器可替代冗余class,BEM命名下组合选择器宜用于修饰符批量控制,需警惕过度嵌套。

css 组合选择器如何书写_减少重复代码的方法

多个选择器共用同一组样式时怎么写

直接用逗号分隔,而不是重复写规则块。这是最基础也最容易被忽略的减冗方式。

  • 错误写法:
    .header { color: #333; }
    .nav { color: #333; }
    .footer { color: #333; }
  • 正确写法:
    .header, .nav, .footer {
      color: #333;
    }
  • 逗号是「或」关系,不是「和」;.a, .b 匹配所有 .a 元素 或 所有 .b 元素
  • 注意空格:逗号前后可加空格提升可读性,但不能写成 .a ,.b(IE8 及更早版本在某些场景下会解析失败)

嵌套结构中避免重复写父级类名

当多个子元素都属于同一个容器,且样式只在该容器内生效时,用空格组合比重复写父类更安全、更易维护。

  • 不推荐:
    .article-title { font-size: 24px; }
    .article-content { font-size: 16px; }
    .article-footer { margin-top: 20px; }
  • 推荐:
    .article .title { font-size: 24px; }
    .article .content { font-size: 16px; }
    .article .footer { margin-top: 20px; }
  • 这样改后,.title 类即使在其他地方出现也不会被误匹配,语义和作用域更清晰
  • 如果后续要整体移动到 .post 容器下,只需改一处 .article → .post

用属性选择器代替一堆 class 名

当一组元素靠相似属性(比如 data-type、type、role)区分,而样式逻辑高度一致时,属性选择器能大幅压缩代码量。

CSS婚礼策划服务机构宣传网站模板
CSS婚礼策划服务机构宣传网站模板

CSS婚礼策划服务机构宣传网站模板是一款适合提供婚礼策划和婚庆服务机构宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载
  • 例如统一处理所有带 data-status="error" 的表单控件:
    [data-status="error"] {
      border-color: #e74c3c;
      background-color: #fdf2f2;
    }
  • 也可配合伪类:
    [type="text"]:invalid, [type="email"]:invalid {
      box-shadow: 0 0 6px rgba(231, 76, 60, 0.5);
    }
  • 注意:属性值匹配默认区分大小写,[lang="en"] 不匹配 lang="EN";如需不敏感,用 [lang="en" i]

BEM 命名 + 组合选择器的实用边界

BEM(block__element--modifier)本身已减少嵌套依赖,但组合选择器仍可用于修饰符批量控制或状态归并。

立即学习“前端免费学习笔记(深入)”;

  • 比如统一禁用所有带 --disabled 修饰符的组件:
    .btn--disabled,
    .input--disabled,
    .select--disabled {
      opacity: 0.5;
      pointer-events: none;
    }
  • 不要写成 .btn--disabled, .btn__icon--disabled —— 后者属于元素层级,语义不同,应单独处理
  • 真正要警惕的是过度组合:.page-home .section-featured .card .title 这类 4 层深度选择器,既难维护又影响性能,应优先用 BEM 单一类名替代
实际项目里,组合选择器的“省代码”效果,往往取决于你是否提前想清楚样式的作用域和复用边界。写得越细,后期改得越痛;写得太泛,又容易污染全局。关键不是少写几行,而是让每一行都明确回答:这个样式,到底该在哪生效、不该在哪生效。

热门AI工具

更多
二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1029

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3200

2023.10.25

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

6367

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2668

2023.08.10

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

4256

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

306

2025.12.06

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

40

2026.10.28

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

160

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.6万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 6.1万人学习

CSS教程
CSS教程

共754课时 | 99.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn