×

CSS 前端开发 选择器

提高前端开发效率的必备CSS选择器

元智汇电子 元智汇电子 发表于2023-12-19 10:39:04 浏览197 评论0

抢沙发发表评论

在前端开发中,页面布局往往是一个相对耗时的任务。有没有一种方法能够减少开发时间呢?或许你会说:“当然有,直接使用UI库啊!” 但是请注意,并非每个项目都有可用的UI库。同时,依赖他人的UI库并不能完全解决所有问题。如果我们对CSS选择器有更深入的了解,或许就能在很多情况下减少对JavaScript的依赖。比如,处理鼠标的移入移出效果、选项卡的背景图切换、图片的渐隐渐显等等。熟练掌握这些(包括不太常见的)CSS选择器,无论是在前端UI布局还是替代JavaScript实现特效,都将显著提升我们的工作效率。


CSS选择器分类和优先级

通配符选择器

image.png

元素(标签)选择器

image.png

类选择器

image.png

ID选择器

image.png

优先级

CSS选择器按照特定的优先级规则生效,其优先级顺序为:

!important > 行内样式 > ID选择器 > 类、伪类、属性选择器 > 元素、伪元素选择器 > 继承 > 通配符选择器


属性选择器示例

HTML示例:

image.png

image.png

attribute - 选择所有带 foo 属性的元素:

image.png

image.png

attribute=value - 选择 attribute=value 的所有元素:

image.png

image.png

attribute =value - 选择 attribute 属性包含单词 value 的所有元素:

image.png

image.png

attribute = value - 选择其 attribute 属性值以 value 开头的所有元素:

image.png

image.png

attribute$=value - 选择其 attribute 属性值以 value 结束的所有元素:

image.png

image.png

attribute\*=value - 选择其 attribute 属性中包含 value 子串的每个元素:

image.png

image.png

attribute∥=value - 选择 attribute 属性值以 value 开头的所有元素:

image.png

image.png


文档结构选择器示例

HTML示例:

image.png

image.png

后代选择器 element element - 选择 ul 元素内部的所有 li 元素:

image.png

image.png

子选择器 element>element - 选择 ul 元素下的 li 元素中的 p 元素:

image.png

image.png

相邻兄弟选择器 element+element - 选择紧接在 h1 元素之后的 p 元素:

image.png

image.png

image.png

image.png

一般兄弟选择器 element1~element2 - 选择前面有 h1 元素的每个 p 元素:

image.png

image.png

image.png

image.png


伪类选择器

:root 伪类 - 文档根元素伪类

image.png

:nth-child(n) 伪类 - 孩子选择器

image.png

image.png

image.png

image.png

:nth-of-type(n) 伪类 - 同类型的第n个元素

image.png

image.png

:first-child 伪类 - 选择父元素的第一个子元素(等同于 :nth-child(1))

:last-child 伪类 - 选择父元素的最后一个子元素

:first-of-type 伪类 - 同类型的第一个子元素

:last-of-type 伪类 - 同类型的最后一个子元素

:only-child 伪类 - 选择父元素中唯一的子元素

image.png

image.png

:empty 伪类 - 选择没有子元素的元素

image.png

:nth-last-child(n) 伪类 - 倒数第n个子元素

image.png

:nth-last-of-type(n) 伪类 - 同类型的倒数第n个子元素

image.png

:enabled / :disabled 伪类 - 启用/禁用的元素选择

:checked 伪类 - 选择每个被选中的 input 元素

:not(selector) 伪类 - 选择非 selector 元素的每个元素(反向选择)

image.png

链接状态伪类

image.png

:focus 伪类 - 选取获得焦点的元素

image.png


伪元素选择器

::first-line 伪元素 - 选取元素的第一行

image.png

在这个示例中,p 元素的第一行的背景颜色变成了黄色。

::first-letter 伪元素 - 选取元素的第一个字母

image.png

在这个示例中,h1 元素的第一个字母的颜色变成了黄色。

::before 伪元素 - 在元素内容之前插入内容

image.png

在这个示例中,div 元素的内容之前插入了文本 "Before content ",并且该文本的颜色是红色。

::after 伪元素 - 在元素内容之后插入内容

image.png

在这个示例中,div 元素的内容之后插入了文本 " After content",并且该文本的颜色是蓝色。

::selection 伪元素 - 选取被用户选取的元素部分

image.png

使用 ::selection 可以改变用户选取的文本的背景颜色和文字颜色。



群贤毕至

访客