如何在手写笔中实现部分导入(扩展,包含,继承)? 例如,我有两个文件:
foo.styl body {color:orange} a {color: blue}
bar.styl
在文件bar.styl
中,我希望来自body {color:orange}
的{{1}},但不希望foo.styl
如何实施?
答案 0 :(得分:0)
在Stylus中还没有这样的东西。有可能使用这个技巧:
$foo
@import 'test2'
body
@extends $foo body
但是Stylus有一个错误:https://github.com/LearnBoost/stylus/issues/1687 - 阻止它正确呈现。这个错误在Stylus 0.49.0中得到修复,所以如果你使用这个版本或更高版本,一切都应该没问题。
由于问题仅在您尝试使用@extends
的选择器与嵌套选择器匹配时发生,您可能会在某种程度上欺骗Stylus认为选择器不相同。最简单易行的方法就是这样写:
$foo
@import 'test2'
* > body
@extends $foo body
这会使Stylus不会将这些选择器视为相等并且会正确输出* > body
。虽然明星选择器通常是有害的,但在这种情况下它不是:因为它位于左侧并且有一个儿童组合器,当选择器匹配发生时它不会导致性能问题,并且作为星形选择器不会出现问题。对它有任何特异性,它不会干扰给定规则的特异性。
但是,如果您可以等一下,我们可以尝试在Stylus中修复此错误,因此您可以在下一个版本之一中使用此答案开头的修复代码。