包含iframe子页面的滚动条设置

场景:
页面A 包含通过iframe包含子页面B ,设置各处的overflow为auto,结果纵向滚动条是iframe的,横向滚动条是子页面body的,只有当纵向滚动条拉到页面最下方横向滚动条才能显示,页面显示实在诡异。搞了半天,最后听说是文档类型doctype闹的,试了试,居然解决了。

目标:
根据子页面B 内容动态只显示一套滚动条,并且纵向横向滚动条均可见。

方法:
1、隐藏父页面iframe滚动条: <iframe id="imagePageIframe" style="width: 100%; height: 100%; overflow: hidden; " src="${ctp}/app/verify/imagePage.jsp"></iframe>
主要是overflow: hidden; (scroll显示 auto根据内容动态显示 hidden不显示)
2、去掉子页面B 的Transitional//EN文档类型声明:即修改文档声明为<!doctype html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3、子页面B 的body style="overflow:auto"。
4、据说父页面 A 的文档类型要改成 HTML 4.01 Transitional ,我没改,也好使,呵呵。

关键在于,若子页面的文档声明为<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> (声明 Transitional//EN),则子页面iframe的body style="overflow:auto"将不会生效,当然,若iframe是多层嵌套的,只想显示最里边那层页面的滚动条,就可以只将最里层的 Transitional//EN去掉,其它外层页面保留。

直接把子页面DOCTYPE声明去掉也能解决这个问题,但是DOCTYPE去掉后将导致ie7,ie8的css选择器不可用
(如设置button通用样式的css:
input[type="button"],input[type="reset"],input[type="submit"],button
{
background-image: url("../images/gray_button_bg.jpg");
background-repeat: repeat-x;
border: 1px solid #abc2e4;
height: 24px;
cursor: pointer;
padding: 0 3px;
}
),所以还是保留的好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值