日期:2014-05-17  浏览次数:20597 次

把style写在<style>和标签后面的区别
一个简单的程序   按键,显示DIV的位置。
写出主要代码就是了。

<script>
function   Info(){
var   s   =   document.getElementById( "Mydiv ");
alert(s.style.top);
}
</script>

方法一:把div的样式写在标签后面

<body>
<div   id= "Mydiv "   style= " "position:absolute;   top:100px;   left:100px;> Hello,world! </div>
<input   type=button   value= "Press "   onclick= "Info() ">
</body>

显示100px

方法二:把div的样式写在 <style> 里面
<style>
#Mydiv{
position:absolute;   top:100px;   left:100px;
}
</style>

<body>
<div   id= "Mydiv "> Hello,world! </div>
<input   type=button   value= "Press "   onclick= "Info() ">
</body>

这个时候显示一片空白

请问,为什么会出现这种情况,CSS是怎样一个运行机制?

------解决方案--------------------
alert(s.offsetTop);
------解决方案--------------------
因为后者没有style属性。用alert(s.currentStyle.top);
------解决方案--------------------
<div id= "Mydiv "> Hello,world! </div>
---------------------------------------------
楼主应该搞清楚ID和CLASS的区别和联系啊!!你把第二种方法的ID换作CLASS试试
------解决方案--------------------
应该说是js的动作机制的问题
你试一下以下代码,看看区别就明白了:
<html>
<script>
alert(document.body.innerHTML);
</script>

<body>

haha
</body>
<head> <title> abcdefg </title> </head>
<script>
alert(document.title);
</script>
</html>
//会提示没有对象
<html>

<body>
<script>
alert(document.body.innerHTML);
</script>
haha

</body>
<head> <title> abcdefg </title> </head>
<script>
alert(document.title);
</script>
</html>
//显示 <script> alert(document.body.innerHTML); </script> ,没有haha
<html>

<body>

haha
<script>
alert(document.body.innerHTML);
</script>
</body>
<head> <title> abcdefg </title> </head>
<script>
alert(document.title);
</script>
</html> //这样才有haha
最后一种:
<html>

<body>
<script>
alert(document.title);
</script>
haha

</body>
<head> <title> abcdefg </title> </head>

</html>
//显示空白