①CSS :focus-within 伪类选择器和 IE8 就开始支持的:focus 可以说是近亲,区别在于:focus 表示当前元素处于 focus 状态时候干嘛干嘛,而:focus-within 表示当前元素或者当前元素的子元素处于 focus 状态时候干嘛干嘛;
②要想让 Safari 浏览器下链接元素在点击后保持 focus 状态,可以是设置 tabindex="0",tabindex="0" 不会影响链接元素原本的索引顺序,千万不要设置 tabindex 属性为其他值;
③找到层级足够高的祖先元素(不能是元素,可以是子元素),然后设置 tabindex=-1,任意的非控件 HTML 元素在设置了 tabindex=-1 属性后,点击的时候是会有 focus 状态的。也就是点击空白区域,会把原本附着在链接上的焦点转移到祖先元素上,于是 blur 失焦就正常触发了;
(参考:www.zhangxinxu.com/wordpress/2…