VS2005下使用Frame碰到的问题
2008-03-05 10:50
369 查看
1、如果Frame中页面是使用了AJAX,就可能会报一个JS错误:
Sys.ArgumentOutOfRangeException: Value must be an integer.
Parameter name: x
Actual value was NaN.
原因:
使用FrameSet或Iframe时,frame或iframe的frameborder属性应使用1 或 0,如:
frameborder="0"
而不能使用yes 或 no,如:
frameborder="no"
2、frame的Scolling="auto" 在HTML和XHTML下显示的样式不同
<frameset id="TotalFrameSet" rows="80,*,25" frameborder="0">
<frame name="header" src="Controls/WscHeadForIFrame.aspx" scrolling="no" noresize marginWidth="0" marginHeight="0" frameBorder="0" LEFTMARGIN="0" TOPMARGIN="0">
<frameset id="mainFrame" cols="194,20,*" frameSpacing="1" frameBorder="0" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" noresize>
<frame name="contents" src="Controls/WscLeftMenuForIFrame.aspx" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="no" LEFTMARGIN="0" TOPMARGIN="0">
<FRAME border="1" id="CtrlFrame" marginWidth="0" marginHeight="0" src="Controls/WSCCtrl.aspx"
frameBorder="0" scrolling="no" LEFTMARGIN="0" TOPMARGIN="0" noresize>
<frame name="main" src="<%=MainUrl%>"
scrolling="auto" marginheight="0" marginwidth="0" borderColor="#ffffff" noresize frameBorder="0">
</frameset>
<frame name="footer" src="Controls/WscFootForIFrame.aspx" scrolling="no" noresize>
</frameset>
如果frame中的页面是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
那么即使没出现滚动条,也会留下滚动条的空间,页面看起来比较好看
但是如果frame中的页面是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
那么如果没出现滚动条,页面中的DataGrid就会紧贴到边上,很难看。
最后,不得不给每个页面Body加上Style:
<body style="margin-right: 20px;">
3、对象的height:100%不能用
网上找到了这位老兄的解释:颇为精辟 收藏
代码已经到了不能再简单的地步,同时设置了HTML与body的height:100%;,而这个就是高度自适应问题的关键所在。
分析:
一个对象高度是否可以使用百分比显示,取决于对象的父级对象,#left在页面中直接旋转在body之中,因此它的父级是body,而浏览器默认状态 下,是没有给body一个高度属性的,因此当我们直接设置#left为height:100%;时,不会产生任何效果,而当我们给body设置了100% 之后,它的子级对象#left的height:100%;便发生作用了,这便是浏览器解析规则引发的高度自适应问题。而代码中除了给body应用之外,还 给HTML对象也应用相同的样式设计,这样做的好处是使IE与firefox浏览器都能够实现高度自适应,而body却不是。另外,Firefox中的 HTML标签不是100%高度,因此给两个标签都定义为height:100%;以保证两个浏览器下均能够正常显示。
其它解决方案:
XHTML不支持height=100%
Sys.ArgumentOutOfRangeException: Value must be an integer.
Parameter name: x
Actual value was NaN.
原因:
使用FrameSet或Iframe时,frame或iframe的frameborder属性应使用1 或 0,如:
frameborder="0"
而不能使用yes 或 no,如:
frameborder="no"
2、frame的Scolling="auto" 在HTML和XHTML下显示的样式不同
<frameset id="TotalFrameSet" rows="80,*,25" frameborder="0">
<frame name="header" src="Controls/WscHeadForIFrame.aspx" scrolling="no" noresize marginWidth="0" marginHeight="0" frameBorder="0" LEFTMARGIN="0" TOPMARGIN="0">
<frameset id="mainFrame" cols="194,20,*" frameSpacing="1" frameBorder="0" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" noresize>
<frame name="contents" src="Controls/WscLeftMenuForIFrame.aspx" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="no" LEFTMARGIN="0" TOPMARGIN="0">
<FRAME border="1" id="CtrlFrame" marginWidth="0" marginHeight="0" src="Controls/WSCCtrl.aspx"
frameBorder="0" scrolling="no" LEFTMARGIN="0" TOPMARGIN="0" noresize>
<frame name="main" src="<%=MainUrl%>"
scrolling="auto" marginheight="0" marginwidth="0" borderColor="#ffffff" noresize frameBorder="0">
</frameset>
<frame name="footer" src="Controls/WscFootForIFrame.aspx" scrolling="no" noresize>
</frameset>
如果frame中的页面是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
那么即使没出现滚动条,也会留下滚动条的空间,页面看起来比较好看
但是如果frame中的页面是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
那么如果没出现滚动条,页面中的DataGrid就会紧贴到边上,很难看。
最后,不得不给每个页面Body加上Style:
<body style="margin-right: 20px;">
3、对象的height:100%不能用
网上找到了这位老兄的解释:颇为精辟 收藏
html,body{ margin:0px; height:100%; }
代码已经到了不能再简单的地步,同时设置了HTML与body的height:100%;,而这个就是高度自适应问题的关键所在。
分析:
一个对象高度是否可以使用百分比显示,取决于对象的父级对象,#left在页面中直接旋转在body之中,因此它的父级是body,而浏览器默认状态 下,是没有给body一个高度属性的,因此当我们直接设置#left为height:100%;时,不会产生任何效果,而当我们给body设置了100% 之后,它的子级对象#left的height:100%;便发生作用了,这便是浏览器解析规则引发的高度自适应问题。而代码中除了给body应用之外,还 给HTML对象也应用相同的样式设计,这样做的好处是使IE与firefox浏览器都能够实现高度自适应,而body却不是。另外,Firefox中的 HTML标签不是100%高度,因此给两个标签都定义为height:100%;以保证两个浏览器下均能够正常显示。
其它解决方案:
XHTML不支持height=100%
相关文章推荐
- 使用VS2005 开发AcitveX组件及碰到的问题解决
- net里使用linq语句碰到的问题
- Mybatis 使用时常碰到的问题及其解答
- linux卸载,安装win7碰到的问题总结,使用MbrFix.exe修复mbr
- 浅析:Pulltorefresh使用中碰到的问题
- cordova + ionic 使用中碰到的一些问题
- VS2005重新配置(在VS出现小问题时使用)
- VS2005 出问题了。。在浏览器中查看。。无法使用
- WINCE--VS2005远程工具,不能使用ActiveSync连接的问题
- cordova + ionic 使用中碰到的一些问题
- eclipse 使用git碰到网络超时连接不了等问题的解决方法
- 使用百度富文本编辑器UEditor碰到的问题
- VS2010 使用过程中碰到的一个DLL导入失败的问题
- 使用admin lte 碰到访问Google字体的问题
- 关于使用WindowsUpdate 或 Windows 自动升级时碰到的 svchost.exe 进程 CPU 资源占用过高的问题的相关信息
- Measurement Studio 2012 使用中碰到的问题
- 记录一次使用hibernate做批量操作碰到的问题
- TextWatcher接口在使用中碰到的问题
- requestAnimationFrame 的使用问题
- 使用WebDeployment Project改善VS2005发布网站问题