ASPX里 DocType 导致 不能隐藏滚动条

在设置网页的滚动条隐藏的时候,发现,在Html页里,可行,在 ASPX 页面里,不可行。写法如下:下面两种任一种都有效:

document.body.scroll = "no" ;
document.body.style.overflow
="hidden";


后来发现是 网页 DocType 定义出的问题:参见(http://www.flashshe.com/perfect-web/post/4.html)
去掉DocType也是不行的。因为去掉之后,会引发另一些问题,如:(一个DIV居中显示)
<div id=layout>text</div>
#layout
{
    margin :0px auto;
    width :200px;
    height :400px;
}

如果页面没有doctype,这个DIV依旧不能居中。  引自:(http://www.cnblogs.com/chy710/archive/2007/01/08/615168.html)

还有网页头部有字体,(在网页提交后,后台输出字符在DocType之前时),网页字体会变大的问题,该问题我也遇到过一次,现在终于明白怎么回事了,需要把输出放到 DocType定义之后.引自:(http://www.kszhang.cn/post/265.html)


后记:
overflow、overflow-x、overflow-y属性可以用于管理超过其容器大小的内容,例如:
<body style="overflow-x: no">表示页面不出现横向滚动条。

但是当使用!DOCTYPE声明打开符合标准的模式时,overflow、overflow-x和overflow-y属性会应用于HTML元素,应用于BODY元素时无效。

解决办法有二:
1、把overflow、overflow-x、overflow-y属性写到<HTML>标签里;
2、或者删除!DOCTYPE声明:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
摘自(http://www.fansart.com/cweb/2006623200833.asp)


产生这个原因是因为我们的写法不符合定义的开发规范,把写法规范一下就好了,下面是我的问题的解决方案,问题解决来源于(http://xoops.org.cn/modules/newbb/viewtopic.php?topic_id=7682&start=0)

document.documentElement.style.overflow="hidden";

看来, documentElement 元素比 Body 元素要符合标准啊.



posted @ 2008-09-02 00:20  NewSea  阅读(1120)  评论(2编辑  收藏  举报