有趣且重要的css知识合集(8)知道子元素,如何修改父元素样式?

本文介绍了CSS中的`:has`伪类如何用于修改父元素样式,通过实例展示其实用性,并指出Sass中的`@at-root`不能实现类似功能,因为它将样式规则放在了文件顶级而非父选择器中。
摘要由CSDN通过智能技术生成

在日常开发中,我们知道子元素样式名,但是想修改父元素的样式,怎么办呢?其实css已经提供了这个方法

:has

官方描述:表示一个元素,如果作为参数传递的任何相对选择器在锚定到该元素时,至少匹配一个元素。这个伪类通过把可容错相对选择器列表作为参数,提供了一种针对引用元素选择父元素或者先前的兄弟元素的方法。

我的理解:其实简单点,就好比下面这个例子,父元素类型是div,然后它的直接子节点是 child,那么就修改它的样式为display: block;

div:has(> .child) {
    display: block;
}

其实has内部可以根据你自己的需求来定义,它本身是伪类,当然可以和 :is, :not其他伪类一起搭配使用 

当然有些童鞋好奇,sass中的@at-root 能否修改父元素样式

 答案是不能,因为@at-root是将一个或多个样式规则生成在样式文件根层级上,而不是嵌套在其父选择器中,意思是 在sass/scss文件中,还是以前嵌套写法,但最后生成css样式文件时,会将@at-root 后面的样式 提到最高层级去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值