我在页面上有一些元素有一个前伪元素,其高度用CSS calc()函数设置样式;像这样的东西:
.el:before: {
content: "";
height: calc(50% + 10px);
}
我想使用this method来获取:before
元素的高度 - 在基于Webkit的浏览器中,它可以工作并返回像素值。
var height = window.getComputedStyle(
document.querySelector('.el'), ':before'
).getPropertyValue('height');
但是,在Firefox中,它会返回CSS规则的实际字符串(正好是'calc(50% + 10px)'
)。
(function() {
var height = window.getComputedStyle(
document.querySelector('.myelem'), ':before'
).getPropertyValue('height');
document.getElementById('result').innerHTML = 'Calculated height is: ' + height;
})();

.myelem {
position: relative;
padding-left: 20px;
}
.myelem:before {
content: "";
position: absolute;
top: 0px;
left: 0px;
width: 1px;
height: calc(50% + 2px);
background-color: red;
}

<div>
<div class="myelem">
<span>Some stuff here</span>
</div>
</div>
<div id="result">
</div>
&#13;
有没有解决方法呢?
答案 0 :(得分:3)
这确实是一个错误,
对于修复,您可以从2013年投票支持此bug-report并希望它最终得到修复,或者如果您有一些时间和C ++知识,甚至可以提出修补程序; - )
要获得解决方法,您必须自己计算...