当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 在IE下:float属性会影响offsetTop的取值

Javascript
mvc模式分离javascript开发
30个美观的有创意的和引人注目的灵感导航菜单
JS教程:匿名函数
JS教程:childNodes与parentNode
IE浏览器的DOM模型
使用yui3实现最简单拖动
YUI的简单的dom事件
JS区别IE6、IE7、IE8之间的方法
JavaScript教程:Table行定位效果
建立HTML字符串的最快速方法
10个美观实用的jQuery和MooTool日历插件
JS教程:Javascript实现缓动效果
Javascript小游戏贪吃蛇(详细注释)
JavaScript组件开发:分析和设计组件
JavaScript:判断iframe是否加载完成的完美方法
JS特效详解:图片幻灯片切换
JS给文本区域(textarea)字数限制
用js按比例重定图片尺寸
不用组件实现Ajax效果
PHP+JS实现搜索自动提示

Javascript 中的 在IE下:float属性会影响offsetTop的取值


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 304 ::
收藏到网摘: n/a

因需要定位某个HTML元素(例如:div)距离页顶的高度,想用offsetTop来取值,结果却发现CSS中如果使用了float:left;之类的写法后,竟然会导致取到的值不一样。
没有使用float:left;取的到值是正常值200;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Float对offsetTop的影响</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<meta name="Copyright" content="(c)" />
<meta name="Author" content="CNLei" />
<style type="text/css" media="all">
body {margin:0;padding:0;}
#Top {height:100px;}
#Main {padding:100px;}
#IECN {width:200px;height:50px;background:#f00;color:#fff;}
</style>
<script type="text/javascript">
<!--
function ShowIt(o) {
alert(o.offsetTop);
}
-->
</script>
</head>
<body>
<div id="Top">#Main {padding:100px;} 没有使用float属性,取到的offsetTop的值正常:200。</div>
<div id="Main">
<div id="IECN" onclick="ShowIt(this);">点击此处试试</div>
</div>
</body>
</html>
使用了float:left;后,取的值却变成了100,平白无故的少了100
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Float对offsetTop的影响</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<meta name="Copyright" content="(c)" />
<meta name="Author" content="CNLei" />
<style type="text/css" media="all">
body {margin:0;padding:0;}
#Top {height:100px;}
#Main {padding:100px;float:left}
#IECN {width:200px;height:50px;background:#f00;color:#fff;}
</style>
<script type="text/javascript">
<!--
function ShowIt(o) {
alert(o.offsetTop);
}
-->
</script>
</head>
<body>
<div id="Top">#Main {padding:100px;float:left;} 使用了float属性,取到的offsetTop的值只有100了,无故少了100。</div>
<div id="Main">
<div id="IECN" onclick="ShowIt(this);">点击此处试试</div>
</div>
</body>
</html>