前端开发 大前端 W3Cbest

一个专注 WEB 开发的技术博客

0%

CSS 选择器技能使用指南

我已经使用CSS多年了,但直到最近我还没有深入研究过关于 CSS 选择器的主题。 为什么我需要学习 CSS 选择器呢? 我们现在知道了所有的内部选择器了吗? 问题是(至少对我来说是这样)随着时间的推移,很容易习惯在每个项目上使用相同的习惯的选择器集合来完成你要做的事情。 因此,我自己对 CSS 选择器知识进行了深入的审查,并发现了一些有趣的内容,这些内容对我来说是新的,或者是以前我从来没有想过这些使用方式。 我还发现了一些很酷的新选择器,将来可用,但还没有广泛使用。 我们一起来深入研究一下各种类型的 CSS 选择器吧。 您在日常工作中已经使用了,或者本文没涉及到的 CSS 选择器技能欢迎留言告诉我。 准备好提升你的 CSS 选择器技能了吗?我们一起 GO!

组合选择器

让我们从熟悉的选择器开始。组合选择器用于选择子元素和兄弟元素,并且相信大家已经使用了很长一段时间了吧。

  • 一般子元素选择器(空格)。例如A B。
  • 直接子元素选择器。例如 A > B 。
  • 相邻兄弟元素选择器。例如 A + B。
  • 一般兄弟元素选择器。例如 A ~ B。

您应该熟悉相邻兄弟元素选择器 A + B ,他会选择紧跟 A 的 B 元素。但是一般兄弟元素选择器 A~B 呢? 他将选择跟随 A 的所有兄弟 B 元素: 以下是实例:

See the Pen Combinator Selectors by David Gwyer (@dgwyer) on CodePen.

第二行 New York 行被选中是因为它紧跟在第一行之后 table tbody tr:first-child + tr,并且最后两个城市被高亮显示,因为他们被一般兄弟选择器 table tbody tr:nth-child(4) ~ tr 匹配,也就是第四行之后的所有行。

属性选择器

我非常喜欢属性选择器。当您需要将包含某个属性的元素与特定值匹配时,它们可以非常灵活。

See the Pen Attribute Selectors #1 by David Gwyer (@dgwyer) on CodePen.

此示例演示如何选择所有复选框元素并将样式应用于其匹配标签,以使其变为粗体和蓝色。 然后,我们覆盖具有特定名称的 chk2 复选框的样式,并将其匹配的标签着色为红色。 请注意其他表单元素标签如何不受影响且未应用标签样式。 属性选择器不仅适用于表单元素,它们还可以定位任何元素的属性。 您可以匹配任何属性,而不仅仅是官方支持的属性。 此外,您可以检查属性是否存在,如下所示:

button[icon]

这匹配包含 icon 属性的