我正在通过JQM创建一个site / html5应用程序。
每个页面都有一个固定的页眉和页脚,中心内容可以滚动,在一个页面上,我有一个iframe,它是基于一个url动态填充的-对于一个外部站点-通过本地存储传递。
目前,iframe似乎有一些任意的高度,远远小于固定页眉和页脚之间的固定差异。
我需要iframe来填补页眉和页脚之间差距,以便中间部分(主要)只填充iframe。我需要这是一个完美的适合,以便我不会滚动滚动时,外部链接的页面大于页眉和页脚之间的高度(如当在移动终端上查看)。
我的html看起来像这样:
<body>
<div data-role="page" id="step3" class="mainpage" data-theme="a">
<div data-role="header" data-position="fixed" data-tap-toggle="false">
<a href="#left-panel" data-role="button" data-icon="bars" data-prefetch data-dom-cache="true" data-tap-toggle="false">Menu</a>
<h1>Title</h1>
<a data-icon="back" data-rel="back" title="Go back">Back</a>
</div><!-- /header -->
<div role="main" class="ui-content step3" width="100%" height="100%" >
<div id="iframe" width="100%" height="100%" style="padding:0px;margin:0px;height:100%"></div>
</div><!-- /content -->
<div id="footing" data-role="footer" data-position="fixed" data-tap-toggle="false">
<div id="ad"> </div>
</div>
<script>
document.getElementById("iframe").innerHTML="<iframe src='" + localStorage.ExternalListing + "' width=\"100%\" height=\"100%\" style=\"padding:0px\;margin:0px\;min-height:500px\;height:100%\;\"></iframe>";
</script>
<style>
.ui-content.step3 {
padding: 0;
height:100%;
}</style>
</div><!-- /page -->
</body>
正如你将看到的,我尝试在相关部分添加“height:100%”,并在iframe中添加了最小高度(纯粹出于测试目的)。不幸的是,我不能使用固定高度,因为移动的设备的屏幕大小和分辨率有很多变化。
有什么想法我可以让iframe填补100%之间差距页眉和页脚?
3条答案
按热度按时间rhfm7lfc1#
Here's an updated version of your demo
仅仅将容器div的宽度和高度以及iframe设置为“100%”是不起作用的,你需要专门计算高度和宽度,并将其应用到你的iframe中。
查看iframe的高度是如何计算的。
gdrx4gfi2#
仅在特定页面中使用以下内容,否则将阻止正文/页面滚动。
下面的CSS使用height inheritance 和
box-sizing
来根据viewport的高度设置.ui-content
的高度。它可以响应任何屏幕分辨率。注意带有固定工具栏的页面div添加了
padding-top
和padding-bottom
来容纳工具栏。内容div继承页面高度减去填充(88 px)。对于浮动工具栏(非固定)的解决方案是不同的。如果你感兴趣,我会张贴它。
**一个
pkmbmrz73#
我使用了Omar和Vikram的解决方案的组合,因为两者都不完全符合我的需要。
首先,我使用Vikram的JS来检测高度:
然后,我使用了Omar建议的以下方法,重新计算方向变化时的iframe维度。