我想将条件!important
字符串添加到定义而不必复制行 ...到目前为止我最接近的是:
fontSize(size, isImportant = false)
importantString=""
if isImportant
importantString = !important
font-size unit(size, 'px') importantString
font-size unit(size / 10, 'rem') importantString
不起作用,因为importantString=""
实际插入""
,如果未定义,删除分配实际上会打印importantString
。
最好的方法是:
font-size unit(size, 'px') if isImportant !important
但我想这是不可能的。
答案 0 :(得分:2)
回答您的问题 - 您可以在unquote()
的引号周围使用importantString
,因此如果没有important
则会输出为空。
看起来像这样:
fontSize(size, isImportant = false)
importantString = isImportant ? !important : unquote("")
font-size unit(size, 'px') importantString
font-size unit(size / 10, 'rem') importantString
然而!如果你问我,我建议你做一些不同的 - 为font-size
做一个透明的混音:
font-size(size, args...)
$rem_ratio = 10 if not $rem_ratio is defined
if unit(size) == 'rem'
font-size unit(size * $rem_ratio, 'px') args
font-size size args
else if unit(size) == ''
font-size unit(size, 'px') args
font-size unit(size / $rem_ratio, 'rem') args
else
font-size arguments
可以透明地使用mixin,因为您可以使用通用font-size
。更有甚者,有两种方法可以使用它:
.foo
font-size 1rem
.bar
font-size 10
您可以在那里使用rem
单位,将其转换为后备中的像素,或使用无单位数字,这些数字将根据您的需要翻译成您的问题。并且重要性将被保留,您甚至可以使用rem
变量来声明一个$rem_ratio
中的像素数。
享受!
答案 1 :(得分:1)
可能有更清洁的解决方案,但我会选择以下内容:
fontSize(size, isImportant = false)
if isImportant
font-size unit(size, 'px') !important
font-size unit(size / 10, 'rem') !important
else
font-size unit(size, 'px')
font-size unit(size / 10, 'rem')
更新:替代解决方案,使用其他参数:
fontSize(size, args...)
font-size unit(size, 'px') args
font-size unit(size / 10, 'rem') args
用法:
p
fontSize(12, !important)
h1
fontSize(14)
更新:命名参数,也许更好:
fontSize(size, important = null)
font-size unit(size, 'px') important
font-size unit(size / 10, 'rem') important
答案 2 :(得分:0)
在“显示”中没有编译
手写笔
display block !important
的CSS
display:block
答案 3 :(得分:0)
display( arg = '' )
if arg == 'inline-block'
display arg
zoom 1
*display inline
else if arg == 'box'
display -moz-box
display -webkit-box
display box
else
display arg