代码改变世界

iFrame只要竖滚动条,不要横滚动条

2010-04-20 11:13  smat  阅读(364)  评论(0编辑  收藏  举报

如题,就是在网页中,只显示右侧的垂直滚动条,而不要底部的水平滚动条;这个问 题让我挠头了半天。

做的那个管理界面,为了能让菜单在整个窗口中显示,我没有用Frame,而是用了iFrame;为了让iFrame窗口适用大小,我也用 JavaScript代码做了判断;

插入iFrame的代码如下(我没有设宽高,宽高有Js代码控制的,这里不再描述)
<iframe src="welcome.html" name="workArea" align="center" marginwidth="0" marginheight="0" allowtransparency="true" application="true" id="workArea" scrolling="auto"></iframe>

滚动条设了自动auto ,当页面内容多时,会自动出现滚动条;

预想效果是出现了,但是不仅出了右侧的竖滚动条,下面左右滚动的横滚动也出现了,调整内容宽度,也一样;郁闷;虽然不影响大碍,但是觉得太不爽了。

看网上有人说,设置body的css样式;
<style type="text/css">
body {
overflow-x : hidden ;
}
</style>

试过之后,发现不行,有的说是IE不支持,我看可能是我的页网是xhtml的问题吧,如果去掉了头部的DTD;就是
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

不过我不想这样;因为我所有的网页都是基于W3C标准的,我并不希望因为这个小功能而去改动代码规范;

又试了其它几个办法,也是不行;不管怎么设置,内容一多,就出现横滚动条;

通过测试,得到方法一:

想到设置body宽度的做法,在iFrame包含的页面内中写入,如下
body {
width: 95%;
margin: 0px;
padding: 0px;
}

通过css来控制宽度,我没有设100%,默认是100%;而是设了95%;这样因为整体页面的宽度小于100%,所以就不再出现横滚动条了,而竖 滚动条依然起作用;

后又经人介绍,得到方法二:

在iFrame的包含页面里加入
<style>
html { overflow-x:hidden; }
</style>

两种方法都可以搞定;

这些小问题,很烦人,要说也没有什么技术含量,所以很多程序员不愿意去做,没办法,要想做得好,做得细致,光有高深技术是不行的,大多时间都是消耗 在这些小问题上;