美文网首页
css3新特性-新增选择器

css3新特性-新增选择器

作者: maomizone | 来源:发表于2022-04-11 19:12 被阅读0次

类选择器,属性选择器,伪类选择器权重为10

伪元素选择器,标签选择器权重为1

1.属性选择器

<style>
      /*匹配input标签,并且有value属性*/
      input[value] {
        color: pink;
      }
      /*匹配input标签,必须有type属性,并且值等于password*/
      /*权重为1 + 10 = 11*/
      input[type=password] {
        color: blue;
      }
</style>
<body>
    <input type="text" value="请输入用户名" />
    <input type="text" />
    <input type="password" />
</body>

2.结构伪类选择器

<style>
      /*匹配父元素中的第一个子元素*/
      ul:first-child {
      color: pink;
      }
      /*匹配父元素中的第一个li子元素*/
      ul li:first-child {
      color: pink;
      }
      /*匹配父元素中的最后一个li子元素*/
      ul li:last-child {
      color: red;
      }
      /*匹配父元素中的第n个li子元素,n从1开始计算*/
      ul li:nth-child(5) {
      color: blue;
      }
      /*匹配父元素中的偶数li子元素,公式的n从0开始计算*/
      ul li:nth-child(even or 2n) {
      color: blue;
      }
      /*匹配父元素中的奇数li子元素,公式的n从0开始计算*/
      ul li:nth-child(odd or 2n+1) {
      color: blue;
      }
      /*匹配父元素中的所有li子元素,公式的n从0开始计算*/
      ul li:nth-child(n) {
      color: blue;
      }
</style>
<body>
    <ul>
      <li>第1个孩子</li>
      <li>第2个孩子</li>
      <li>第3个孩子</li>
      <li>第4个孩子</li>
      <li>第5个孩子</li>
      <li>第6个孩子</li>
      <li>第7个孩子</li>
      <li>第8个孩子</li>
    </ul>
</body>

在无序列表用nth-of-type匹配效果会更好

<style>
      /*first-child会首先找section的第一个子元素,发现是光头强,接着再看它是不是div,发现不是,就不会匹配*/
      section div:first-child {
        color: pink;
      }
      /*first-of-type会先看section的div,并且对其进行排序,符合条件的第一个子元素为熊大,可以匹配成功*/
      section div:first-of-type {
        color: pink;
      }
      section div:last-of-type {
        color: red;
      }
      /*n的参数使用同上*/
      section div:nth-of-type(2) {
        color: blue;
      }

</style>
<body>
    <section>
      <p>光头强</p>
      <div>熊大</div>
      <div>熊二</div>
      <div>佩奇</div>
    </section>
</body>

1.伪元素选择器
// 在DOM树中找不到这个新创建的元素
// 语法:element::before element::after
// 必须有content属性

<style>
      .box {
        width: 200px;
        height: 200px;
        background-color: pink;
      }
      /*box创建一个元素*/
      .box::before {
        content: "我";
      }
      .box::after {
        content: "小猪佩奇";
      }
</style>
<body>
  <div class="box">是</div>
</body>

相关文章

网友评论

      本文标题:css3新特性-新增选择器

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