目前做了一个项目,界面如下:
这是使用frameset做的,在宽屏下开发一直没有发现什么问题,直到一个用户使用800*600的机子测试的时候,才发现整个界面都被变形了。
那时整个frameset页面只有600像素高度,frameset嵌套的frame出现了滚动条,实在难看。怎么把frameset的高度设置高点,让其嵌套的frame页面没有滚动条,而让frameset有滚动条呢?
frameset的高度是设置不了的,比如:<frameset rows="110,*" style="height: 1900px;">。这时的页面还是屏幕的高度,并不是1900px;设置frameset的body的高度也无效。怎么办呢?我baidu了好多天,都没找到答案,这个问题就一直搁置着。也想到叫美工用DIV+CSS替换了frameset,但怕牵涉的内容太多,换的工作量也许很大,只好作罢。
灵感这东西真是怪,要来不来,来了挡也挡不住。就在这个问题放了一个来月后,今天它突然来了,来的时候还带着iframe。当我把frameset嵌套其中,并设置iframse页面的高度,效果果然出来了。现把解决方案与遇到相同问题而解决不了的同仁分享。
1、frameset页面(inner.html)
<html>
<frameset rows="110,*" frameborder="no" border="0" framespacing="-4px">
<frame src="header.jsp" name="topFrame" scrolling="no" noresize="noresize" />
<frameset cols="170,12,*" framespacing="0" frameborder="no" border="0" id="mainFrameset">
<frame src="left.jsp" name="leftFrame"scrolling="auto" noresize="noresize" id="leftFrame"/>
<frame src="narrow.jsp" scrolling="no" noresize="noresize"/>
<frame src="" name="mainFrame" noresize="noresize" />
</frameset>
</frameset>
<noframes>
</noframes>
</html>
2、iframe页面(outer.html)
关键是设置这个页面的高度,想要多高就设置多高,随你。这时里面包含的frameset也会是这个高度。
<body style="margin: 0px;height: 580px;width:960px;">
<iframe src="inner.html"
style="height:100%;width:100%;border-width: 0px;">
</iframe>
</body>