CSS 选择器


CSS选择器

CSS选择器指的是在CSS中用来定位目标元素的一组符号。这些符号表现出元素的结构,属性和关系,可以对文档中的元素进行精确的匹配。

基本选择器

例如:

div {
  color: blue;
}

这个选择器会匹配页面中所有的"div"元素,并使它们的文字变为蓝色。这是最基本的CSS选择器。

还有其他一些基本的选择器类型:

元素选择器

元素选择器就是选择HTML文档中所定义的元素类型。例如:

h1 {
  font-size: 24px;
}

这个选择器会匹配所有的"h1"元素,并将它们的字体大小设为24px。

类选择器

类选择器可以根据元素的"class"属性来选择元素。例如:

.highlight {
  background-color: yellow;
}

这个选择器会选择所有定义了"class=‘highlight’“的元素,并将它们的背景色设为黄色。

ID选择器

ID选择器可以根据元素的"id"属性来选择元素。例如:

#header {
  color: red;
}

这个选择器会匹配所有id属性为"header"的元素,并将它们的颜色设为红色。

组合选择器

组合选择器是指多个基本选择器组合在一起,以此来更具体地匹配目标元素。例如:

后代选择器

后代选择器就是通过描述嵌套关系,来选择某个元素下的所有后代元素。例如:

<div>
  <p>Hello World!</p>
</div>
div p {
  font-size: 14px;
}

这个选择器会匹配所有嵌套在"div"元素中的"p"元素,并将它们的字体大小设为14px。

子元素选择器

子元素选择器是指通过"父级元素 > 子级元素"的方式来选择子元素。例如:

<div>
  <p>Hello World!</p>
</div>
div > p {
  font-size: 14px;
}

这个选择器会匹配所有在"div"元素下的直接子元素"p”,并将它们的字体大小设为14px。

相邻兄弟选择器

相邻兄弟选择器是指通过"元素1 + 元素2"的方式来选择紧挨着元素1的相邻兄弟元素。例如:

<div>
  <p>Hello World!</p>
  <h1>Heading</h1>
</div>
p + h1 {
  font-size: 24px;
}

这个选择器会匹配所有在"p"元素后紧挨着的"h1"元素,并将它们的字体大小设为24px。

通用兄弟选择器

通用兄弟选择器是通过"元素1 ~ 元素2"的方式来匹配在元素1后面的所有兄弟元素2。例如:

<div>
  <p>Hello World!</p>
  <h1>Heading1</h1>
  <h1>Heading2</h1>
</div>
p ~ h1 {
  font-size: 18px;
}

这个选择器会匹配所有在"p"元素后的所有"h1"元素,并将它们的字体大小设为18px。

属性选择器

属性选择器可以根据元素的某个属性来选择元素。例如:

属性选择器基础

input[type='text'] {
  border: 1px solid gray;
}

这个选择器会选择所有"type=‘text’“的input元素,并将它们的边框设为1像素宽、灰色。

“starts with"选择器

input[type^='tex'] {
  border: 1px solid gray;
}

这个选择器会选择所有"type"属性值以"tex"开头的input元素,并将它们的边框设为1像素宽、灰色。

“ends with"选择器

a[href$='.pdf'] {
  color: red;
}

这个选择器会选择所有"href"属性值以”.pdf"结尾的链接元素,并将它们的颜色设置为红色。

“contains"选择器

a[href*='google'] {
  font-weight: bold;
}

这个选择器会选择所有"href"属性值中包含"google"的链接元素,并将它们的字体加粗。

伪类和伪元素

伪类和伪元素是指在匹配元素时,不是根据元素本身的属性或结构来选择,而是依靠元素的行为和状态等信息。

例如:

:hover伪类

a:hover {
  color: red;
}

这个选择器会在鼠标经过链接时,将它的颜色设为红色。

:nth-child(n)伪类

ul li:nth-child(2n) {
  background-color: #EEE;
}

这个选择器会选择ul中的所有li元素中,位置为偶数的元素并将它们的背景色设为#EEE。

::before伪元素

div::before {
  content: "";
  display: block;
  background-image: url("icon.png");
}

这个选择器将在div元素之前添加一个空内容的伪元素,并将它的背景设为icon.png。

总结

CSS选择器是CSS语言中非常重要的一部分。基本选择器能够独立使用;通过组合选择器来更加精确的选择目标元素,而属性选择器可提供更加丰富的选择方式。同时,伪类和伪元素可以提供额外的选择和样式变化。熟练地运用所有选择器和组合方式,能够轻松地实现各种复杂的设计效果。