jQuery.css('top')和IE8

时间:2012-04-03 13:49:25

标签: jquery css internet-explorer-8 styles

我有IE8 + jQuery.css('top')函数的问题。

1)我的DIV高度为100px,宽度为600px。我在第一个DIV中有另一个DIV,其中style =“top:50%”所以它应该放在top = 50px。

2)所有浏览器都正确显示。但是,稍后,我需要使用jQuery来找到元素的位置,这就是IE8的问题:

$('#txt')。css('top')给我的回报不是50px但是300px !!!!!这是不正确的。另外我注意到它总是返回父DIV的0.5 * WIDTH的值!!这让我发疯!怎么会这样?

这是代码示例:

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>demo</title>

    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script type="text/javascript">            
        function onLoadTest(){
            alert("document.getElementById('txt').style.top="+document.getElementById('txt').style.top+"\n$(#txt).css('top')="+$('#txt').css('top'));
        }
    </script>

</head>
<body onload="onLoadTest()" style="padding: 0px; margin: 0px; width:100%; height:100%">             
    <div id="box" style="width:600px; height:100px; position:absolute; padding:0px; margin:0px; border: solid 1px">
        <div id="txt" style="top:50%; position:relative; padding:0px; margin:0px;border: solid 1px">
            im in the position top=50% (which is 50px), plz compare to alert box data
        </div>          
    </div>  
</body>
</html>

1 个答案:

答案 0 :(得分:0)

这是我的fiddle。尝试使用offset()。 IE有时候绝对会变得怪异。 使用偏移量与你父母的寄宿生将获得51,所以我把寄宿生从父母那里拿走了