CSS 属性选择器、组合器、伪类和伪元素

属性选择器

[属性=“属性值”]

  • ~= / *= 表示包含
  • |= / ^= 表示以其开头

~=|= 需要进行完整单词的匹配

[class*='box'] {
}
/* 选择了 类中包含 ..box.. */
  • $= 表示以其结尾

组合器

  • 后代选择器 (空格)
  • 子选择器 (>)
  • 相邻兄弟选择器 (+)
    无法影响前部的兄弟元素 且必须紧邻
  • 通用兄弟选择器 (~)
    无法影响前部的兄弟元素

伪类

把伪类想象成附加的限定条件

锚点伪类条件
a:link!未访问
a:visited已访问
a:hover鼠标悬停
a:active选择 鼠标按下
常用伪类条件
:focus焦点,被选中
:hover鼠标悬停其上
子元素伪类选择器条件
:first-child是其父的首个子元素
:first-of-type是其父的首个该元素(只计算同类型)
:last-child是其父的最后一个子元素
:last-of-type是其父的最后一个该元素
-----------------------
:nth-child(n)是其父的第n个子元素 even 偶数 odd 奇数
:nth-of-type(n)是其父的第n个该元素
:nth-last-child(n)是其父的倒数第n个子元素
:nth-last-of-type(n)是其父的倒数第n个该元素
-----------------------
:only-of-type是其父下唯一该元素
:only-child是其父的唯一子元素
:not(selector)选择非 selector的元素。
:empty其不包含子元素

:has()
可以检索当前元素的 相关选择器额外条件 是否存在

:is() 伪元素在 :is() 的选择器列表中无效。
is 会计算内部最高权重

:where() 可以汇总到同一个父级的多个子
where 不计算权重

针对各种元素属性

其他伪类选择器例子例子描述
input值限度
:in-rangeinput:in-range选择具有指定范围内的值的 <input> 元素。
:out-of-rangeinput:out-of-range选择值在指定范围之外的<input>元素。
:checkedinput:checked选择每个被选中的 <input> 元素。
:validinput:valid选择所有具有有效值的 <input> 元素。
:invalidinput:invalid选择所有具有无效值的 <input> 元素。
required
:requiredinput:required选择指定了 “required” 属性的<input>元素。
:optionalinput:optional选择不带 “required” 属性的 <input> 元素。
readonly
:read-onlyinput:read-only选择指定了 “readonly” 属性的 <input> 元素。
:read-writeinput:read-write选择不带 “readonly” 属性的 <input> 元素。
:lang(language)p:lang(it)选择每个 lang 属性值以 “it” 开头的 <p>元素。
disabled
:disabledinput:disabled选择每个被禁用的<input>元素。
:enabledinput:enabled选择每个已启用的 <input> 元素。
:target#news:target是 url 哈希路径指向的目标 如http://xxx.xx#news
:root:root{}表示根元素,相较html 优先级更高

伪元素

选择器例子例子描述
::afterp::after在每个 <p> 元素之后插入内容。
::beforep::before在每个<p> 元素之前插入内容。
::first-letterp::first-letter选择每个 <p> 元素的首字母。
::first-linep::first-line选择每个 <p> 元素的首行。
::selectionp::selection选择用户选择的元素部分。
posted @ 2021-06-09 15:12  海胆Sur  阅读(15)  评论(0)    收藏  举报  来源