CSS3新增的has伪类选择器,让你能轻松选择父元素

简介: CSS3新增的has伪类选择器,让你能轻松选择父元素

CSS现在新增了一个允许我们选择父元素的伪类:has选择器。可以将其当做父级选择器。

一、语法
选择器1:has(选择器2){
}
/*
表示选择包含有选择器2的所有的选择器1
比如:*/
div:has(p) {
  background: black;
}

以上表示选择包含了img元素的所有的div标签,对应的HTML结构如下:

<div>
    <p>这里是p元素,但是选择的是div标签</p>
</div>

注意:以上结构div和p标签不一定是父子关系,只要是包含关系即可,如下面的也可以选中div:

<div>
    <section>
        <p>这里是p元素,但是选择的是div标签</p>
    </section>
</div>
二、链式操作

可以包含多个指定的选择器来作为过滤:

选择器1:has(选择器2):has(选择器3){
}
/* 
以上表示选择包含了选择器2和选择器3的所有的选择器1
比如:*/
div:has(p):has(#box) {
  background: green;
}

表示选择了所有的div元素,但是该div要包含有p标签和#box的元素。

对应的结构应该是这样:

<div>
    <section>
        <p>这里是p元素,但是选择的是div标签</p>
    </section>
    <div id='box'>
        box元素
    </div>
</div>
三、兼容性问题

尽管has选择器已经作为标准列入w3c中,但是大部分浏览器不支持。

它能支持在谷歌105版本及以上,火狐目前都不支持。

可以点击这里 https://caniuse.com/?search=has 查看兼容性。

如果你对web前端开发、面试感兴趣的话可以加V:imqdcnn。群里有各种学习资源发放,免费答疑,更有行业深潜多年的技术牛人分析讲解。

祝你能成为一名优秀的WEB前端开发工程师!

相关文章
|
23天前
|
XML 前端开发 数据格式
css核心组成部分包括选择器、属性和值。
【4月更文挑战第5天】css核心组成部分包括选择器、属性和值。
18 7
|
1月前
|
前端开发 JavaScript
css之伪类hover改变自身、子元素、其他元素的样式
css之伪类hover改变自身、子元素、其他元素的样式
28 0
|
1月前
|
前端开发 算法
CSS 选择器的优先级算法
在CSS中,选择器的优先级由四个级别和各级别的出现次数决定**。这四个级别分别为:行内选择符、ID选择符、类别选择符、元素选择符,优先级依次降低。
|
1月前
|
前端开发
CSS语言的选择器
CSS语言的选择器
|
1月前
|
前端开发
web前端开发---CSS基础选择器
web前端开发---CSS基础选择器
20 1
|
13天前
|
移动开发 前端开发 JavaScript
CSS选择器 前端开发入门笔记(十)
CSS选择器 前端开发入门笔记(十)
19 1
|
25天前
|
前端开发
css伪类伪元素都有哪些区别是什么
css伪类伪元素都有哪些区别是什么
9 0
N..
|
1月前
|
前端开发 UED
CSS选择器
CSS选择器
N..
9 0
N..
|
1月前
|
前端开发 UED
CSS伪类和伪元素
CSS伪类和伪元素
N..
7 0
|
1月前
|
前端开发
css选择器
css选择器【2月更文挑战第26天】
25 12