Javascript 显示时读取正确尺寸的变通方法:';无';
当Javascript 显示时读取正确尺寸的变通方法:';无';,javascript,jquery,css,Javascript,Jquery,Css,当display值设置为none时,是否存在读取正确元件尺寸的变通方法 好的,一种方法是在不更改显示的情况下隐藏它,而改为可见性属性。虽然元素提供了适当的维度,但它会影响文档流 我能想到的另一种方法是不透明度,但随后浏览器支持开始发挥作用 我正在使用的元素被附加到主体 哦,是的,我在找电脑风格。没有为维度等设置静态CSS属性 任何其他解决方案?当显示为无时,根据定义,元素非块元素没有维度。(谢谢,@Pekka)一种可能的解决方法是通过设置position:absolute和left:-999em
display
值设置为none
时,是否存在读取正确元件尺寸的变通方法
好的,一种方法是在不更改显示
的情况下隐藏它,而改为可见性
属性。虽然元素提供了适当的维度,但它会影响文档流
我能想到的另一种方法是不透明度
,但随后浏览器支持开始发挥作用
我正在使用的元素被附加到主体
哦,是的,我在找电脑风格。没有为维度等设置静态CSS属性
任何其他解决方案?当
显示
为无时,根据定义,元素非块元素没有维度。(谢谢,@Pekka)一种可能的解决方法是通过设置position:absolute
和left:-999em
将元素定位在远离屏幕的位置。元素仍然存在,因此您可以获取其维度,但它不会出现在文档中,并且不会影响流程。当显示
为无时,根据定义,元素非块元素没有维度。(谢谢,@Pekka)一种可能的解决方法是通过设置position:absolute
和left:-999em
将元素定位在远离屏幕的位置。元素仍然存在,因此您可以获取其维度,但它不会出现在文档中,并且不会影响流。有一种方法可以使用offsetHeight和javascript来实现
<script type="text/javascript">
<!--
onload=function() {
var divh = document.getElementById('top').offsetHeight;
alert(divh +"px");
}
//-->
</script>
有一种方法可以通过offsetHeight和javascript实现
<script type="text/javascript">
<!--
onload=function() {
var divh = document.getElementById('top').offsetHeight;
alert(divh +"px");
}
//-->
</script>
为什么,有什么问题?.width()
是否没有给出正确的尺寸?对我来说:尝试使用可见性:隐藏代码>和位置:绝对代码>。后者应该可以防止它影响文档流。@Pekka,如果元素是:hidden
/display:none
(.hide()
)它返回的值不正确。@Jordan,实际上这就是我使用的,但是忘记了如果不为元素指定左/上坐标,它将保持与文档流一样。刚才我想起来了@Pekka,请看@Justin的答案。啊,好吧-它确实为本机display:inline
的元素显示了错误的值。为什么,有什么问题?.width()
是否没有给出正确的尺寸?对我来说:尝试使用可见性:隐藏代码>和位置:绝对代码>。后者应该可以防止它影响文档流。@Pekka,如果元素是:hidden
/display:none
(.hide()
)它返回的值不正确。@Jordan,实际上这就是我使用的,但是忘记了如果不为元素指定左/上坐标,它将保持与文档流一样。刚才我想起来了@佩卡,请看@Justin的答案。啊,好的-它确实为本机显示的display:inline
元素显示了错误的值。这是一个选项,但仅适用于对象在CSS中具有特定像素集高度的情况。这是一个选项,但仅适用于对象在CSS中具有特定像素集高度的情况。第一句话并不正确:.width()
仍然能够检索块元素的正确宽度。虽然这有一个潜在的问题,position:absolute
将元素从文档流中移除,并可能在未设置宽度的情况下更改div
的宽度-在文档流中,它将占用100%的可用空间。这个空间可以是不同的outside@Pekka:所有有效点。OP正在寻找计算样式这一事实确实是一个有趣的问题。第一句话并不真正正确:.width()
仍然能够检索块元素的正确宽度。虽然这有一个潜在的问题,position:absolute
将元素从文档流中移除,并可能在未设置宽度的情况下更改div
的宽度-在文档流中,它将占用100%的可用空间。这个空间可以是不同的outside@Pekka:所有有效点。OP正在寻找计算风格这一事实使得这确实是一个有趣的问题。