CSS选择器2

目录

一、复合选择器

 二、关系选择器

 三、属性选择器


http://t.csdn.cn/EY5xE(入门学习1)

http://t.csdn.cn/zpRi9 (入门学习2)

http://t.csdn.cn/PNvdB(入门学习3)

http://t.csdn.cn/hddFu (CSS选择器1)

前面学习文章的链接我给大家放在这里哦,大家可以巩固学习

前面我们学习了几个常用的选择器,今天我们一起接着学习

一、复合选择器

复合选择器有两种:

1、交集选择器

      作用:选中同时满足多个条件的元素

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

   

    注意:如果选择器中有元素选择器,那么元素选择器必须放在第一位

2、并集选择器

      作用:同时选中满足条件的元素

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

     

学习今天的选择器为了助于大家理解,我直接放源码,大家可以参考一下,然后自己动手试一试

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
     /* 需求一:将class为red的诗句变为红色,同时将class为red的div字体变为24px */
      div.red{
        font-size: 34px;
        color: red;
      }
    /* 需求二:将h1,h3字体颜色变为黄色*/
      h1,h3{
        color: yellowgreen;
      }
    </style>
  </head>
  <body>
    <h1>满江红·写怀</h1>
    <h3>岳飞·宋</h3>
    <p class="red">怒发冲冠,凭栏处、潇潇雨歇。</p>
    <div class="red">抬望眼,仰天长啸,壮怀激烈。</div>
    <div>三十功名尘与土,八千里路云和月。</div>
    <p>莫等闲,白了少年头,空悲切!</p>
    <p>靖康耻,犹未雪。臣子恨,何时灭!</p>
    <p>驾长车,踏破贺兰山缺。</p>
    <p>壮志饥餐胡虏肉,笑谈渴饮匈奴血。</p>
    <p>待从头、收拾旧山河,朝天阙。</p>
  </body>
</html>

上述代码中有俩个需求案例,需求一使用的是交集选择器,需求二使用的是并集选择器

运行结果展示:

 二、关系选择器

元素之间的关系

      父子关系

         父元素:直接包含子元素的元素

         子元素:直接被父元素包含的元素

      祖先后代关系

         祖先元素:直接或间接包含的元素,包含父元素

         后代元素:直接或间接被包含的元素,包含子元素

      兄弟关系

         拥有共同父元素的元素

源码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      /* 需求一:为超市div的子元素p设置一个字体颜色红色 */
      /* 1、子元素选择器
      作用:选中指定的父元素下面指定的子元素
      语法:父元素>子元素{}
      例如:div>p,.big>p,#big>p{}
      */
      #big > p {
        color: red;
      }
      /* 需求二:大超市div里的span元素字体都变为30px */
      /* 2、后代选择器
      作用:选中指定祖先元素下面指定的后代元素
      语法:祖先元素 后代元素{}
      例如:#big span{}
      */
      #big span {
        font-size: 30px;
      }
      /* 需求三:选择下一个兄弟(仅挨着我的),选中生鲜区下面兄弟衣帽区,加个背景色*/
      /* 3、 选择下一个兄弟(仅挨着我的)选择器
      作用:选择下一个兄弟
      语法:兄+弟{}
      */
      .sx + div {
        background-color: green;
      }
      /* 需求四:选择下面所有的兄弟(前面的不选)
      通过衣帽区选中,零食区、酒水区
      */
      /* 4、选择下面所有的兄弟(前面的不选)
      语法:兄~弟{}
      */
      .ym~p{
        background-color: hotpink;
      }
    </style>
  </head>
  <body>
    <div id="big">
      大超市
      <p class="sx">生鲜区</p>
      <div class="ym">
        衣帽区
        <span>上衣
          <em>男上衣</em>
          <em>女上衣</em>
        </span>
        <span>裤子</span>
        <span>帽子</span>
      </div>
      <p>零食区</p>
      <p>酒水区</p>
    </div>
    <div>
      <p>烟酒区</p>
      <p>饮料</p>
      小超市
    </div>
  </body>
</html>

上述源码中的注释有选择器用法和对应的需求案例,大家一定要注意看,自己再手打练习一遍

运行结果展示:

 三、属性选择器

属性选择器

            语法:[属性名]{} 选择含有指定属性的元素

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

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

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

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

源码展示:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>属性选择器</title>
    <style>
      /* 需求一:有title属性的p标签,颜色变为红色 */
      /* 1:属性选择器
            语法:[属性名]{} 选择含有指定属性的元素
                 [属性名=属性值]{} 选择含有指定属性和属性值的元素
                 [属性名^=属性值]{} 选择属性值以指定值开头的元素  
                 [属性名$=属性值]{} 选择属性值以指定值结尾的元素
                 [属性名*=属性值]{} 选择属性值含有某值的元素
    */
    /* [title]{
      color: red;
    } */
    /* [class=ab]{
      color: red;
    } */
    /* [title^=a]{
      color: red;
    } */
    /* [title$=ab]{
      color: red;
    } */

    [title*=abc]{
      color: red;
    }
    </style>
  </head>
  <body>
    <h1 title="a" id="abcd" class="ab" >满江红·写怀</h1>
    <h3 title="ab">岳飞·宋</h3>
    <p>····</p>
    <p title="abc" class="abc">靖康耻,犹未雪。臣子恨,何时灭!</p>
    <p title="abcdab">驾长车,踏破贺兰山缺。</p>
    <p>壮志饥餐胡虏肉,笑谈渴饮匈奴血。</p>
    <p>待从头、收拾旧山河,朝天阙。</p>
  </body>
</html>

上述代码中,大家可以把我注释的代码注释一个一个去掉,看一看效果,都与上面所说的语法一一对应

运行结果展示:

 四、伪类选择器

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

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

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

          特点:一般请情况下,使用:开头

             1、 :first-child  第一个子元素

             2、 :last-child   最后一个子元素

             3、 :nth-child()  选中第n个子元素

                   特殊值: n    所有的

                          2n或even  选中偶数

                          2n+1或odd  选中奇数

          以上这些伪类都是根据所有的子元素进行排序

             1、:first-of-type

             2、:last-of-type

             3、:nth-of-type()

           功能跟上面相似,不同的是,这是在同类型的子元素中去选择

二、:not() 否定伪类

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

源码展示:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      /* 需求一:将ul里的第一个li自动一直设置为红色 */
      
           /* ul>li:first-child{
             color: red;
           } */
           /* ul>li:last-child{
             color: red;
           } */
           /* ul>li:nth-child(n){
             color: red;
           } */
           /* ul>li:nth-child(2n){
             color: red;
           } */
           /* ul>li:nth-child(2n+1){
             color: red;
           } */

           /* li:first-of-type{
             color: red;
           } */
           /* li:last-of-type{
             color: red;
           } */
           /* li:nth-of-type(n){
             color: red;
           } */
           /* li:nth-of-type(2n){
             color: red;
           } */
           /* li:nth-of-type(2n+1){
             color: red;
           } */

           li:not(.l1){
             color: red;
           }

    </style>
  </head>
  <body>
    <h1>沁园春·雪</h1>
    <ul>
      <!-- <span>测试</span> -->
      <p>北国风光,千里冰封,万里雪飘。</p>
      <li class="l1">望长城内外,惟余莽莽;大河上下,顿失滔滔。</li>
      <li>山舞银蛇,原驰蜡象,欲与天公试比高。</li>
      <li>须晴日,看红装素裹,分外妖娆。</li>
      <li>江山如此多娇,引无数英雄竞折腰。</li>
      <li>惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。</li>
      <li>一代天骄,成吉思汗,只识弯弓射大雕。</li>
    </ul>
  </body>
</html>

 同样的,大家讲我的注释代码去掉注释,挨个试一试效果

运行结果展示:(这部分结果挨个截图太多了,大家看着也不舒服,可以把上面源码copy下来,自己挨个试一下,帮助理解,这里我只截最后一个 not()否定伪类结果

(PS:今天给大家用大篇代码展示的方式学习这四种选择器,原因就是为了让大家理解,因为我截部分代码的话,大家看不到前后,很难理解,代码放在上面只是给大家参考效果使用,大家一定要自己动手敲出来试一试,这样才能加深理解)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值