这种行为是由less.js库引起的。若你们并没有真正需要它的特性,那个么就不要包含它——问题已经解决了。
我正试图通过使用Javascript来获取元素的位置。我已经使用了clientTop
、offsetHeight
、window.getComputedStyle(box1).top
以及介于两者之间的一些东西,但当我控制台日志时,我得到的只是0。元素几乎被放置在页面的中间,因此结果中除了0之外应该是所有元素。
HTML:
<body>
<h1>Box placement</h1>
<div id='box1' class='box center green size200'>
</div>
</body>
JS:
let box1 = document.querySelector('#box1');
let browserHeight = window.innerHeight;
let browserWidth = window.innerWidth;
let boxHeight = box1.clientTop;
let boxWidth = box1.offsetLeft;
function printInfo() { //Result
console.log(browserHeight); //1185
console.log(browserWidth); //1266
console.log(boxHeight); //0
console.log(boxWidth); //0
console.log(window.getComputedStyle(box1).top); //auto
console.log(box1.offsetLeft); //0
}
printInfo();
你知道我哪里可能出错了吗?下面也是对CSS的一个改动:http://jsfiddle.net/1f23v9nj/1/
如果确实需要它——原因从问题中的代码中看不出来——那么等待less.pageLoadFinished
承诺解决,如下所示:
less.pageLoadFinished.then(function () {
'use strict';
let box1 = document.querySelector('#box1');
// ... etc
});
查看更新的小提琴