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正在寻找计算风格这一事实使得这确实是一个有趣的问题。