CSS :has 的不可否认的实用性 : Josh W. Comeau

主要观点:CSS 世界近期很火热,各浏览器厂商和规范作者推出很多新特性,如:has伪类。作者用:has重构博客,发现其很实用,尤其在 CSS-in-JS 环境中。并介绍:has的基本用法、浏览器支持情况、基于状态的样式应用、全局检测、无需 JavaScript 的暗模式等方面,还探讨了其局限性及在不同场景下的使用。
关键信息

  • :has以“自下而上”方式工作,可根据子元素样式父元素。
  • 四大浏览器从特定版本开始支持:has,目前约 92%支持。
  • 可通过@supports进行特性检测,提供 fallback CSS。
  • 利用:has可根据按钮状态为父元素添加轮廓,解决键盘导航问题。
  • 可使用:has结合其他伪类实现各种条件样式,如自定义表单控制。
  • 能将:has作为全局事件监听器,如控制模态框滚动。
  • 可利用:has创建无需 JavaScript 的暗模式切换。
  • :has可突破传统 CSS 选择器的限制,选择任意元素。
  • :has强大,但在某些复杂场景下用 JavaScript 实现更简单。
    重要细节
  • 在不同示例中展示了:has在各种场景下的具体用法,如在“About Josh”页面的布局、自定义表单控制、模态框滚动控制等。
  • 提到@supports的工作原理及如何使用最小有效:has选择器。
  • 列举了一些关于:has的资源。
  • 说明:has的局限性及在实际应用中的权衡。
阅读 14
0 条评论