【发布时间】:2014-06-25 01:19:48
【问题描述】:
我觉得有一种方法可以创建一组更智能的实用程序类,然后我可以将<div class="margin-top-6"> 之类的类添加到 HTML 本身的标签中,LESS 将能够使用它运行并应用一个 CSS 规则,将在该元素的顶部添加 6px 的边距。
这可能吗?
我非常相信更聪明地工作而不是更努力地工作,但现在我有一个疯狂的笨拙,感觉如果有更多的 LESS 知识,它可能会更聪明。
所以我想知道是否有更好的东西。这是我所拥有的填充部分的示例。完整的代码重复如下,每个类集最多 25px,但如果限制完全灵活的设置会很棒。我在想一些带有变量或混合的东西,或者你会有一个看起来像 .padding-@var1-@var2 的 LESS 规则的东西,然后检查 vars 是否存在,如果存在,它们是什么,然后......等等。
少
.padding {
&-1 { padding: 1px !important; }
&-2 { padding: 2px !important; }
&-3 { padding: 3px !important; }
&-...
&-height-1 { padding-top: 1px !important; padding-bottom: 1px !important; }
&-height-2 { padding-top: 2px !important; padding-bottom: 2px !important; }
&-height-3 { padding-top: 3px !important; padding-bottom: 3px !important; }
&-...
&-top-1 { padding-top: 1px !important; }
&-top-2 { padding-top: 2px !important; }
&-top-3 { padding-top: 3px !important; }
&-...
&-bottom-1 { padding-bottom: 1px !important; }
&-bottom-2 { padding-bottom: 2px !important; }
&-bottom-3 { padding-bottom: 3px !important; }
&-...
&-width-1 { padding-right: 1px !important; padding-left: 1px !important; }
&-width-2 { padding-right: 2px !important; padding-left: 2px !important; }
&-width-3 { padding-right: 3px !important; padding-left: 3px !important; }
&-...
&-right-1 { padding-right: 1px !important; }
&-right-2 { padding-right: 2px !important; }
&-right-3 { padding-right: 3px !important; }
&-...
&-left-1 { padding-left: 1px !important; }
&-left-2 { padding-left: 2px !important; }
&-left-3 { padding-left: 3px !important; }
&-...
}
HTML 用途:
<div class="listItem margin-top-6 padding-width-14">
...content here...
</div>
有什么想法吗?
非常感谢大家的时间和想法!
【问题讨论】:
-
好吧,将这种东西(即各种大小,尤其是像素)硬编码到 HTML 类中几乎不是“更智能”的实用程序类。事实上,它是一个纯 CSS 反模式。 (好吧,您可能有一些 Bootstrap "col-md-6" 等作为示例,但它更像是一个例外 - 在它被发明时只有 no 其他方法可以做到这一点) .
-
将所有这些转换为loops 是没有问题的(因此只需两三行Less 代码就可以生成数千个这样的类)。但是...不,说真的,您不会为每个可能的 CSS 属性和每个可能的值都提供一个专用类,是吗?
-
毕竟,如果您需要将您的尺寸硬编码为 HTML,您可以使用初始的普通 HTML 语法:
<div class="listItem" style="margin-top: 6px; padding-left: 14px">,这种方法中没有 CSS 的空间。 -
我回答你的问题了吗?
-
ALL:我同意你的观点,它实际上并不“更聪明”。我认为自己是一位资深的 CSS 纯粹主义者,而这将与这种纯粹性相反。我一直被纯程序员和他们对内联样式的不懈实践所诱惑。在喝那个 koolaid 的时候,我想创建“帮助类”,这样他们就可以以一种“更聪明”更简单的方式继续他们的方式。对于这个问题的所有伟大和建设性的回答,你们都帮助我重新关注分离形式、功能和风格的重要性……我感谢你们。我已经相应地放弃了这种方法。