内容简介:翻译自:https://stackoverflow.com/questions/19736971/css-rule-for-classes-with-number-greater-than
我的样式表看起来像这样:
.thing-1 { background-image: url('top.png'); } .thing-2 { background-image: url('top.png'); } .thing-3 { background-image: url('top.png'); } /* etc... */
其次是:
.thing-20 { background-image: url('bottom.png'); } .thing-21 { background-image: url('bottom.png'); } .thing-22 { background-image: url('bottom.png'); } /* etc... */
我正在寻找一种方法来简化我的样式表与LESS或类似的东西.这是我想做的事情:
.thing-[i < 15] { background-image: url('top.png'); } .thing-[i >= 15] { background-image: url('bottom.png'); }
有没有办法可以用LESS做这样的事情?如果不是LESS,也许是SASS?
当你要求LESS和Sass时,这里有一些解决方案.你可以通过循环遍历值来实现它 – 但Sass在这个领域有点强大,因为它有内置的控制指令,如@ for,@ if,@ while和@each.当然有多种方法可以实现这一点,但这是第一个想到的方法:
减:
.bg (@i) when (@i < 15) { background-image: url('top.png'); } .bg (@i) when (@i >= 15) { background-image: url('bottom.png'); } .things (@max, @i: 1) when (@i < @max) { .thing-@{i} { .bg (@i); } .things (@max, (@i + 1)); } .things(50);
和SCSS:
@function bg($i) { @if $i < 15 { @return 'top.png' } @else { @return 'bottom.png' } } @for $i from 1 through 50 { .thing-#{$i} { background-image: url(bg($i)); } }
在哪里可以获得准确的输出.
但是,通过以下方式可以实现更干燥的产量:
较少:见 @seven-phases-max’s answer .但是,如果你的项目少于15件,那么总是需要打印出来的东西.除非你添加另一个警卫只在需要时添加.thing-15,如下所示:
.thing(@i) when (@i = 15) { .thing-15 {background-image: url('bottom.png')} }
您可以在 less2css.org 试用Less解决方案
或SCSS:
%bg-top { background-image: url('top.png'); } %bg-bottom { background-image: url('bottom.png'); } @for $i from 1 through 50 { .thing-#{$i} { @if $i < 15 { @extend %bg-top; } @else { @extend %bg-bottom; } } }
我认为最后一个是最优雅的解决方案.
翻译自:https://stackoverflow.com/questions/19736971/css-rule-for-classes-with-number-greater-than
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用 parted 解决大于 2T 的磁盘分区
- 进程物理内存远大于Xmx的问题分析
- linux批量新增自动分区挂载大于2T磁盘脚本
- Apple News 公开运营细节:人类编辑大于算法
- php生成excel列名超过26列大于Z时的解决方法
- 云资讯 Zenlayer合并大河云联的背后:1+1如何大于2?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
HTML 编码/解码
HTML 编码/解码