少数人知道的十个神奇 CSS 选择器

开发 前端
大多数人熟悉 ID 选择器、类选择器或元素选择器,甚至伪元素的使用也很常见。然而,你知道 CSS 其实还有许多不为人知的强大选择器吗?

在 Web 开发中,CSS 扮演着至关重要的角色,但很多开发者并没有真正发掘它的全部潜力!

大多数人熟悉 ID 选择器、类选择器或元素选择器,甚至伪元素的使用也很常见。然而,你知道 CSS 其实还有许多不为人知的强大选择器吗?

今天,就带你揭秘一些鲜有人知但却非常实用的 CSS 选择器,让你在样式控制上更上一层楼!

1. 属性选择器

属性选择器可以根据 HTML 元素的属性来应用样式,而无需额外添加类或 ID。

基础属性选择器

a[href] {
  color: blue;
}

这个选择器会为所有包含 href 属性的 <a> 元素添加蓝色字体样式。

指定属性值的选择器

input[type="text"] {
  border: 1px solid #ccc;
}

此规则仅作用于 type="text" 的输入框。

匹配部分属性值的选择器

/* 以某个值开头(^=) */
a[href^="https"] {
  color: green;
}

/* 以某个值结尾($=) */
a[href$=".pdf"] {
  color: red;
}

/* 包含某个值(*=) */
a[href*="example"] {
  color: orange;
}

这些选择器可以分别选中以 https 开头的链接、以 .pdf 结尾的链接,以及包含 example 关键字的链接,并应用不同的样式。

2. :nth-child() 选择器

该伪类选择器可以基于元素在其父元素中的位置来应用样式:

li:nth-child(odd) {
  background-color: #f9f9f9;
}

这将使奇数序号的 <li> 元素具有不同的背景颜色。

3. :not() 选择器

想要排除某些特定元素?:not() 选择器可以帮你实现:

button:not(.primary) {
  background-color: grey;
}

以上代码会为所有 不 具有 .primary 类的 <button> 按钮应用灰色背景。

4. :focus 选择器

提升用户体验和可访问性的一种方式是给获取焦点的元素添加样式:

input:focus {
  outline: 2px solid blue;
}

当输入框获得焦点时,会显示一个蓝色的外边框。

5. ::before 和 ::after 伪元素

这两个伪元素可以在某个元素的前后插入内容,无需修改 HTML 结构:

h1::before {
  content: "§ ";
  color: grey;
}

p::after {
  content: " (阅读更多)";
  color: blue;
}

上面的示例会在所有 <h1> 标题前添加灰色的 "§ " 符号,并在每个 <p> 段落后面附加 "(阅读更多)" 的蓝色文本。

6. ::first-line 选择器

想让段落的首行样式有所不同?可以这样做:

p::first-line {
  font-weight: bold;
  color: red;
}

这会让段落的首行变成 加粗 且 红色。

7. ::first-letter 选择器

如果你想让段落的首字母更具视觉吸引力,可以使用 ::first-letter:

p::first-letter {
  font-size: 2em;
  color: green;
}

这样,所有段落的第一个字母都会被放大,并且颜色变成绿色。

8. :empty 选择器

这个选择器可以选中 没有子元素(包括文本内容)的 HTML 元素:

div:empty {
  border: 1px dashed red;
}

这样,所有空的 <div> 元素都会带有红色虚线边框。

9. :checked 选择器

专门用于选中 复选框(checkbox) 或 单选按钮(radio) 的样式控制:

input[type="checkbox"]:checked + label {
  font-weight: bold;
}

当复选框被选中时,相关的 <label> 标签会变成加粗字体。

10. 组合选择器

CSS 选择器可以组合使用,以实现更精准的样式控制。例如:

a[href^="https"]:not([href*="example"])::after {
  content: " (安全)";
  color: green;
}

这个规则会为 以 https 开头且不包含 "example" 关键字 的链接,在其后面添加绿色的 "(安全)" 标识。

结语

希望这篇文章能帮助你更好地理解 CSS 选择器的强大之处。

责任编辑:武晓燕 来源: 大迁世界
相关推荐

2021-10-15 04:59:58

技术

2022-04-14 09:01:19

CSS父选择器CSS类

2014-02-13 17:22:08

2023-08-29 07:52:09

CSS库网络动画

2013-03-11 10:30:56

CSSWeb

2011-10-24 10:30:20

CSS

2023-01-30 08:42:33

CSS选择器性能

2010-09-07 11:14:32

CSS属性选择器CSS

2023-03-16 10:20:55

CSS选择器

2012-11-20 09:57:14

2010-09-08 14:35:22

CSS

2009-04-30 08:58:39

微软操作系统Windows 7

2022-08-26 12:10:49

MSS服务网络安全

2020-10-25 08:57:56

CSS前端浏览器

2010-09-03 09:30:29

CSS选择器

2023-11-01 10:14:02

前端CSS属性

2010-08-26 12:47:15

CSSclass

2010-09-06 08:52:00

CSS选择器

2023-12-15 10:42:05

2019-10-22 15:27:58

前端开发技术
点赞
收藏

51CTO技术栈公众号