CSS选择符

83 阅读2分钟

CSS选择符

CSS(层叠样式表)选择符用于定位 HTML 文档中的元素并为其应用样式。以下是常见的 CSS 选择符分类及示例:

1. 基础选择器

元素选择器

  • 通过 HTML 元素名称选择。
    p { color: red; } /* 所有 <p> 元素 */
    

类选择器(Class Selector)

  • 通过元素的 class 属性选择,以 . 开头。
    .highlight { background-color: yellow; } /* 所有 class="highlight" 的元素 */
    

ID 选择器

  • 通过元素的 id 属性选择,以 # 开头(一个页面中 ID 唯一)。
    #header { font-size: 24px; } /* id="header" 的元素 */
    

通配符选择器

  • 选择所有元素。
    * { margin: 0; padding: 0; } /* 所有元素 */
    

2. 组合选择器

后代选择器

  • 选择某元素内的所有后代元素。
    div p { color: blue; } /* div 内的所有 <p> 元素 */
    

子元素选择器(Child Selector)

  • 选择直接子元素。
    ul > li { list-style: none; } /* ul 的直接子元素 <li> */
    

相邻兄弟选择器(Adjacent Sibling)

  • 选择紧随其后的同级元素。
    h1 + p { font-weight: bold; } /* 紧跟在 h1 后的第一个 <p> */
    

通用兄弟选择器(General Sibling)

  • 选择所有后续同级元素。
    h2 ~ p { color: green; } /* h2 之后的所有同级 <p> */
    

3. 属性选择器

  • 根据元素的属性及值选择元素。
    [type="text"] { border: 1px solid #ccc; } /* 所有 type="text" 的元素 */
    a[href^="https"] { color: purple; } /* href 以 https 开头的 <a> */
    img[alt~="logo"] { width: 100px; } /* alt 属性包含 "logo" 的 <img> */
    

4. 伪类选择器(Pseudo-classes)

  • 根据元素的状态或位置选择。
    a:hover { text-decoration: underline; } /* 鼠标悬停时的 <a> */
    li:nth-child(2n) { background: #f0f0f0; } /* 偶数位置的 <li> */
    input:focus { outline: 2px solid blue; } /* 获取焦点的输入框 */
    

5. 伪元素选择器(Pseudo-elements)

  • 选择元素的特定部分。
    p::first-line { font-weight: bold; } /* 段落的第一行 */
    .quote::before { content: "“"; } /* 在元素前插入内容 */
    .highlight::selection { background: pink; } /* 被选中的文本 */
    

6. 分组选择器

  • 同时选择多个元素。
    h1, h2, h3 { font-family: Arial; } /* 同时设置 h1、h2、h3 */
    

优先级规则

选择器的优先级由权重决定,权重从高到低依次为:

  1. !important
  2. 内联样式(如 style="..."
  3. ID 选择器(#id
  4. 类、属性、伪类选择器(.class, [type], :hover
  5. 元素、伪元素选择器(div, ::before
  6. 通配符、继承的样式(*

示例场景

/* 导航栏高亮当前页 */
.nav a.active { color: red; }

/* 表格隔行变色 */
tr:nth-child(odd) { background: #f8f8f8; }

/* 必填输入框标记 */
input[required]::after { content: "*"; color: red; }

理解 CSS 选择符是编写高效、可维护样式表的关键!

更多vue相关插件及后台管理模板可访问vue admin reference,代码详情请访问github