2017-07-27 78 views
0

是否有任何选项可以在属性中获取类名称值。 在这里,我需要提前12如何获得属性中的CSS类名称值部分

.grid-12{ 
 
    grid-template-columns: repeat(12, 1fr); 
 
}

感谢。

+0

在我看来,你应该使用一个CSS预处理器要做到这一点像青菜,更少,... – HuyTran

+0

不,没有选择,只是用@HuyTran说的方式。 – djmayank

回答

0

使用类似的东西

document.querySelector('div').style['grid-template-columns']可以很明显的得到的值,然后分析它,但在我眼里看起来有点丑。

您可以做的最好的方法是使用css解析器将css转换为AST树并遍历它。这当然有它自己的权衡,通常不值得在前端做,它甚至不能100%确定解析器会给你这个价值。例如我看到你在解析器代码段转换成以下AST树

{ 
    "parentStyleSheet": null, 
    "cssRules": [ 
    { 
     "parentRule": null, 
     "parentStyleSheet": "[Circular ~]", 
     "selectorText": ".grid-12", 
     "style": { 
     "0": "grid-template-columns", 
     "length": 1, 
     "parentRule": "[Circular ~.cssRules.0]", 
     "_importants": { 
      "grid-template-columns": "" 
     }, 
     "__starts": 8, 
     "grid-template-columns": "repeat(12, 1fr)" 
     }, 
     "__starts": 0, 
     "__ends": 55 
    } 
    ] 
} 

如此反复,你必须手动提取12

+0

令人惊异的解决方案,但它不值得:D – HuyTran

+0

@HuyTran完全。 :) –