css 获取前后同级兄弟元素的方法

7 篇文章 0 订阅

需求

通过 css 选择器获取一个元素前面或者后面的同级兄弟元素。

代码

获取后面的兄弟元素相较于获取前面的兄弟元素来说更简单点,这是浏览器 流布局 所决定的(元素从上到下,同一行内从左到右进行渲染),但是当 :has 选择器出现后就可以实现了(下面会具体介绍),所以先介绍获取后面兄弟元素的方法:

一、获取后面同级的兄弟元素的方法:

1、相邻兄弟选择器

获取后面符合条件的第一个元素

<div class="c1"></div>
<div class="c2"></div>
<div class="c3"></div>

.c1 + .c2{  //获取紧接在 c1 后类名为 c2 的第一个元素
	background:red; 
}
2、通用兄弟选择器

获取后面符合条件的所有元素

<div class="c1"></div>
<p class="c2"></p>
<p class="c3"></p>

.c1 ~ p{  //获取 c1 后的所有 p 标签元素
	background:red; 
}

二、获取前面同级的兄弟元素

通过使用 :has 选择器来实现,:has() 选择器用于获取符合括号内元素条件的父级元素

<div class="parent" style="width:100px;height:200px;background:red;">
	<div class="c1" style="width:100px;height:20px;">1</div>
	<div class="c2" style="width:100px;height:20px;">2</div>
	<div class="c3" style="width:100px;height:20px;">3</div>
	<div class="c4" style="width:100px;height:20px;">4</div>
	<div class="c5" style="width:100px;height:20px;">5</div>
	<div class="c6" style="width:100px;height:20px;">6</div>
</div>

.parent:has(.c6)>div:first-child{ //获取c1元素
	background: yellow;
}

.parent:has(.c6)>div:nth-child(1){ //获取c1元素
	background: yellow;
}

效果:
在这里插入图片描述

上方表达式的意思是,先通过 :has 获取包含类名为 c6 的子元素且自身类名为 parent 的元素,即上方代码的最外层元素。再根据该最外层元素结合获取第几个子元素的选择器(如::first-child、:last-child、:nth-child(n)等)即可实现获取元素前面的同级兄弟元素(上方代码就是获取了 c6 前的 c1 元素)。

有其他方法的朋友欢迎指教。

👇觉得有帮助的朋友可以支持下作者哦,您的鼓励是我创作的最大动力,如有开发问题可联系作者
请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值