跳至正文
Wener Notes

CSS Selector

约 2 分钟阅读

Pseudo

  • 用户操作 -
    ,
    ,
    ,
    ,
  • 位置 -
    ,
    ,
    ,
    ,
    ,
    ,
  • 语言 -
    ,
  • 时间维度 -
    ,
    ,
    • 用于 WebVTT - 字幕
  • 资源状态 -
    ,
    • 用于媒体资源
  • 输入组件 -
    ,
    ,
    ,
    ,
    ,
    ,
    ,
    ,
  • 树结构 -
    ,
    , :nth[-last]-child, :(first|last|only)-child,:nth[-last]-of-type, :(first|last|only)-of-type
  • 选择 -
    ,
    ,
    ,
  • ShadowDOM -
    ,
  • 内容 -
    ,
definedpseudodesc
CSS 1
未访问链接
已访问链接
CSS 2
Selectors 3
当前 url 匹配目标 #ele-id
一般指 html, 自定义元素时指当前元素
()
()
()
()
选择空白节点
()
CSS 3 UI
Selectors 4
or
,有 href 元素
如果链接匹配当前页面
目前无法定义 scope, 等同
; DOM 有 scope
()
()
()
使用最高优先级
()
与 :is 相同,但无优先级,适用于写样式库
浏览器根据操作方式决定是否显示 focus
增强
()
参数与
相同
暂未实现 - 类似 parent 选择
不支持
Fullscreen API
全屏时
CSS 4 UI
css
/* 不在 nav 下的 a */
a:not(nav *) {
}
  • - 使用 id 或 name 属性
    • https://wener.me#reference
  • - 早期叫
    • 类似于缩写展开 :is(h1,h2) p -> h1 p, h2 p
    • 不能选择伪元素
  • =
    - 但不增加选择符权重
  • - Chrome 105
  • =
    • 限定选择范围 - querySelector(), querySelectorAll(), matches(), Element.closest()
    • 目前还无法创建 scope
  • container query
html
<!-- 插入一个专门用于定位的 anchor -->
<!-- 目前 name 属性已废弃 -->
<a name="my-anchor"></a>
<a id="my-anchor"></a>

FAQ

选择多个子元素

css
/* 更现代的做法 */
.article :is(h1, h2, h3) {
}

/* 以前的做法 */
.article h1,
.article h2,
.article h3 {
}

选择内容匹配

JavaScript
// jQuery
$('td:contains("Yes")')

// js console
$x("//td[text()='Yes']")

// js
document.evaluate("//td[text()='Yes']",document).iterateNext()
最近更新commit 0e1da89编辑