2016-12-10 36 views
0

大家。 我有一个手写笔导入问题。 在我的项目我'使用进口的此类梅索德: @import "project/**/*.styl"手写笔,子目录导入的顺序

,也是我有这个BEM文件夹结构:

Project/ |- Project.styl |- Block1/ | |- Block1.styl | |- _Element1/ | | |- _Element1.styl | | |- __Modificator1/ | | | |- __Modificator1.styl |- Block2/ |- Block3/

一般来说,问题是,当bundle.css准备,它的风格走错了路。首先在它进入的变质剂,然后要素才把数据块,因此变质总是元素覆盖,并finnaly他们没有工作......这怎么看我的代码:

HTML:

<div class="block1_element1 block1_element1__modificator1"></div>

CSS:

.block1_element1__modificator1{font-size: 14px} .block1_element1{font-size: 16px}

在结果将是16px的字体大小...

如果有人知道如何才能从分支到开始的结束发生变化,请给我意见如何使it.s

回答

1

的问题

为了手写笔的错误导入的文件。


原因

当使用文件中手写笔Globing**/*手写引擎订单由文件,这样的导入文件的顺序变为__Modificator(n).styl然后_Element(n).styl然后Block(n).styl和那当然是什么原因造成错CSS样式。


可能的解决方案

使用index.styl文件中的每个目录/子目录,每个index.styl文件导入内的所有在当前目录中的文件,然后所有子目录的所有index.styl文件。




这个项目的结构应该是象下面这样:

Project/ 
|- Project.styl 
|- Block1/ 
| |- index.styl 
| |- Block1.styl 
| |- _Element1/ 
| | |- index.styl 
| | |- _Element1.styl 
| | |- __Modificator1/ 
| | | |- index.styl 
| | | |- __Modificator1.styl 
|- Block2/ 
|- Block3/ 


这里应该是index.styl文件内

inside Project.styl 
@import "Block1" 
@import "Block2" 
... 

inside any Block directory index.styl file 
@import "_Element1" 
@import "_Element2" 
@import "Block1.styl" // current parent block 
... 

inside any Element directory index.styl file 
@import "__Modificator1" 
@import "__Modificator2" 
@import "_Element1.styl" // current parent Element 
... 
+0

它'好笑,但什么时候我正在与SASS合作,我使用完全相同的方法导入文件,但不是* *索引**,是**安装**文件。为此,我决定用Stylus取代SASS。所以它真的很伤心,如果它有这么酷的功能,但总的来说uncofigurable ... –

+0

AFAIK Sass也按字母顺序导入文件。 –

+0

嗯...当我尝试相同的导入组合时,它在SASS上不适合我...奇怪... –