使用属性选择器的响应式样式
基于类名的原子化样式的一个挑战在于,它通常依赖于特定断点来确定上下文。
<div></div> <div></div> <div></div>
登录后复制
通常使用前缀来定位每个断点:
<div></div>
登录后复制
这在添加多个类之前效果很好。但是当我们开始添加多个类时,就很难追踪哪些类与哪些断点相关,以及在哪里添加、删除或更改内容。
<div> </div>
登录后复制
登录后复制
登录后复制
我们可以尝试通过重新分组来提高可读性:
<div> </div>
登录后复制
登录后复制
登录后复制
我们还可以添加一些特殊的分割符(无效的类名将被忽略):
<div> </div>
登录后复制
登录后复制
登录后复制
但这仍然感觉很混乱,难以理解。
我们可以通过对属性选择器进行分组而不是实际的类来获得更好的概览并避免实现前缀:
<div data-lg="span-4 font-size-xl font-weight-700" data-md="span-6 font-size-xl font-weight-500" data-sm="span-12 font-size-lg"></div>
登录后复制
这些不是类的集合,而是一组空格分隔的属性,我们可以使用[attribute~="value"]
选择器来选择它们,其中~=
要求精确的单词出现在属性值中才能匹配。
@media (min-width: 0) { [data-sm~="span-1"] { /*...*/ } [data-sm~="span-2"] { /*...*/ } /* etc. */ } @media (min-width: 30rem) { [data-md~="span-1"] { /*...*/ } [data-md~="span-2"] { /*...*/ } /* etc. */ } @media (min-width: 60rem) { [data-lg~="span-1"] { /*...*/ } [data-lg~="span-2"] { /*...*/ } /* etc. */ }
登录后复制
这可能看起来有点奇怪,但我认为将原子类转换为属性相当简单(例如,.sm-span-1
转换为 [data-sm~="span-1"]
)。此外,属性选择器的特异性与类相同,因此我们不会损失任何东西。而且,与类不同,属性可以在不转义特殊字符(如 / .:?
)的情况下编写。
就是这样!再次强调,这只是一个想法,旨在使在媒体查询中切换声明更容易编写、阅读和管理。这绝对不是要取消类或类似内容的建议。
以上是使用属性选择器的响应式样式的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
Windows 11 KB5054979中的新功能以及如何解决更新问题
4 周前
By DDD
如何修复KB5055523无法在Windows 11中安装?
3 周前
By DDD
Inzoi:如何申请学校和大学
1 个月前
By DDD
如何修复KB5055518无法在Windows 10中安装?
3 周前
By DDD
在哪里可以找到Atomfall中的站点办公室钥匙
1 个月前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)