7.12 CSS选择器

今天学习了css的一些选择器,做了些总结

选择器及其优先级

一、常用选择器

我们常用的选择器有标签选择器、id选择器、class选择器,其对应的语法分别为标签名{}、#id

属性值{}、.class属性值{}。

二、组合选择器

 组合选择器: 两个或两个以上的选择器配合使用

        后代选择器: 选择器1 选择器2{}   .item span{}   选中类名为item的标签的后代span标签    (组                                合选择器 确定通过什么选择器去限定范围)

        子代选择器: 选择器1 > 选择器2{}  .item > span{} 选中类名为item的标签的子标签span标签

        毗邻选择器: 选择器1 + 选择器2{}  .text + p{} 选中类名为text的标签的下一个标签p标签

        兄弟选择器: 选择器1 ~ 选择器2{} .text ~ p{} 选中类名为text的标签的下面的所有兄弟标签中                                的p标签

        多元素选择器: 选择器1,选择器2{}  body,ul{样式} body{样式}和ul{样式}  

        交集选择器: 选择器1选择器2{} 既要满足选择器1又要满足选择器2 的标签

        比如:p.wrap 选择有类名为wrap的p标签

                  .wrap.box 选择既有类名wrap又要类名box的标签

三、选择器的权重

  组合选择器 如何判断 优先级

  id > class > 标签名

  存在id  id选择器个数越多 优先级越高  

  id选择器个数一致 再看class选择器个数 class选择器个数越多 优先级越高

  当id和class选择器个数都一致 比较标签选择器 签选择多的 优先级越高

  当所有个数都一致时 优先级一样 下面覆盖上面

  再控制台里的styles内 先后排名顺序

  1. element.style{} 行内样式

  2. 组合选择器/基础选择器  按照优先级排序 优先级一样 按照先后顺序排序 后来居上

  3. 默认css

  4. 继承来的css

<!DOCTYPE html>
<html>
<!--根标签-->

<head>
  <!--不可视区域-->
  <meta charset='UTF-8'>
  <!--国际编码-->
  <meta name='Keyword' content='关键字'>
  <meta name='Description' content='描述'>
  <title>demo</title>
  <style>
    #wrap1 .box2 .box4 .box5{
      color: red;
    }

    span#txt.text{
      color: blue;
    }
    span{color:red;}
    span{color:blue;}

    ul{
      color:red;
    }

    a{
      color:green;
    }
  </style>
</head>


<body>
  <div class="box1" id="wrap1">
    <div class="box2">
      <div class="box3">
        <div class="box4">
          <div class="box5">
            <span class="text" id="txt">看我的颜色 决定权重</span>
          </div>
        </div>
      </div>
    </div>
  </div>

  <ul>
    <li>
      <p>123</p>
    </li>
  </ul>


  <p><a href=""> 我是a标签 </a></p>
</body>

</html>

 四、css选择器优先级

      id选择器 > class选择器 > 标签名选择器 > *(全部标签都可以选中)

      选择范围 越小 优先级越高 

      优先级一样时 下面的相同css覆盖上面的相同css

<!DOCTYPE html>
<html>
<!--根标签-->

<head>
  <!--不可视区域-->
  <meta charset='UTF-8'>
  <!--国际编码-->
  <meta name='Keyword' content='关键字'>
  <meta name='Description' content='描述'>
  <title>demo</title>
  <link rel="stylesheet" href="index.css">
  <style>
    /* #wrap {
      background-color: blue;
    } */

    .box {
      background-color: green;
      color: #fff;
    }

    /* div {
      background-color: red;
    }  */

    .box1 {
      background-color: yellow;
    }
  </style>
</head>

<body>

  <div class="box box1 box2" id="wrap"> 我身上是什么颜色 那么哪个选择器优先级就更高 </div>

  <!-- <p class="box">123</p> -->
</body>

</html>

五、结构性选择器

 结构性伪类选择器 :

          p:first-child  控制 父元素内 第一个子元素 并且要求这个元素必须是p 不是p就控制不到

          p:last-child  控制 父元素内 倒数第一个子元素 并且要求这个元素必须是p 不是p就控制不到

          p:nth-child(3) 控制 父元素内 第三个子元素 并且要求这个元素必须是p 不是p就控制不到

          p:nth-last-child(3) 控制 父元素内 倒数第三个子元素 并且要求这个元素必须是p 不是p就控              制不到

          p:first-of-type 控制 父元素内 第一个p元素  

          p:last-of-type  控制 父元素内 倒数第一个p元素  

          p:nth-of-type(3) 控制 父元素内 第三个p元素  

          p:nth-last-of-type(3) 控制 父元素内 倒数第三个p元素  

          child 更加严格 适用于父元素内 标签种类一致的情况

          of-type  适用于父元素内 标签种类不一致的情况

         序号的其他写法  2n 偶数个(even)  2n-1 奇数项(odd)  3n 3的倍数项

          p:only-child 控制 父元素内唯一一个子元素 并且要求这个元素必须是p 不是p就控制不到

          p:only-of-type  控制 父元素内唯一一个p元素  

          p:not() 否定选择器 选择p但是 不要满足() 内条件的p  ()里面 就是选择器的写法

六、属性选择器

 属性选择器 :

        [属性]  [src]  [class] [id]  [name]{}

        [属性="属性值"]  [name='username']{}

        [attr*="value"]  元素必须有attr属性 并且属性值里 具有 value字段 (模糊匹配)

        [attr $= 'value'] 元素必须有attr属性 并且属性值里 以value字段结尾 (模糊匹配)

        [attr ^= 'value'] 元素必须有attr属性 并且属性值里 以value字段开头 (模糊匹配)

七、伪类选择器

 a相关的伪类

          :visited 链接被访问过时 (浏览器有缓存记录)

          :link   链接未被访问过时

          :active 被点击瞬间状态  

八、伪元素选择器

          :after 往元素内容最后 添加一个css创造的没有名字的伪元素(特性是行内特性)

          最常用的作用 : 清除浮动带来的高度塌陷问题

          小小小小的装饰 ==> 小边界线

        :before 往元素内容前面 添加一个css创造的没有名字的伪元素(特性是行内特性)

          小小小小的装饰

        p::first-letter 控制p元素内首字母

        p::first-line 控制p元素内第一行

        p::selection 控制鼠标选中文本部分

     注意: 伪类伪元素选择器的优先级 等同于一个class的优先级

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值