背景
最近从网上看到一个有趣的CSS应用,就是纯用CSS也能是父子树展示,具体效果如下:
-
目录节点1
-
节点1
- 子节点1-1
- 子节点1-2
-
节点2
- 子节点2-1
- 子节点2-2
-
然后里面关联到一篇新闻,就是:has
伪元素的出现会给CSS带来极大的变动,这是为什么,不就是一个CSS伪元素吗?因此去了解一下,才发现这个伪元素确实不一样,主要有以下几点:
- 可以选择父级元素,
a:has(> img)
,包含img元素
的a元素
- 可以选择兄弟元素,
h1:has(+ p)
,后面为p元素
的h1元素
为什么有了它之后,CSS会有大变动,因为以往我们的样式都是直接选择 元素 或者 子元素 或者 后面的元素,如果要选择父元素或前面的元素只能通过命名规范去确定,比如上述两个例子:
a:has(> img)
,我们只能通过a.has-img
类似样式去命名h1:has(+ p)
,只能通过h1.next-p
类似样式去命名
大概清楚它能带来的变化,接下来我们来详细了解一下它。
more >>