HTML选择器分类

  注:图片来源于w3c 

1、id选择器(只能唯一、#abc)

2、class选择器(可以重复、.abc)(又称类选择器,属性值可有多个,用空格隔开)

3、通用选择器 *

4、复合选择器

    -交集选择器

      作用:选择同时复合多个条件的元素

      语法:选择器1选择器2选择器3选择器n {}

      举例:.a.b.c{ }

      注意点:交集选择器中如果有元素选择器,必须使用元素选择器开头div.abc{ }

         -并集选择器(选择器分组)

      作用:同时选择多个选择器对应的元素

      语法:选择器1,选择器2,选择器3,选择器n{ }

      举例:h1,span,p{ }

5、关系选择器

  - 父元素

    - 直接包含子元素的元素叫做父元素,eg: div 元素是 p 元素和 span 元素的父元素,p 元素是 p 所包含的 span 元素的父元素,但 div 并不是  p 中所包含的 span 元素的父元素,因为两者之间隔了一个 p 元素。

  - 子元素

    - 直接被父元素包含的元素是子元素,eg: p 和 span 是 div 的子元素,p 中的 span 是 p 的子元素,而不是 div 中的子元素,因为 div 和 p 中的 span 是间接 关系,而不是直接关系。

  - 祖先元素

    - 直接或间接包含后代元素的元素叫做祖先元素

    - 一个元素的父元素也是它的祖先元素

  - 后代元素

    - 直接或间接被祖先元素包含的元素叫做后代元素

    - 子元素也是后代元素

  - 兄弟元素

    - 拥有相同父元素的元素是兄弟元素

  - 子元素选择器

    作用:选中指定父元素的指定子元素

    语法:父元素 > 子元素

    举例:

   <div>
        我是一个div
        <p>我是div中的p元素
            <span>我是p元素中的span</span>
        </p>
        <span>我是div中的span元素</span>
        <span>我是div中的span元素</span>
        <span>我是div中的span元素</span>
    </div>
div > span{
            color: orange;
        }

    效果:

     

  - 后代选择器

    作用:选中指定元素内的指定后代元素

    语法:祖先 后代

    举例:

div span{
            color: brown;
        }

    效果:

    

  - 兄弟元素选择器

    选择下一个兄弟(两元素必须是相邻的)

      语法:前一个 + 下一个

    选择下边所有的兄弟

      语法:兄 ~ 弟

    举例: p + span{ color: red; } 

    效果:

    

    举例:  p ~ span{ color: red; } 

    效果:

    

    注:更多详细内容可查看w3c

    

6、属性选择器

  - [属性名] 选择含有指定属性的元素

    举例: [title]{ color:red; } 

    效果:

    

   - [属性名=属性值] 选择含有指定属性和指定属性值的元素

    举例: p[title=abc]{ color:red; } 

    效果:

    

  - [属性名^=属性值] 选择属性值以指定值开头的元素

    举例: p[title^=abc]{ color:red; } 

    效果:

    

  - [属性名$=属性值] 选择属性值以指定值结尾的元素

    举例: p[title$=de]{ color:red; } 

    效果:

    

  - [属性名*=属性值] 选择属性值中含有某值的元素

    举例: p[title*=c]{ color:red; } 

    效果:

    

 7、伪类选择器

  伪类(不存在的类、特殊的类)

    - 伪类用来描述一个元素的特殊状态

      比如:第一个子元素、被点击的子元素、鼠标移入的元素

    - 伪类一般情况下都是使用 : 开头

      :first-child 第一个子元素

      :last-child 最后一个子元素

      :nth-child() 选中第n个子元素
        特殊值:
          n 第n个 n的范围0到正无穷
          2n 或 even 表示选中偶数位的元素
          2n+1 或 odd 表示选中奇数位的元素
        - 以上这些伪类都是根据所有的子元素进行排序
 
      :first-of-type
      :last-of-type
      :nth-of-type()
        - 这几个伪类元素的功能和上述类似,不同点是他们是在同类型元素中进行排序
      举例: 
   <ul>
        <span>span元素</span>
        <li>第〇个</li>
        <li>第一个</li>
        <li>第二个</li>
        <li>第三个</li>
        <li>第四个</li>
        <li>第五个</li>
    </ul>
ul > li:first-of-type{ color: red; } 
      效果:

       

    - :not()否定伪类

      - 将符合条件的元素从选择器中去除

      举例: ul > li:not(:nth-child(3)){ color: red; } 

      效果:

      

 

    - a元素的伪类 

      :link 用来表示没访问过的链接(正常的链接)

      :visited 用来表示访问的链接

        - 由于隐私原因,所以visited这个伪类只能用来修改链接的颜色

      :hover 用来表示鼠标移入的状态

      :active 用来表示鼠标点击的状态

      举例: <a href="www.baidu.com">百度</a> 

          a:link{ color: green; } 

      效果:

      

 

8、伪元素选择器

  伪元素,表示页面中一些特殊的并不真实的存在元素(特殊的位置),伪元素选择器,用于设置指定元素的样式。

    伪元素使用 :: 开头

    ::first-letter 表示第一个字母

    ::first-line 表示第一行

    ::selection 表示选中的内容
    ::before 元素的开始
    ::after 元素的最后
      - befre 和 after 必须结合 content 属性来使用
    举例1:
<p>
        在W3School,您将找到所有属性和选择器的完整 CSS 参考手册,包括语法
    </p

     p::first-line{ color:red; } 

    效果1:

    

    举例2:

p::before{
            content: '我们可以在';
            color: green;
        }

    效果2:

    

9、继承

  - 样式的继承,我们为一个元素设置的样式同时也会应用到它的后代元素上

  - 继承是发生在祖先与后代之间的

  - 继承的设计是为了方便我们开发,利用继承我们可以将一些通用的样式统一设置到共同的祖先元素上,这样只需设置一次即可让所有的元素都具有该样式

  - 注意:并不是所有的样式都会被继承,比如,背景相关的,布局相关的就不会被继承

 

 

 

 

 

 

 

 

    

 

 

      

      

      

 

 

  

 

 

 

 

    

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2023-02-22 22:18  Wanniee  阅读(1466)  评论(0编辑  收藏  举报