首页 > 其他分享 >table+div+iframe打造高度自适应的后台布局框架(需要用JS控制大小)

table+div+iframe打造高度自适应的后台布局框架(需要用JS控制大小)

时间:2022-12-14 10:03:41浏览次数:66  
标签:100% JS width iframe table div height td


discuz后台用的就是这种结构,用table撑开布局,在table里写div,用于菜单栏目的布局,在主体区域用iframe,作为页面容器。

html代码:

< table  id = "frametable"  cellpadding = "0"  cellspacing = "0"  width = "100%"  height = "100%"  style = "width: 100%;" >
< tr >
< td colspan = "2" height = "40" >
< div class = "header" >
<!-- header menu -->
</ div >
</ td >
</ tr >
< tr >
< td valign = "top" width = "150" height = "100%" > <!--这个高度很重要-->
< div class = "left" > <!-- left menu --> </ div >
</ td >
< td valign = "top" width = "100%" height = "100%" > <!--这个高度很重要-->
< iframe id = "iframe" name = "main" src = "http://www.icaigen.com" width = "100%" allowtransparency = "true" width = "100%" height = "100%" frameborder = "0" scrolling = "yes" style = "overflow:visible;" ></ iframe >
</ td >
</ tr >
</ table >


css代码:

<style>
*{ margin : 0 ; padding : 0 }
body, html{ height : 100% ; width : 100% ; overflow : hidden ;} /*这个高度很重要*/
#frametable .header{ height : 40px ; background : #ddd ; border-bottom : 2px solid #999 ;}
#frametable . left { width : 150px ; border-right : 2px solid #999 ; background : #ddd ; height : 100% ;}
</style>


说明:

① 第一个tr是固定高度,用于顶部的导航菜单,所以无论是td还是里面的div.header,其高度均是固定的,宽度100%,横向填充。

② 第二个tr是自适应屏幕高度的(定义td的高度为100%),但是table布局本身并不是自适应的,所以要给table定义高度为100%。然而这样定义后,实际上table并不是自适应的,原因是table的父body高度并不是默认为整个屏幕的100%,至少chrome浏览器就不是。在样式里,定义body,html的高度为100%,并且overflow:hidden。用overflow是因为给iframe定义了滚动条,如果body再来个滚动条,可能就会有两个滚动条,难看了点。而且,后台管理界面,整屏就可以了,内容都在iframe里。

③ 可以给第二个tr中的第一个td(包含div.left的那个)定义背景,那么就不用给div.left定义背景和高度了,discuz是这么做的。

④ discuz后台框架和上面这个大体一致,细微的区别我也没细看,能用就ok了。

⑤ 兼容ie7及其以上,ie6下没看过,应该可以。webkit内核就不用讲了。


demo : ​​http://www.icaigen.com/Upload/download/frame-demo.html​


标签:100%,JS,width,iframe,table,div,height,td
From: https://blog.51cto.com/u_1236522/5935486

相关文章

  • JS常用模式
    1.原始模式//1.原始模式,对象字面量方式varperson={ name:'Jack', age:18, sayName:function(){alert(this.name);}}//2.原始模式,Object构造函数方式varperson......
  • JS控制元素的显示和隐藏
    利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位。方法一:document.getEle......
  • not JSON serializable解决方法
    问题描述:Python内置的json模块提供了非常完善的Python对象到JSON格式的转换。json.dumps()#将Python中的对象转换为JSON中的字符串对象json.loads()#将JSON中的字......
  • 如何使用 System.Text.Json 序列化 DateTimeOffset 为 Unix 时间戳
    在.NET中,日期和时间通常使用DateTime或DateTimeOffset来表示。这两种数据类型都可以表示日期和时间,但它们之间有一些明显的区别。DateTime是不带时区信息的,而DateT......
  • 处理js小数精度计算问题
    //num1num2传入两个值symbol+-*/符号functionamend(num1,num2,symbol){varstr1=num1.toString(),str2=num2.toString(),result,str1Length,str2Length//解......
  • Python中json.dump()和json.dumps()的区别
    一、图解json.dumps(dict,indent):将Python对象转换成json字符串 json.dump(dict,file_pointer):将Python对象写入json文件  二、json.dumps()用法1、用法json.d......
  • 卸载 nodejs 时报错 you must be an administrator to remove this application 的解
    这是在win11下报的错,要不怎么说win11就是个笑话。我是这么解决的:首先找到原始的安装包。再以管理员身份打开cmd(怎么操作?先打开一个普通的cmd,然后按住ctl+shift......
  • SAP根据源码导入/ui2/cl_json类
    之前我都是用CALLTRANSFORMATIONid方式来解析json数据的,结果发现解析出来的的数据有问题。无奈之下只好使用/ui2/cl_json类方法了,结果发现SAP版本不够,没有这个方法,网上......
  • Proj4.js使用初步入门
    一、基础知识在正式使用Proj4.js时,我们首先需要了解下有关各种投影的参数定义(例如:椭球长半轴、扁率、原点纬线、中央经线、两条标准纬线、东偏移量、北偏移量和单位等),具......
  • mojs——在Vue中使用mojs
    前言一个需求需要做动画效果,刚好搏皮有用mojs,就打算通过mojs实现;Vue中的$nextTick有什么作用:Vue中的$nextTick有什么作用?mojs:https://mojs.github.io/tutorials/内......