CSS 子元素满足某个条件如何改变父元素样式?
· 6 min read
input:checked 改成父元素边框高亮、img 存在时父容器切两栏布局、表单校验状态动态联动——以前这些都需要 JS 去监听子元素状态再回头改父元素。:has() 的出现,把"子元素状态驱动父元素样式"这件事直接搬进了 CSS。
- 核心能力:
:has()是名副其实的父选择器,根据子元素/后代/兄弟的状态反向匹配父元素或前面的兄弟。 - 浏览器覆盖
input:checked 改成父元素边框高亮、img 存在时父容器切两栏布局、表单校验状态动态联动——以前这些都需要 JS 去监听子元素状态再回头改父元素。:has() 的出现,把"子元素状态驱动父元素样式"这件事直接搬进了 CSS。
:has() 是名副其实的父选择器,根据子元素/后代/兄弟的状态反向匹配父元素或前面的兄弟。