在 TailwindCSS 中将响应式类串在一起

Posted

技术标签:

【中文标题】在 TailwindCSS 中将响应式类串在一起【英文标题】:String together responsive classes in TailwindCSS 【发布时间】:2020-06-19 09:10:06 【问题描述】:

我一直在尝试用谷歌搜索这个,但我要么没有使用正确的术语,要么还没有人问过我的问题。

问题:有没有办法在 TailwindCSS 中堆叠响应式类?我想做的是改变类似的东西:

class="grid gap-12 md:grid-cols-2 md:col-gap-12 md:py-16 lg:grid-cols-3 lg:py-12"

更像是:

class="grid gap-12 md:grid-cols-2:col-gap-12:py-16 lg:grid-cols-3:py-12"

我意识到它并没有减少那么多的行长,但对我来说,将响应式类分组在一起似乎更理智一些。我是 TailwindCSS 的新手,只是想问问这是否可能。

【问题讨论】:

【参考方案1】:

简单的回答是否定的,这在Tailwind.css 中是不可能的。

唯一可行的方法是creating the classes yourself 或建议on their github。

【讨论】:

【参考方案2】:

为此,tailwind CSS 文件必须定义一个md:grid-cols-2:col-gap-12:py-1 类。它还必须为每个断点生成所有其他可能的排列(最多任意最大数量的组合实用程序)。 md 已经有 2877 个类,所以一旦你开始组合它们,这将很快变得很大。仅考虑您在此处使用的最多 3 个实用程序将导致 md 的大约 2400 万个排列,而其他断点的排列相同,所以我认为这不切实际。

【讨论】:

【参考方案3】:

这实际上是在Windi.css 中解决的问题,您可以使用这样的组变体:

text-blue md:text-green lg:(p-2 m-2 text-red-400)

目前,顺风似乎没有添加这个,但如果他们不尽快这样做,我会感到非常惊讶。能够设置断点确实有助于保持类列表整洁......尤其是当顺风可能导致一些长长的列表时。

如果有机会,请查看 Windi,这是一个很好的项目,但我确实认为 Tailwind 很快就会推出他们的大部分(好)功能。

【讨论】:

【参考方案4】:

帮助我实现这一目标的另一件事是使用screen 指令。

https://tailwindcss.com/docs/functions-and-directives#screen

@media screen(md) 
    /* css to be overriden for >md screens */ 


或者,

@screen md 
    /* css to be overriden for >md screens */

这样,响应式设计不会使独立的 css 杂乱无章。但是找不到内联样式的方法。

【讨论】:

以上是关于在 TailwindCSS 中将响应式类串在一起的主要内容,如果未能解决你的问题,请参考以下文章

Python响应式类库RxPy简介

vnpy源码阅读学习:串在一起

bzoj 5496

TailwindCSS 版式响应变体不包括扩展类选择器

将由输入文件确定的多个相同字符串(星号)串在一起。 C++

带有tailwindcss的字体很棒的响应式大小