CSS层叠样式表-选择器

本文详细介绍了CSS中的序号选择器,包括first-child、last-child、nth-child(n)、nth-of-type(n)等,并探讨了CSS新增伪类,如:focus、:empty等,以及伪元素的用法,帮助读者掌握CSS更高级的样式控制技巧。

一、序号选择器

1.、first-child (表示第一个子元素)

例:

<style>

p:first-child{

color: red;

}

</style>

<div>

<p>序号选择器</p>

<p>序号选择器</p>

<p>序号选择器</p>

</div>

<div>

<h1>序号选择器</h1>

<p>序号选择器</p>

</div>

效果:

2、last-child(表示最后一个子元素)

例:

<style>

     p:last-child{

       color: red;

     }

    </style>

  <div>

    <p>序号选择器</p>

    <p>序号选择器</p>

    <p>序号选择器</p>

  </div>

  <div>

    <h1>序号选择器</h1>

    <p>序号选择器</p>

  </div>

效果:

3.nth-child(n)    (第几个子元素)

例:

 <style>

     p:nth-child(2){

       color: red;

     }

    </style>

  <div>

    <p>序号选择器</p>

    <p>序号选择器</p>

    <p>序号选择器</p>

  </div>

  <div>

    <h1>序号选择器</h1>

    <p>序号选择器</p>

  </div>

效果:

4.nth-of-type(n)   (同种标签指定序号的子元素)

例:

<style>

     p:nth-of-type(2){

       color: red;

     }

    </style>

  <div>

    <p>p标签1号</p>

    <p>p标签2号</p>

    <p>p标签3号</p>

  </div>

  <div>

    <h1>h1标签1号</h1>

    <p>p标签1号</p>

    <p>p标签号2</p>

  </div>

效果:

5.nth-last-child(n)  (倒数第几个子元素)

例:

<style>

     p:nth-last-child(2){

       color: red;

     }

    </style>

  <div>

    <p>序号选择器</p>

    <p>序号选择器</p>

    <p>序号选择器</p>

  </div>

  <div>

    <p>序号选择器</p>

    <h1>序号选择器</h1>

    <p>序号选择器</p>

  </div>

效果:

6.last-of-type     (当前同一类标签中的最后一个)

例:

<style>

     p:last-of-type{

       color: red;

     }

     h1:last-of-type{

       color: red;

     }

    </style>

  <div>

    <p>p标签第1个</p>

    <p>p标签第2个</p>

    <p>p标签最后一个</p>

  </div>

  <div>

    <p>p标签第1个</p>

    <p>p标签最后一个</p>

    <h1>h1标签最后一个</h1>

  </div>

效果:

7.nth-last-of-type(n)    (当前同一类标签中的倒数第几个)

例:

 <style>

     p:nth-last-of-type(2){

       color: red;

     }

    </style>

  <div>

    <p>p标签倒数第3个</p>

    <p>p标签倒数第2个</p>

    <p>p标签倒数第1个</p>

  </div>

  <div>

    <p>p标签倒数第2个</p>

    <p>p标签倒数第1个</p>

    <h1>h1标签倒数第一个</h1>

  </div>

效果:

8.first-of-type  (当前同一类标签中的第一个) 

例:

<style>

     p:first-of-type{

       color: red;

     }

    </style>

  <div>

    <p>p标签第1个</p>

    <p>p标签第2个</p>

    <p>p标签第3个</p>

  </div>

  <div>

    <p>p标签第1个</p>

    <p>p标签第2个</p>

    <h1>h1标签第1个</h1>

  </div>

效果:

9.nth-of-type(odd)   (是奇数项的子元素) 

例:

<style>

     p:nth-of-type(odd){

       color: red;

     }

    </style>

  <div>

    <p>奇数项</p>

    <p>偶数项</p>

    <p>奇数项</p>

    <p>偶数项</p>

    <p>奇数项</p>

    <p>偶数项</p>

  </div>

效果:

10. nth-of-type(even)       (是奇数项的子元素)

 例:

<style>

     p:nth-of-type(even){

       color: red;

     }

    </style>

  <div>

    <p>奇数项</p>

    <p>偶数项</p>

    <p>奇数项</p>

    <p>偶数项</p>

    <p>奇数项</p>

    <p>偶数项</p>

  </div>

效果:

11.nth-of-type(an+b)      (从b开始的每a个选一个)

例:

<style>

     p:nth-of-type(2n+3){

       color: red;

     }

    </style>

  <div>

    <p>p标签1</p>

    <p>p标签2</p>

    <p>p标签3</p>

    <p>p标签4</p>

    <p>p标签5</p>

    <p>p标签6</p>

  </div>

效果:

12.only-child     (唯一一个子元素) 

例:

<div>

    <p>p标签</p>

    <p>p标签</p>

    <p>p标签</p>

    <p>p标签</p>

    <p>p标签</p>

    <p>p标签</p>

    <h1>h1标签</h1>

  </div>

  <div>

    <p>p标签</p>

  </div>

效果:

13.only-of-type      (身为同一类标签是唯一一个)

例:

 <style>

     p:only-of-type{

       color: red;

     }

     h1:only-of-type{

       color: red;

     }

    </style>

  <div>

    <p>p标签</p>

    <p>p标签</p>

    <p>p标签</p>

    <p>p标签</p>

    <p>p标签</p>

    <p>p标签</p>

    <h1>h1标签</h1>

  </div>

  <div>

    <p>p标签</p>

  </div>

效果:

二、css新增伪类

1.:empty    (选择空标签,没有任何内容的标签,既没有文字,又没有子标签)

例:

<style>

      div:empty{

        border: 1px solid rgb(211, 10, 10);

        height: 30px;

        width: 100px;

      }

    </style>

  <div>

    <div>我是div</div>

    <div><span></span></div>

    <div></div>

  </div>

效果:

 

2.:focus       (聚焦,选择当前获得焦点的表单元素)

例:

<style>

      input:focus{

        border: 5px solid rgb(230, 10, 10);

      }

    </style>

  <form action="">

    用户名:<input type="text">

    密码:  <input type="password">

  </form>

效果:

3.:enabled      (选择当前有效的表单元素)

例:

<style>

      input:enabled{

        border: 5px solid rgb(230, 10, 10);

      }

    </style>

  <form action="">

    用户名:<input type="text">

    密码:  <input type="password">

  </form>

效果:

 

4.:disabled       (选择当前无效的表单元素)

例:

 <style>

      input:disabled{

        border: 5px solid rgb(230, 10, 10);

      }

    </style>

  <form action="">

    用户名:<input disabled type="text">

    密码:  <input type="password">

  </form>

效果:

 

5.:checked    (选中当前已经默认勾选的单选按钮或者复选框)

例:

 <style>

      input:checked{

        transform: scale(300%,300%);

      }

    </style>

  <form action="">

    <label for="">

      <input type="radio" name="sex"checked>男

    </label>

    <label for="">

      <input type="radio" name="sex">女

    </label>

    爱好:

    <input type="checkbox" name="hobby" id=""> 吃饭

    <input type="checkbox" name="hobby" id="" checked> 睡觉

    <input type="checkbox" name="hobby" id=""> 打豆豆

    <input type="checkbox" name="hobby" id="" checked> 玩游戏

  </form>

效果:

6.:root   (选择根元素,即html标签)

例:

<style>

      :root{

        color: green;

      }

    </style>

  <p>hello world</p>

  <h3>hello world</h3>

  <span>hello world</span>

效果:

 

三、伪元素

 1.::before与::after    (创建一个伪元素,其将成为匹配选中的元素的第一个或最后一个子元素,将内容填写在content="……"中。)

例:

<style>

     .a::after{

       content: "★";

       color: orange;

     }

     .b::before{

       content: "★";

       color: orange;

     }

    </style>

  <p class="a">我是p标签</p>

  <p class="b">我是p标签</p>

  <p>我是p标签</p>

效果:

 

2.::selection    (选中文档中被用户高亮的部分)

例:

p::selection{

       background-color: rgb(159, 222, 226);

     }

    </style>

 <p>

   我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签……

 </p>

效果:

 

3.::first-letter与::first-line   (::first-letter选中某元素中★必须是块级元素第一行的第一个字母或文字。 ::first-line选中某元素中★必须是块级元素第一行全部文字。)

例:

<style>

     .p1::first-letter{

       color: red;

     }

     .p2::first-line{

       color: paleturquoise;

     }

    </style>

 <p  class="p1">

   我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标………………

 </p>

 <p  class="p2">

  我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标签我是p标………………

</p>

效果:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值