细数CSS属性之 :focus-within

59 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

CSS :focus-within伪类选择器和IE8就开始支持的:focus可以说是近亲,区别在于:focus表示当前元素处于focus状态的时候干嘛,而:focus-within表示当前元素或者当前元素的子元素处于focus状态的时候干嘛(选择一个包含具有:focus 的任何子元素的元素)。

举个栗子

form:focus {
  background-color: beige;
}

表示仅仅当<form>处于focus状态时候,backgroundbeige

form:focus-within {
  background-color: beige;
}

表示<form>元素自身,或者<form>内部的子元素处于focus状态时候,backgroundbeige。换句话说,子元素focus,可以让任意父级元素样式发生变化。

可以根据子元素的状态来改变父元素的样,根据这个属性我们可以用这个属性来丰富我们的交互场景。

图片

各个浏览器兼容性

兼容更新时间 【2022-12-06】

image.png