我正在通过在index.html中添加less.js来编译我的LESS文件。我的代码如下:
<head>
<link rel="stylesheet/less" type="text/css" href="style.less"/> <!--my own styles go in this file -->
</head>
<body>
<div class="blue-text">Hello</div>
<div class="blue-background"></div>
<script src="jquery.js"></script>
<script src="less.js"></script>
<script src="script.js"></script> <!--my own script file -->
</body>
//style.less
.blue-text {
color: blue;
}
//script.js
(function(){
$('.blue-background').css('background', $('.blue-text').css('color'));
})();
现在,当我在浏览器中呈现此页面时,它可以在Chrome浏览器中呈现。 但在Firefox中,蓝背景并不是每次都能获得颜色。它有时会出现,有时则不然。
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
这是因为不同的浏览器在呈现页面时表现不同。
在您的情况下,在将less文件编译到css文件之前运行script.js。因此它无法从蓝色文本类中读取它将它应用于蓝色背景,因为该类尚未可用于dom。
唯一的解决方案是你必须手动编译less到css并使用html文件中的css,这样你就可以确保在页面渲染之前编译得较少。
如果你不想每次都手动执行,你可以使用一些自动的javascript任务运行器,比如我使用Gruntjs。