前端疑难困惑小笔记-5 CSS3中的nth-child(n) 选择器 用案例把知识点分析得明明白白~

选择器作用

nth-child(n)选择器的作用:
nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型

2021-9-16前来填坑
并不是人家例子给的不好 是我当时太蠢 没看清是 父元素!

n 可以是一个数字,一个关键字,或者一个公式。

W3school给的例子

<!DOCTYPE html>
<html>
<head>
<style> 
p:nth-child(2)
{
background:#ff0000;
}
</style>
</head>
<body>

<h1>这是标题</h1>
<p>第一个段落。</p>
<p>第二个段落。</p>
<p>第三个段落。</p>
<p>第四个段落。</p>

<p><b>注释:</b>Internet Explorer 不支持 :nth-child() 选择器。</p>

</body>
</html>

正好 n=2的时候 标记有红色的是p的第一个。也就是其父元素body的第二个元素 没毛病

在这里插入图片描述
这里 父元素body的第一个子元素 和
没有变化有点怪
在这里插入图片描述
试一下 h1:nth-child(1)
在这里插入图片描述
这样就可以了~

【2】奇数偶数

<!DOCTYPE html>
<html>
<head>
<style> 
//匹配所有奇数的子元素 也就是 第2 4 6 ....个子元素
p:nth-child(odd)
{
background:pink;
}
//匹配所有偶数的子元素 也就是第1 3 5 7...个子元素
p:nth-child(even)
{
background:skyblue;
}
</style>
</head>
<body>

<h1>p是父元素标签</h1>
//下面是父元素的第1个子元素
<p>奇数 蓝色。</p>
//下面是父元素的第2个子元素
<p>偶数 粉色。</p>
//下面是父元素的第3个子元素
<p>奇数 蓝色。</p>
//下面是父元素的第4个子元素
<p>偶数 粉色。</p>

<p><b>注释:</b>Internet Explorer 不支持 :nth-child() 选择器。</p>

</body>
</html>

在这里插入图片描述

这里依旧是 标题木有反应 emmm
在这里插入图片描述
改了一下 h1:nth-child(odd) 结果变成只有标题有颜色了。

【3】带计数器n的简单表达式
来 我们摆脱W3school的例子
设想这样一个情景
我们有四个盒子
如果我们想在前三个盒子后面增添一个小元素(比如说竖杠)最后一个盒子并不需要这个小元素
我们需要怎么去做呢?

<li><img src="upload/recom_01.jpg" alt="1号背景图"></li>
<li><img src="upload/recom_02.jpg" alt="2号背景图"></li>
<li><img src="upload/recom_03.jpg" alt="3号背景图"></li>
<li><img src="upload/recom_04.jpg" alt="4号背景图"></li>
.recom_bd ul li:nth-child(-n+3)::after {
    /* 子绝父相 */
    position: absolute;
    content: '';
    /* 用定位让它压住其他盒子 */
    right: 0;
    top: 10px;
    width: 1px;
    height: 145px;
    background-color: #ddd;
}

我们使用了公式 (an + b)。
其中,a代表一个循环的大小,n 是计数器(从 0 开始),b 是偏移值。
本例中

ul li:nth-child(-n+3)::after

a=-1 说明循环是倒着进行的 从第3个元素开始

这里n=3就是改变第三个标签元素的属性啦!
因为我们的li标签外面是套了一个盒子的哦!
在这里插入图片描述

可以看到 效果达到了~
只有第四个图片后面没有竖线
在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值