我使用
LESSCSS.我试图创建一个不透明度的方法:
.opacity (@opacity) { opacity: @opacity; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=(@opacity * 100))"; filter: alpha(opacity = (@opacity * 100)); }
所以,如果我调用它使用:
h1 { .opacity(.5); }
我想要输出:
h1 { opacity: .5; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=50)"; filter: alpha(opacity = 50); }
但是,相反,LESS抛出的错误:
Expected '}' on line 30 in file '/Content/styles/style.less.css': [29]: -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=(@opacity * 100))"; [30]: filter: alpha(opacity = (@opacity * 100)); ----^ [31]: }
我究竟做错了什么?
解决方法
在无点,做这个。 (我不会推荐脚本标签 – 它们是丑陋的,语言特定的,不支持dotless)。
.opacity (@opacity) { @opacityPercentage: @opacity * 100; opacity: @opacity; -ms-filter: ~"progid:DXImageTransform.Microsoft.Alpha(opacity=(@{opacityPercentage}))"; filter: ~"alpha(opacity = (@{opacityPercentage}))"; }
在无点1.2.3(当它在几个星期释放,或github头,你应该能够这样做… …
.opacity (@opacity) { @opacityPercentage: @opacity * 100; opacity: @opacity; -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=(@opacityPercentage)); filter: alpha(opacity = (@opacityPercentage)); }
和re:Mathletics的评论,dotless不是“最坏的编译器”..它将less.js匹配到1.1.5,很快就是1.2.2,许多针对less.js的600错误被固定在无点。你可能在8个月前使用dotless,但事情的变化和错误是固定的… dotless也有更好的支持评论和变量范围。