CSS中能通过子元素选父元素吗,怎么做
Admin 2022-05-24 群英技术资讯 2637 次浏览
通常一个CSS选择器都是从上往下选择的,通过父元素选择子元素,那么能不能通过子元素选择父元素呢?
<ul> <li> <a href="#" class="active">1</a> </li> <li> <a href="#">2</a> </li> </ul>
如果我想选择包含 a.active 的 li 该怎么实现呢? 目前我们学到的CSS好像是没有办法的,不过今天要将的一个CSS伪类 :has() 就有这个功能,虽然还处于草案阶段,但是还是可以提前了解一下。
li:has(> a.active){ color:red; }
除了表示包含,:has 还可以表示兄弟跟随关系
div:has(+ p){ color:red; }
表示选择 <div> 标签,前提是这个div标签必须是被一个<p>紧跟着的。此外还可以与:not 一起使用
article:not(:has(a)){ color:red; }
表示不包含 <a> 的 <article>标签。注意这里 :not 和 :has 的先后顺序,不同顺序代表不同的意思
article:has(:not(a)){ color:red; }
表示包含非 <a> 的 <article>标签
其实我们前面讲过的 :focus-within 也是一个通过子元素选择父元素的伪类,只不过条件只能是子元素是否获取焦点, 而 :has 则更灵活和强大。
form:focus-within{ background-color:black; }
如果通过 :has 实现的话, 可以这样写
form:has(:focus){ background-color:black; }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在css中,点击隐藏的代码为“元素:active{opacity:0;}”;“:active”选择器用于选择元素被点击时的状态并设置样式,opacity属性用于设置元素的不透明级别,也就是当点击元素时,元素隐藏不显示。
flex-grow指扩展flex子项所占据的宽度,扩展的空间就是除去元素外剩余的空白间隙。不支持负值,默认值是0,表示不占用剩余的空白间隙扩展自己的宽度。
这篇文章主要介绍了CSS3 创建网页动画实现弹跳球动效果,需要的朋友可以参考下
这篇文章主要介绍了前端实现背景虚化但内容清晰且自适应 的实例代码,需要的朋友可以参考下
我们在做前端网页开发的时候,往往会用到圆角效果。实现圆角的方式有很多,这篇文章就主要介绍用Sprites技术来实现圆角效果。感兴趣的朋友就继续往下看吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008