您的位置:

层级选择器的多个方面详解

一、初识层级选择器

层级选择器是CSS选择器中的一种,它可以帮助我们通过多个元素之间的关系,选择所需要的元素。好比我们在HTML中的标签嵌套,一个标签可以嵌套另一个标签,层级选择器就是利用这种父子、祖先后代等关系去选择元素的。

在CSS中,层级选择器的表示方法是将子选择器写在父选择器的后面,用空格隔开,例如:

    
        div p {
            color: red;
        }
    

以上代码就是选择所有p标签,但要是它们是div标签的子元素。我们可以发现通过这种方式我们可以构建非常具有针对性的选择器。

二、子选择器和后代选择器

既然层级选择器是通过父子元素之间的关系来选取元素的,那它们之间的关系究竟是如何定义的。在CSS选择器中,我们常常可以用“>”符号表示子选择器,“空格”表示后代选择器。

子选择器选择的是所有直接属于父元素的子元素,而后代选择器选择的是父元素下的所有后代元素,不论直接与否。咱们看看下面的实例:

  • 苹果
  • 梨子
    • 鸭梨
    • 香梨
  • 菠萝
    
        div ul > li {
            color: blue;
        }
        div ul li {
            font-weight: bold;
        }
    

以上代码中,第一段选择器使用了子选择器,选取的是div元素下的所有直属于ul元素的子元素li,这里就是苹果、梨子和菠萝,颜色会变成蓝色。而第二段选择器使用了空格(后代选择器),选择的是div元素下的所有li元素,包括在嵌套的ul里面的鸭梨和香梨,字体的重量会变为粗体。

三、类选择器和ID选择器

类选择器和ID选择器可以说是CSS选择器中最基本、最常用的两种类型了。

前面所说的选择器都是通过标签名、属性名等去选取元素的,但有时候我们需要选取一个由多个标签构成的元素,或者是一个唯一的元素,这时就可以使用类选择器和ID选择器了。

类选择器是通过给元素设置一个class属性,然后在样式表中通过“.”符号进行选择。例如:

    
        .red {
            color: red;
        }
    

以上代码就是选择class属性为"red"的所有元素,并将它们的颜色都变成红色。

ID选择器也十分简单,只要在元素中设置id属性,并且在CSS样式表中使用“#”符号进行选择。例如:

    
        #header {
            font-size: 20px;
        }
    

以上代码就是选择所有id属性为"header"的元素,并将它们的字体大小变成20px。

四、通配符选择器和属性选择器

通配符选择器是一个不带任何名字的选择器,它可以选择html文档中的所有元素。

    
        * {
            margin: 0;
            padding: 0;
        }
    

以上代码就是把文档中所有元素的margin和padding都设置为0。

属性选择器是根据元素的属性值来选取元素的,例如:

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

以上代码就是选择所有type属性为"txt"的input元素,并把它们的边框设置为1像素的固定宽度、#ccc的灰色。

五、伪类选择器和伪元素选择器

伪类选择器和伪元素选择器是CSS3中才有的一种选择器。它们的功能比较强大,可以根据元素处于某种状态或处于文档中的位置来选择元素。

常用的伪类选择器有:

  • :hover (鼠标移动到元素上方时)
  • :active (鼠标点击时)
  • :focus (元素被聚焦时)

常用的伪元素选择器有:

  • ::before (在元素之前插入内容)
  • ::after (在元素之后插入内容)
    
        a:hover {
            color: red;
        }
        p::before {
            content: "注:";
            font-weight: bold;
        }
    

以上代码使用了伪类选择器和伪元素选择器。第一段代码选择了鼠标移到a标签上方时,把它的字体颜色变成红色。第二段代码在所有p标签前添加了"注:",并使它加粗了。