haslayout

 

之前只知道ie的haslayout会对IE的渲染产生影响,却不知道会对javascript也会产生影响。
在一个项目里面,为了让div可以自动适应高度并修复ie 的iframe滚动条bug,通过脚本来控制一个div的高度,但是怎么调脚本都有问题。我崩溃了。本来还以为是自己的逻辑出了问题,逐步排查之后,却发现某个元素的clientHeight,在ie下面是0。原来这个元素没有haslayout。
范例脚本:
<span id=”testHasLayout” style=”padding-top:20px;display:block”>test it</span> <script type=”javascript/text”> var obj=document.getElementById(”testHasLayout”); alert(obj.clientHeight); obj.style.zoom=”1″; alert(obj.clientHeight); </script>

原来如果在IE下,对象没有haslayout属性时,是没有办法通过脚本来获取他的clientHeight属性的。IE6,7均是如此
在这里再次回顾一下这个重要的概念:
默认拥有haslayout的元素:

<html>, <body>
<table>, <tr>, <th>, <td>
<img>
<hr>
<input>, <button>, <select>, <textarea>, <fieldset>, <legend>
<iframe>, <embed>, <object>, <applet>
<marquee>

能够让元素拥有haslayout的css属性

position: absolute
Refers to its containing block, and that’s where some problems begin.
float: left|right
The float model has a lot of quirks due to some aspects of a layout element.
display: inline-block
Sometimes [...]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值