iframe应用很普遍,通常的需求有两种:

  1. 获取iframe效果,就是带一个滚动条,可以省不少版面。

  2. 要嵌一个页面,实现框架链接。

  如果不方便使用iframe,可以有如下相应解决方案:

  1. 可以使用css布局来实现,即可以少一个页面,也可以提高执行效率。

  2. 可以采用xmlhttp远程获取数据。

  A. 直接模拟iframe

  用层做容器

  #content { overflow:auto; height:185px; width:600px; background:#ccc; padding:10px;}

  效果演示:http://www.rexsong.com/blog/attachments/200601/02_150246_cssiframe1.htm

  用body做容器

  html { overflow:hidden; height:100%; background:#fff; border:0;}

  * html { padding:200px 0 0 100px;}

  body { overflow:auto; background:#ccc; margin:0; position:absolute; top:200px; left:100px; bottom:0; right:0;}

  * html body { height:100%; width:100%; position:static;}

  效果演示:http://www.rexsong.com/blog/attachments/200601/02_151517_cssiframe2.htm

  B. 绝对定位模拟iframe

  滚动条在外边

  html { overflow:hidden; border:0; height:100%;}

  body { overflow:hidden; margin:0; height:100%; position:relative;}

  #content { height:100%; position:relative; z-index:1; overflow:auto;}

  #head { position:absolute; top:0; right:16px; width:100%; height:100px; background:#ccc; z-index:2;}

  #foot { position:absolute; bottom:0; right:16px; width:100%; background:#ccc; height:50px;z-index:2;}

  效果演示:http://www.rexsong.com/blog/attachments/200601/02_151837_cssiframe3.htm

  滚动条在里边

  html { height:100%; max-height:100%; border:0; overflow:hidden;}

  * html { padding:100px 0 50px 0;}

  body { height:100%; max-height:100%; margin:0; overflow:hidden;}

  #content { position:absolute; top:100px; bottom:50px; left:0; right:0; z-index:3; width:100%; overflow:auto;}

  * html #content { top:100px; bottom:0; height:100%;}

  #head { position:absolute; margin:0; top:0; left:0; width:100%; height:100px; background:#ccc; z-index:5;}

  #foot { position:absolute; margin:0; bottom:0; left:0; width:100%; height:50px; z-index:5; background:#ccc;}

  效果演示:http://www.rexsong.com/blog/attachments/200601/02_153241_cssiframe4.htm

  强调一下,standard模式要把body看作是一个容器,基本和P类似,这和传统观念是很不一样。搞清楚了html与body的关系,关于高级布局的很多问题自然迎刃而解。

标签:Iframe

随机推荐