常见 CSS 选择器、优先级计算及可继承属性介绍

2025/3/9
本文介绍了常见的 CSS 选择器,如元素选择器、类选择器等,讲解了 CSS 选择器优先级的计算方式,还列举了可继承的 CSS 属性,帮助读者编写更高效、可维护的 CSS 代码。
CSS 选择器示例代码展示图,优先级计算权重系统示意图,可继承属性分类展示图

CSS 选择器是用于选择 HTML 元素并应用样式规则的工具。以下是常见的 CSS 选择器及其优先级计算方式,以及可继承的 CSS 属性。

常见的 CSS 选择器

  1. 元素选择器:选择特定类型的 HTML 元素。

    p { color: red; }
    
  2. 类选择器:选择具有特定类名的元素。

    .my-class { color: blue; }
    
  3. ID 选择器:选择具有特定 ID 的元素。

    #my-id { color: green; }
    
  4. 属性选择器:选择具有特定属性或属性值的元素。

    [type="text"] { color: purple; }
    
  5. 伪类选择器:选择元素的特定状态。

    a:hover { color: orange; }
    
  6. 伪元素选择器:选择元素的特定部分。

    p::first-line { color: pink; }
    
  7. 后代选择器:选择某个元素的后代元素。

    div p { color: brown; }
    
  8. 子选择器:选择某个元素的直接子元素。

    div > p { color: yellow; }
    
  9. 相邻兄弟选择器:选择紧接在另一个元素后的元素。

    h1 + p { color: gray; }
    
  10. 通用选择器:选择所有元素。

    * { margin: 0; }
    

优先级计算

CSS 选择器的优先级是通过一个权重系统来计算的,通常表示为 (a, b, c, d),其中:

  • a:内联样式(style 属性)的权重。
  • b:ID 选择器的数量。
  • c:类选择器、属性选择器和伪类的数量。
  • d:元素选择器和伪元素的数量。

优先级从高到低依次为:

  1. 内联样式style 属性):(1, 0, 0, 0)
  2. ID 选择器(0, 1, 0, 0)
  3. 类选择器、属性选择器、伪类(0, 0, 1, 0)
  4. 元素选择器、伪元素(0, 0, 0, 1)

优先级比较时,从左到右依次比较 abcd 的值,值大的优先级高。如果值相同,则后定义的样式会覆盖先定义的样式。

可继承的 CSS 属性

并非所有 CSS 属性都可以继承,以下是一些常见的可继承属性:

  • 文本相关属性

    • color
    • font-family
    • font-size
    • font-style
    • font-weight
    • line-height
    • text-align
    • text-indent
    • text-transform
    • letter-spacing
    • word-spacing
  • 列表相关属性

    • list-style-type
    • list-style-position
    • list-style-image
  • 表格相关属性

    • border-collapse
    • border-spacing
  • 其他属性

    • visibility
    • cursor

总结

  • CSS 选择器:包括元素选择器、类选择器、ID 选择器、属性选择器、伪类选择器、伪元素选择器、后代选择器、子选择器、相邻兄弟选择器和通用选择器。
  • 优先级计算:通过 (a, b, c, d) 权重系统计算,内联样式优先级最高,ID 选择器次之,类选择器、属性选择器和伪类再次之,元素选择器和伪元素优先级最低。
  • 可继承属性:主要包括文本、列表、表格相关属性以及其他一些属性。

理解这些概念有助于编写更高效、可维护的 CSS 代码。

标签:CSS面试题
上次更新:

相关文章

Node-Cache 完全指南 | Node.js 内存缓存模块使用教程

本文详细介绍了 Node-Cache 模块,这是一个简单高效的 Node.js 内存缓存解决方案,包括安装方法、基本使用、主要功能、高级特性、配置选项以及实际应用场景。

·前端开发

npx完全指南:前端开发必备工具详解 | 20年架构师深度解析

本文由20年前端架构师深入解析npx工具,涵盖其核心功能、优势、高级用法、最佳实践及与npm/yarn的区别比较,帮助开发者掌握这一现代前端开发利器。

·前端开发

Astro 静态站点生成器:构建高性能网站的最佳选择

Astro 是一个专注于构建快速、轻量级网站的静态站点生成器,支持多种前端框架,采用岛屿架构减少 JavaScript 加载,提升性能。

·前端开发

Weex 跨平台移动开发框架:核心特性与使用指南

Weex 是由阿里巴巴开源的跨平台移动开发框架,支持使用 Vue.js 或 Rax 构建高性能的 iOS、Android 和 Web 应用。本文详细解析了 Weex 的核心特性、架构、工作流程、组件和模块、开发工具、优缺点、应用场景及未来发展。

·前端开发

ECharts 与 DataV 数据可视化工具对比分析 | 选择指南

本文详细对比了 ECharts 和 DataV 两个常用的数据可视化工具,包括它们的设计目标、优缺点、使用场景和技术栈,帮助读者根据具体需求选择合适的工具。

·前端开发

前端部署后通知用户刷新页面的常见方案 | 单页应用更新提示

本文介绍了在前端部署后通知用户刷新页面的几种常见方案,包括WebSocket实时通知、轮询检查版本、Service Worker版本控制、版本号对比、自动刷新、使用框架内置功能以及第三方库。每种方案的优缺点和示例代码均有详细说明。

·前端开发

file-saver:前端文件下载的 JavaScript 库使用指南

file-saver 是一个用于在浏览器端保存文件的 JavaScript 库,支持生成和下载多种文件格式,如文本、JSON、CSV、图片、PDF 等。本文详细介绍其安装、基本用法、兼容性及与其他工具(如 jszip)的结合使用。

·前端开发

MSW(Mock Service Worker):API 模拟工具的核心优势与使用指南

MSW(Mock Service Worker)是一个用于浏览器和 Node.js 的 API 模拟工具,通过 Service Worker 拦截网络请求,支持 REST 和 GraphQL,适用于开发、测试和调试场景。本文详细介绍 MSW 的核心优势、快速上手步骤、高级用法、适用场景及与其他 Mock 工具的对比。

·前端开发

Preact:轻量级 JavaScript 库,React 的高性能替代方案

Preact 是一个轻量级的 JavaScript 库,提供与 React 相似的 API 和开发体验,但体积更小(约 3-4KB,gzip 后)。它专注于高性能和低资源消耗,特别适合对性能敏感或需要快速加载的 Web 应用。

·前端开发

WASI标准与WebAssembly跨平台生态的未来趋势分析 | 技术深度解析

本文深入探讨了WASI(WebAssembly System Interface)标准的背景、意义及其对WebAssembly跨平台生态的影响。文章分析了WASI在服务器端应用、边缘计算和IoT设备中的应用,以及技术栈和工具链的演进,最后展望了WASI对未来前端开发的影响和最佳实践建议。

·前端开发