美文网首页
CSS选择器--跟着李南江学编程

CSS选择器--跟着李南江学编程

作者: 63537b720fdb | 来源:发表于2019-11-26 22:11 被阅读0次

伪类选择器操作的是被选中的对象

1.E:not(s)

选中的是div中 类名不是.test的元素 操作的对象是div

      div:not(.test) {
         background-color: red;
      }
  <div class="demo">1</div>
  <div class="demo">2</div>
  <div class="test">3</div>
image.png

如何使最后一个li的border-bottom不显示

         *{
             margin: 0;
             padding: 0;
             list-style: none;
          }
          ul{
             width: 300px;
             border: 1px solid #999;
          }
          li{
             height: 50px;
             margin: 0 5px;
          }
          li:not(:last-of-type) {
             border-bottom: 1px solid black;
          } 选中li中 不是 最后一个元素 的元素
          <li>content</li>
          <li>content</li>
          <li>content</li>
          <li>content</li>
          <li>content</li>
      </ul>

image.png

2.root根标签选择器

root和html不相同 root是根标签选择器 包含html

            :root{
                background-color:red ;
            }
            html{
                background-color: green;
            }
image.png

3.target

改变另一个不相干结构的状态 点击a标签改变对应div的状态

      div:target{
         border: 1px solid red;
      }

      <a href="#box1">box1</a>
      <a href="#box2">box2</a>
      <div id="box1">
          1
      </div>
      <div id="box2">
          2
      </div>

点击herf="#box1"的a标签,对应的box1出现红色边框


image.png

4.1 E:first-child 操作的是E 非E的父级 操作的是p并不是div

      p:first-child{    操作的是P并不是div
         background-color: red;
      }
  <div>
      <p>1</p>
      <p>2</p>
      <p>3</p>
  </div>

若div:first-child{} 则不会出现结果,伪类选择器是针对被选中元素操作它的状态,此时被选中的元素是一堆p元素 first-child是指只有第一个子元素才满足条件,则操作的是作为div下第一个子元素p的状态

image.png

4.2 E:last-child

操作的是作为 E的父级中 的最后一个的 E元素
操作的是作为 div中 的最后一个 p元素


          p:last-child{
             background-color: red;
          }
image.png
          p:last-child{
             background-color: red;
          }
      <div>
          <p>1</p>
          <p>2</p>
          <p>3</p>

      </div>

      <p>4</p>

此时选中的是div下的一堆子元素p和body下的一个子元素p,last-child,只有作为div下最后一个子元素p或作为body下最后一个子元素p才满足条件

image.png

4.3 E:only-child


          span:only-child{ span是否作为父级div下唯一的子元素
             background-color: red;
          }
          div:only-child{ div是否作为父级body下唯一的子元素
             background-color: green;
          }
      <div>
          <span>0</span>
          <p>1</p>
      </div>

span不是div下唯一的子元素,不显示,div是body下唯一的子元素,显示

image.png

4.4 E:nth-child()



          p:nth-child(2n+1){ n从0开始,css从1开始  odd奇数 even偶数
             background-color: red;
          }
      <div>
          <p>1</p>
          <p>2</p>
          <p>3</p>
          <p>4</p>
          <p>5</p>
      </div>

(2n+1)表示的是奇数
伪类选择器操作的是一堆p元素,并且这些p元素是作为div下的奇数项
则1、3、5被选中


image.png

4.5 E:nth-last-child()


         p:nth-last-child(1){ 选中一堆p元素中作为div的倒数第一个的元素p
             background-color: red;
          }
      <div>
          <p>1</p>
          <p>2</p>
          <p>3</p>
          <p>4</p>
          <p>5</p>
      </div
image.png

4.6 E:nth-child(odd) 参考E的父级


          p:nth-child(odd){ 选中的p元素满足 在div中处于奇数位的条件
             background-color: red;
          }
      <div>
          <span>0</span>
          <p>1</p>
          <p>2</p>
          <p>3</p>
          <p>4</p>
          <p>5</p>
      </div>

作为div中奇数位的是0,2,4三个元素,选中的一堆p元素中满足条件的只有2与4


image.png

总结:
E:first-child
E:last-child
E:only-child
E:nth-child(n)
E:nth-last-child(n)
这5个伪类选择器都要考虑同级的其他子元素,所以这5种写法不常用

5.1 E:first-of-type 选中的是一堆E元素中的第一个元素E


          p:first-of-type{
             background-color: red;
          }
      <div>
          <span>0</span>
          <p>1</p>
          <p>2</p>
          <p>3</p>
          <p>4</p>
          <p>5</p>
      </div>


1作为一堆p元素中的第一个元素


image.png

5.2 E:last-of-type 选中的是E元素中的最后一个元素E


          p:last-of-type{
             background-color: red;
          }
      <div>
          <span>0</span>
          <p>1</p>
          <p>2</p>
          <p>3</p>
          <p>4</p>
          <p>5</p>
      </div>

5作为一堆p元素中的最后一个元素p,不考虑span对它的影响


image.png

5.3 E:last-of-type 选中每个结构下E元素中的最后一个E元素

和5.2做比较



          p:last-of-type{
             background-color: red;
          }
      <div>
          <span>0</span>
          <p>1</p>
          <p>2</p>
          <p>3</p>
          <p>4</p>
          <p>5</p>
      </div>
      <p>6</p>

image.png

5.4 E:only-of-type 选中每个结构下的E元素,并且这些E元素在相应的结构下都是单个的


          p:only-of-type{
             background-color: red;
          }
      <div>
          <span>0</span>
          <p>1</p>
      </div>
      <p>6</p>

1作为div下的单个p元素
6作为body下的单个p元素


image.png

5.5 E:nth-of-type(n)选中的是一堆E元素中的第n个元素

p类型下的第一个元素
         p:nth-of-type(1){
             background-color: red;
          }
      <div>
          <span>0</span>
          <p>1</p>
          <p>2</p>
          <p>3</p>
          <p>4</p>
          <p>5</p>
      </div>
      <p>6</p>
image.png

5.5 E:nth-last-of-type(n)选中的是一堆E元素中的倒数第n个元素

和5.4做对比

    p:nth-last-of-type(1){
             background-color: red;
          }
      <div>
          <span>0</span>
          <p>1</p>
          <p>2</p>
          <p>3</p>
          <p>4</p>
          <p>5</p>
      </div>
      <p>6</p>

image.png

6. E:empty 选中的是一堆E元素,且满足内容是空的E元素


    div:empty{
        border: 1px solid #000;
        width: 100px;
        height: 100px;
        background-color: red;
     }
      <div><span>123</span></div>
      <div></div>
      <div>234</div>
      <div><!-- 12345t--></div> 注释也算作空内容
image.png

我正在跟着江哥学编程,更多前端+区块链课程: www.it666.com

相关文章

网友评论

      本文标题:CSS选择器--跟着李南江学编程

      本文链接:https://www.haomeiwen.com/subject/sdtuwctx.html