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

Javascript
一段超强的javascript代码解密方法
感觉很流畅的js实现的键盘控制(带惯性)
脚本安需导入(装载)的三种模式的对比
用js实现控制内容的向上向下滚动效果
非常不错的一个JS分页效果代码,值得研究
又一个漂亮的导航栏的下拉菜单
特想搞点新的创意出来-立体方块
得到当前行的值的javascript代码
通用的加入收藏夹代码支持IE Firefox等浏览器
javascript状态栏的字符先杂乱出现再排列组合的代码
js之弹出式窗口代码生成器
javascript实现的制作特殊字的脚本
一个加载js文件的小脚本
用JavaScript检查大写键(Caps Lock)是否打开的脚本
javascript中的几个运算符
ECMAScript 基础知识
你需要知道的JavsScript可以做什么?
JavaScript 编程引入命名空间的方法
javascript延时重复执行函数 lLoopRun.js
javascript之函数直接量(function(){})()

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 237 ::
收藏到网摘: 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>