CSS其他选择器--笔记回顾

9 篇文章 0 订阅
5 篇文章 0 订阅

1、属性选择器

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    [title]{
      color: red;
    }

    /* 等于one */
    [title="one div元素"]{
      font-size: 25px;
    }

    /* 包含one */
    [title*="one"]{
      background-color: blue;
    }

    /* 以one开头 */
    [title^="one"]{
      background-color: red;
    }

    /* 以one结尾 */
    [title$="one"]{
      background-color: burlywood;
    }

    /* |= (等于0ne或者以one开头后面用连接符连接)*/
    /* ~=  (有one单词并有空格) */

  </style>
</head>
<body>
  <div title="one">我是div元素</div>
  <p title="p元素">我是p元素</p>
  <p title="p one">我是p元素</p>
  <p>我也是p元素</p>
  <span title="one span元素">我是span元素</span>
</body>
</html>

在这里插入图片描述

2、后代选择器(重要)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* 选中div下面的span元素(直接子元素和间接后代元素) */
    div span{
      color: purple;
    }

    div p span{
      color: yellow;
    }

    /* div>span div元素里面的span子元素(不包括间接子元素) */
    /* 只要符合,不管嵌套 */
    div > span{
      color: red;
    }
  </style>
</head>
<body>

  <span>文字内容1</span>
  
  <div>
    <span>文字内容2</span>
    <p>
      <span>文字内容3</span>
    </p>
    <div>
      <span>文字内容4</span>
    </div>
    <span>文字内容5</span>
  </div>

  <div>
    <a href="#">
      <span>文字内容6</span>
    </a>
  </div>
</body>
</html>

在这里插入图片描述

3、子代选择器

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<style>
  .box1 > span{
    font-size: 30px;
  }

  .box1 .title{
    background-color: red;
  }
</style>
</head>
<body>
<!-- span是行内元素 -->
<span>文字内容1</span>

<div class="box1">
  <span>文字内容2</span>
  <p>
    <span>文字内容3</span>
  </p>
  <div>
    <span>文字内容4</span>
  </div>
  <span class="title">文字内容5</span>
  <div class="title">hehehe</div>
</div>

<div>
  <a href="#">
    <span>文字内容6</span>
  </a>
</div>
</body>
</html>

在这里插入图片描述

4、相邻兄弟选择器

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* div元素后面紧挨着的p元素(且div、p元素必须是兄弟关系) */
    div+p{
      color: yellow;
    }

    /* div元素后面的所有p元素(且div、p元素必须是兄弟关系) */
    /* div~p{
      color: rosybrown;
    } */
  </style>
</head>
<body>
  <p>文字内容0</p>
  <div>
    <p>文字内容1</p>
  </div>
  <p>文字内容2</p>
  <p>文字内容3</p>
  <div>文字内容4</div>
  <p>文字内容5</p>
</body>
</html>

在这里插入图片描述

5、全兄弟选择器

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* div元素后面的p元素(且div、p元素必须是兄弟关系) */
    div~p{
      color: rosybrown;
    }
  </style>
</head>
<body>
  <p>文字内容0</p>
  <div>
    <p>文字内容1</p>
  </div>
  <p>文字内容2</p>
  <p>文字内容3</p>
  <div>文字内容4</div>
  <p>文字内容5</p>
  
</body>
</html>

在这里插入图片描述

6、交集选择器(重要)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* 交集选择器 */

    /* 同时符合2个条件的元素: div元素、class值有one*/
    /* 文字1和文字4变色 */
    div.one{
      color: red;
    }
    
    /* 所有同时符合3个条件的元素:div元素、class值有one、title属性值等于text */
    /* 文字2和文字4变色 */
    div.one[title="text"]{
      color: sandybrown;
    }
  </style>
</head>
<body>
  <div class="one">文字内容1</div>
  <div class="one" title="text">文字内容2</div>
  <span class="one">文字内容3</span>
  <div class="one" title="text">文字内容4</div>
  <div>文字内容5</div>
</body>
</html>

在这里插入图片描述

7、并集选择器(重要)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* 并集选择器 */
    /* 所有的div元素+所有class值有one的元素+所有title属性值等于text的元素 */
    div,.one,[title="text"]{
      color: red;
    }
  </style>
</head>
<body>
  <div>文字内容1</div>
  <span class="one">文字内容2</span>
  <p title="text">文字内容3</p>
  <strong class="one">文字内容4</strong>
  <a href="#" class="one">文字内容5</a>
  <div>文字内容6</div>
</body>
</html>

在这里插入图片描述

8、伪类_目标伪类

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* 目标伪类->:target */
    :target{
      color: red;
    }
  </style>
</head>
<body>
  
  <a href="#title1">标题1</a>
  <a href="#title2">标题2</a>
  <a href="#title3">标题3</a>

  <h2 id="title1">标题1</h2>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>
  <p>内容1</p>

  <h2 id="title2">标题2</h2>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>
  <p>内容2</p>

  <h2 id="title3">标题3</h2>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>  
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  <p>内容3</p>
  
</body>
</html>

9、伪类_元素状态伪类

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    button{
      /* background-color: red; */
    }
    
    /* button[disable]{
      color: red;
    } */
    /* 元素伪类实现*/
    :disable{
      color: red;
    }
  </style>
</head>
<body>
  <button>我是按钮</button>
  <!-- 不可交互按钮 -->
  <button disabled>我是按钮</button>
</body>
</html>

在这里插入图片描述

10、伪类_动态伪类

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* 1.lv ha ->a元素上 */
    /* 顺序要求 */
    /* :hover必须放在:link和:visited后面才能完全生效 */
    /* :active必须放在:hover后面才能完全生效 */
    /* 记忆:女朋友看到lv包包,haha大笑 */

    /* 未访问状态 */
    a:link{
      color: red;
    }
    /* 已经访问过 */
    a:visited{
      color: green;
    }
    /* 鼠标放上去 */
    a:hover{
      color: blue;
    }
    /* 鼠标点击,未松开 */
    a:active{
      color: orange;
    }

    /* 2.hover/active应用到其他元素  */
    strong:hover{
      background-color: blueviolet;
    }
    strong:active{
      font-size: 40px;
    }

    /* 3.focus的使用 */
    input:focus{
      background-color: blueviolet;
    }
    a:focus{
      background-color: cadetblue;
    }
    /* 注意a元素也可以获取焦点,此时a的伪类顺序如下 */
    /* :link :visited :focus :hover :active */
    /* 记忆:女朋友看到lv包包后feng一样haha大笑 */

    /* 4.去掉a元素的焦点状态 */
    /* a:focus{
      /* 不是真正的去掉 
      outline: none;
    } */
  </style>
</head>
<body>
  <!-- 1. lv ha ->a元素上-->
  <!-- tabindex可以调整tab选中元素的顺序(真正去掉a元素的焦点状态) -->
  <a href="#" tabindex="-1">百度一下</a>

  <!-- 2.hover/active -->
  <strong>我是strong元素</strong>

  <!-- 3.focus -->
  <input type="text">
</body>
</html>

在这里插入图片描述

11、伪类_nth-child(数字)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* 第三个子类 */
    /* 注意:body是父元素 */
    :nth-child(3){
      color: yellow;
    }

    /* 交集选择器:1、必须是p元素 2、p元素是子元素中第三个元素 */
    p:nth-child(3){
      color: blue;
    }

  </style>
</head>
<body>
  <div>
    <p>文字内容1</p>
    <p>文字内容2</p>
    <p>文字内容3</p>
    <p>文字内容4</p>
    <p>文字内容5</p>
    <p>文字内容6</p>
    <p>文字内容7</p>
    <p>文字内容8</p>
  </div>
    <p>
      <span>span内容1</span>
      <span>span内容2</span>
      <span>span内容3</span>
      <span>span内容4</span>
      <span>span内容5</span>
    </p>

    <!-- 这个div是body的第三个子元素 -->
    <div>
      <strong>strong内容1</strong>
      <strong>strong内容2</strong>
    </div>
  
</body>
</html>

在这里插入图片描述

12、伪类_nth-child(n)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* n:自然数 0,1,2,3,4.... */

    /* :nth-child(n){
      color: red;
    } */

    /* p:nth-child(n){
      color: blue;
    } */

    /* 1.    2n:2,4,6,8..... */
    /* 2n->even */
    /* p:nth-child(2n){
      color: blue;
    } */
/* 
    p:nth-child(even){
      color: blue;
    } */

    /* 2.     2n+1:1,3,5,7... */
    /* 2n+1 ->odd */
    /* p:nth-child(2n+1){
      color: blue;
    } */

  /*   p:nth-child(odd){
      color: blue;
    } */

    /* 3.   3n:3,6,9.... */
    /*    3n+2:2,5,8.... */
    p:nth-child(3n){
      color: red;
    }

    /* 4.  负数:-n+5 */
    /* 重要:选中前5个!!!! */
    p:nth-child(-n+5){
      color: blue;
    }


  </style>
</head>
<body>
  <div>
    <p>文字内容1</p>
    <p>文字内容2</p>
    <p>文字内容3</p>
    <p>文字内容4</p>
    <p>文字内容5</p>
    <p>文字内容6</p>
    <p>文字内容7</p>
    <p>文字内容8</p>
  </div>
    <!-- <p>
      <span>span内容1</span>
      <span>span内容2</span>
      <span>span内容3</span>
      <span>span内容4</span>
      <span>span内容5</span>
    </p> -->
  
</body>
</html><style>
    /* n:自然数 0,1,2,3,4.... */

    /* :nth-child(n){
      color: red;
    } */

    /* p:nth-child(n){
      color: blue;
    } */

    /* 1.    2n:2,4,6,8..... */
    /* 2n->even */
    p:nth-child(2n){
      /* color: blue; */
    }

    p:nth-child(even){
      /* color: blue; */
    }

    /* 2.     2n+1:1,3,5,7... */
    /* 2n+1 ->odd */
    p:nth-child(2n+1){
      /* color: blue; */
    }

    p:nth-child(odd){
      /* color: blue; */
    }

    /* 3.   3n:3,6,9.... */
    /*    3n+2:2,5,8.... */
    p:nth-child(3n){
      /* color: blue; */
    }

    /* 4.  负数:-n+5 */
    /* 重要:选中前5个!!!! */
    p:nth-child(-n+5){
      color: blue;
    }


  </style>
</head>
<body>
  <div>
    <p>文字内容1</p>
    <p>文字内容2</p>
    <p>文字内容3</p>
    <p>文字内容4</p>
    <p>文字内容5</p>
    <p>文字内容6</p>
    <p>文字内容7</p>
    <p>文字内容8</p>
  </div>
    <!-- <p>
      <span>span内容1</span>
      <span>span内容2</span>
      <span>span内容3</span>
      <span>span内容4</span>
      <span>span内容5</span>
    </p> -->
  
</body>
</html>

在这里插入图片描述

13、伪类_nth-child-强调

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* 交集选择器:
            *是一个p元素
            *p元素同时作为子元素的第一个    
     */
    p:nth-child(1){
      color: red;
    }

    /* 加空格表示后代(见后代选择器) 
            *选择p元素,但是后面是一个空格,选p的后代
            *选择后代的第一个子元素
    */
    p :nth-child(1){
      color: blue;
    }
  </style>
</head>
<body>
  <div>
    <p>文字内容1</p>
    <p>文字内容2</p>
  </div>

  <p>
    <span>span1</span>
    <span>span2</span>
  </p>
</body>
</html>

在这里插入图片描述

14、伪类_nth-child(数字)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* nth-child():正着数 */
    /* nth-last-child():倒着数 */

    /* 1.跟数字 */
    /* 倒数第3个 */
    /* p:nth-last-child(3){
      color: blue;
    } */

    /* 2.跟n */
    /* 从后往前数的奇数 */
    /* p:nth-child(2n+1){
      color: blue;
    } */
    /* 最后2个元素 */
    p:nth-last-child(-n+2){
      color: blue;
    }
  </style>
</head>
<body>
  <div>
    <p>文字内容1</p>
    <p>文字内容2</p>
    <p>文字内容3</p>
    <p>文字内容4</p>
    <p>文字内容5</p>
    <p>文字内容6</p>
    <p>文字内容7</p>
    <p>文字内容8</p>
    <p>文字内容9</p>
    <p>文字内容10</p>
  </div>
</body>
</html>

在这里插入图片描述

15、伪类_nth-of-type(数字)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>

    /* 没有符合要求的变色 */
    p:nth-child(3){
      color: blue;
    }

    /* 文字内容3变色 */
    /* 可忽略其他元素,只数自己的元素 */
    p:nth-of-type(3){
      color: blue;
    }
  </style>
</head>
<body>
  <div>
    <div>我是div元素</div>
    <p>文字内容1</p>
    <span>我是span元素</span>
    <p>文字内容2</p>
    <p>文字内容3</p>
    <p>文字内容4</p>
    <p>文字内容5</p>
    <p>文字内容6</p>
    <p>文字内容7</p>
    <p>文字内容8</p>
    <p>文字内容9</p>
    <p>文字内容10</p>
  </div>
</body>
</html>

在这里插入图片描述

16、伪类_nth-of-type(n)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>

    /* 文字内容2,4,6,8,10变色 */
    p:nth-of-type(2n){
      color: blue;
    }
  </style>
</head>
<body>
  <div>
    <div>我是div元素</div>
    <p>文字内容1</p>
    <span>我是span元素</span>
    <p>文字内容2</p>
    <p>文字内容3</p>
    <p>文字内容4</p>
    <p>文字内容5</p>
    <p>文字内容6</p>
    <p>文字内容7</p>
    <p>文字内容8</p>
    <p>文字内容9</p>
    <p>文字内容10</p>
  </div>
</body>
</html>

在这里插入图片描述

17、伪类_nth-lat-of-type

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* 文字内容7变色 */
    p:nth-last-of-type(3){
      color: blue;
    }
  </style>
</head>
<body>
  <div>
    <div>我是div元素</div>
    <p>文字内容1</p>
    <span>我是span元素</span>
    <p>文字内容2</p>
    <p>文字内容3</p>
    <p>文字内容4</p>
    <p>文字内容5</p>
    <p>文字内容6</p>
    <p>文字内容7</p>
    <p>文字内容8</p>
    <p>文字内容9</p>
    <span>我是span元素</span>
    <p>文字内容10</p>
  </div>
</body>
</html>

在这里插入图片描述

18、伪类_only-child

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* 1.only-child */
    /* 父元素中的唯一子元素 */
    /* 文字内容全部变色:body是html的唯一子元素 html是根元素 */
    /* only-child{
      color: blue;
    } */

    /* body :only-child{
      color: blue;
    } */

    /* 2.only-of-type */
    /* 父元素中的唯一该类型子元素 */
    body :only-of-type{
      color: blue;
    }
  </style>
</head>
<body>

  <div>
    <!-- p在此时唯一类型 -->
    <p>
      <!-- 继承父元素 -->
      <span>文字内容0</span>
      <span>文字内容1</span>
    </p>
    <!-- 不在唯一 -->
    <div>文字内容2</div>
    <div>文字内容div</div>
  </div>
  <div>
    <strong>文字内容3</strong>
    <a href="#">
      <span>文字内容4</span>
    </a>
  </div>

</body>
</html>

在这里插入图片描述

19、伪类_root

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* html{
      rem设置字体
    } */

    /* :root{

    } */
  </style>
</head>
<body>
  
</body>
</html>

20、伪类_empty

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    :empty{
      height: 20px;
      background-color: blue;
    }
  </style>
</head>
<body>
  <div>
    <p></p>
    <span>hahah</span>
  </div>
  <div>
    <strong>hehehe</strong>
    <a href="#">hihihi</a>
    <div></div>
  </div>
</body>
</html>

在这里插入图片描述

21、伪类_否定伪类_not

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* 除了div之外,所有的元素 */
    /* 不能加空格 这种格式不经常写*/
    /* :not(html):not(body):not(div){
      color: blue;
    } */
    body :not(div){
      color: blue;
    }

    body :not(.text){
      color: burlywood;
    }
  </style>
</head>
<body>
  <div>文字内容1</div>
  <p>文字内容2</p>
  <span class="text">文字内容3</span>
  <div>文字内容4</div>
</body>
</html>

在这里插入图片描述

22、伪类_first-line-letter

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    p{
      width: 400px;
      background-color: red;
    }

    p::first-letter{
      font-size: 50px;
    }
    /* 注意:只有下列属性可以应用在::first-letter伪元素 */
    /* 字体属性、margin属性、padding属性、border属性、颜色属性、背景属性 */
    /* text-decoration、text-transform、letter-spacing、word-spacing(适当时候)、line-height、float、vertical-align(只有当float是none时) */

    p::first-line{
      color: white;
    }
    /* 注意:只有下列属性可以应用在::first-line伪元素 */
    /* 字体属性、颜色属性、背景属性 */
    /* word-spacing、letter-spacing、text-decoration、text-transform、line-height */
  </style>
</head>
<body>
  <p>
    2019年12月份最新最全HTML+CSS教程,
    帮助你从入门前端开发。
    课程由coderwhy全新录制,绝对靠谱;
    获取资料添加微信:coderwhy003
  </p>
</body>
</html>

在这里插入图片描述

23、伪元素_before和after

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /* .number{
      color: red;
    } */

    span::before{
      /* 设置内容 */
      /* content: "1"; */
      content: url("./img/伪类.PNG");
      color: red;
      margin-right: 20px;
    }

    span::after{
      /* content不能省略 */
      /* content: ""; */
      content: "abc";
      /* color: rosybrown; */
      background-color: rosybrown;
      margin-left: 20px;
      /* 这俩不支持该属性,要先设置display */
      display: inline-block;
      width: 100px;
      height: 30px;

    }
  </style>
</head>
<body>
  <!-- <span class="number">1</span> -->
  <span>我是span元素</span>
</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值