关于结构伪类选择器 :nth-child() 和 :nth-of-type()

不知道怎么说,直接看例子 作对比就明白了
:nth-child(n) 从父元素中选取符合条件的子元素,n可以是数字,关键词,公式
:nth-of-type(n) 从父元素中选择符合条件的指定类型的子元素,n可以是数字,关键词,公式

基本代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
     <style>
     /* 效果1 */
     p:nth-child(-n+3){
          background-color: #f00;
     }
     /* 效果2 */
     body p:nth-child(-n+3){
            background-color: #f00;
     }
     /* 效果3 */
     body :nth-child(-n+3){
          background-color: #f00;
     }
     /* 效果4 */
     p:nth-of-type(-n+3){
          background-color: #f00;
     }
     /* 效果5 */
     body p:nth-of-type(-n+3){
          background-color: #f00;
     }
     /* 效果6 */
     body :nth-of-type(-n+3){
          background-color: #f00;
     }
  </style>
</head>
<body>
    <h1>这是h1</h1>
    <h2>这是h2</h2>
    <p>这是p1</p>
    <p>这是p2</p>
    <p>这是p3</p>
    <p>这是p4</p>
    <span>span 1</span>
    <span>span 2</span>
    <span>span 3</span>
    <span>span 4</span>
    <div>div 1</div>
    <div>div 2</div>
    <div>div 3</div>
    <div>div 4</div>    
</body>
</html>

六种效果如下:

compare.jpg
  1. p:nth-child(-n+3) 选择的是 p 的父元素的前三个元素里面是 p 的元素
  1. body p:nth-child(-n+3) 的效果跟 p:nth-child(-n+3) 一样 (即:加不加父元素效果一样)
  2. 没有限定条件p的话,选择的是父元素的前三个元素
  3. p:nth-child(-n+3) 选择的是 p 的父元素的前三个 p 元素
  4. body p:nth-child(-n+3) 的效果跟 p:nth-child(-n+3) 一样
  5. body :nth-child(-n+3)的效果是选择body里面所有类型的前三个
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容