「CSS」CSS那些事


各种选择器

指定特定元素对其进行样式加工;

选择器 说明 版本
基础选择器
tag 类型选择器 1
#id id 选择器 1
.class 类选择器 1
* 通配选择器 2
层级选择器
elemA elemB 后代元素 1
elemA>elemB 子代元素 2
elemA+elemB 相邻同胞 2
elemA~elemB 元素后面的同胞元素 3
集合选择器
elemA, elemB 并集 1
elemA.class/elemA#id 交集 1
条件选择器
:lang 指定标记语言 2
:dir() 指定编写方向,文字书写方向为 ltr 或 rtl 4
:has 包含指定元素,如: a:has(> img) (只会匹配直接包含 <img> 子元素的 <a> 元素) 4
:is 指定条件,如::is(section, article, aside, nav) h1 4
:not 非指定条件,如:p:not(.fancy),类名不是 .fancy

元素

4
:where 指定条件,优先级总是为 0 4
:scope css 伪类,作为选择器要匹配的参考点的元素 4
:any-link 选择器代表一个有链接锚点的元素,匹配每一个有 href 属性的 元素 4
:local-link 所有包含href
且属于绝对地址的链接元素 4
结构选择器
:first-child 元素中为首的元素 2
:last-child 元素中为尾的元素 3
:root 文档根元素 3
:empty 无子元素的元素 3
:nth-child(n) 元素中指定顺序索引的元素 3
:nth-last-child(n) 元素中指定逆序索引的元素 3
:only-child 父元素仅有该元素的元素 3
:nth-of-type(n) 标签中指定顺序索引的标签 3
:nth-last-of-type(n) 标签中指定逆序索引的标签 3
:first-of-type 标签中为首的标签 3
:last-of-type 标签中为尾标签 3
:only-of-type 父元素仅有该标签的标签 3
状态选择器
:active 鼠标激活的元素 1
:hover 鼠标悬浮的元素 1
:link 未访问的链接元素 1
:visited 已访问的链接元素 1
:target 当前锚点的元素 3
:focus 输入聚焦的表单元素 3
:required 输入必填的表单元素 3
:valid 输入合法 3
:invalid 输入不合法 3
:in-range 输入范围内 3
:out-of-range 输入范围外 3
:checked 选项选中 3
:optional 选项可选 3
:enabled 事件启用 3
:disabled 事件禁用 3
:read-only 只读 3
:read-write 可读可写 3
:target-within 内部锚点元素处于激活状态的元素 4
:focus-within 内部表单元素处于聚焦状态的元素 4
:focus-visible 输入聚焦的表单元素 4
:blank 输入为空 4
:user-invalid 输入合法 4
:indeterminate 选项未定 4
:placeholder-shown 占位显示 4
:current() 浏览中 4
:past() 已浏览 4
:future() 未浏览 4
:playing 开始播放 4
:paused 暂定播放 4
属性选择器
[attr] 指定属性的元素 2
[attr=val] 属性等于指定值的元素 2
[attr*=val] 属性包含指定值的元素 2
[attr^=val] 属性以指定值开头的元素 2
[attr$=val] 属性以指定值结尾的元素 2
[attr~=val] 属性包含指定值(完整单词)的元素
(不推荐) 2
[att r=val] 属性以指定值(完整单词)开头的元素
(不推荐) 2
伪元素
::first-letter 元素的首字母,可实现首字母下沉等 1
::first-line 元素的首行 1
::before 在元素前插入的内容 2
::after 在元素后插入的内容 2
::selection 鼠标选中的元素 3
::backdrop 全屏模式的元素 4
::placeholder 表单元素的占位 4

有时候可以通过选择器在 css 层面就可以解决一下逻辑样式问题。

自定义属性—

带有前缀—的属性名,比如—example—name,表示的是带有值的自定义属性,其可以通过 var 函数在全文档范围内复用的。

#

用法:

:root {
  --first-color: #488cff;
  --second-color: #ffff8c;
}

#firstParagraph {
  background-color: var(--first-color);
  color: var(--second-color);
}

实践:

在需要多个同级子元素且不同样式时可以对其进行设置,可以减少冗余代码。

<ul class="strip-loading">
  <li style="--line-index: 1;"></li>
  <li style="--line-index: 2;"></li>
  <li style="--line-index: 3;"></li>
  <li style="--line-index: 4;"></li>
  <li style="--line-index: 5;"></li>
  <li style="--line-index: 6;"></li>
</ul>
li { --time: calc((var(--line-index) - 1) * 200ms); border-radius: 3px; width:
6px; height: 30px; background-color: #f66; animation: beat 1.5s ease-in-out
var(--time) infinite; & + li { margin-left: 5px; } }

参考:8 个硬核技巧带你迅速提升 CSS 技术 | 掘金直播总结CSS(层叠样式表)


文章作者: 阿汪同学
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 阿汪同学 !
评论
  目录