如何将 div 放置在两个 iframe 上,其中一个 iframe 具有外部(不同域)内容?

Posted

技术标签:

【中文标题】如何将 div 放置在两个 iframe 上,其中一个 iframe 具有外部(不同域)内容?【英文标题】:How can I position a div over two iframes where one iframe has external (different domain) content? 【发布时间】:2010-09-27 19:34:10 【问题描述】:

我正在寻找一种方法来将 div(它将是一个弹出窗口,由用户悬停和/或单击很像灯箱来激活)在一个拆分 iframe 上,其中顶部 iframe 是我的内容服务器和底部的 iframe 是来自另一台服务器的内容。像这样:

-------------------------------------- | | |鞋面 | | | | ------------------- | | |分区 | | --------- --------| | | | | | -------------------- | | | |降低 | | | --------------------------------------

基本上,它看起来像一个在顶部(上部)和底部(下部;外部内容)之间水平拆分的框,以及一个悬停在两者上方的 DIV,因此顶部和底部都有重叠。

顺便说一句,我还发布了另一个问题:ajax 与 iframe 的外部内容以及在这种情况下我应该使用什么。因此,较低的(外部内容)不一定必须是 iframe,具体取决于答案。

【问题讨论】:

【参考方案1】:

看看这个:

http://ahare.us/test.html

此页面几乎可以满足您的要求。我会尽量避免使用 z-index,因为一旦你走上这条路,你就会以可能会变得痛苦的方式致力于它。

(你知道我在 Firefox 3 和 IE 6 中测试过这个)。

这里是代码 - 我有两个规则用于#pop div,第一个是纯粹的呈现,第二个规则是定位样式,使整个事情工作。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>test</title>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <style type="text/css">
            iframe  width:500px; height:200px; 
            #pop  width:400px; height:300px; background:#ff9; 
            #pop  position:absolute; top:50px; left:50px; 
        </style>
    </head>
    <body>
        <div id="pop">this is the popup</div>   
        <div>
            <iframe src="content.html"></iframe>
        </div>
        <div>
            <iframe src="http://www.google.com"></iframe>
        </div>
    </body>
</html>

【讨论】:

在 Safari 3 中无法一直工作。弹出的 div 被“拆分”,在外部框架开始的位置水平大约有一厘米。【参考方案2】:

最好的办法是确保将样式设置为:

.overlapper

    position: absolute;
    z-index: 9000;  /* some very high value to ensure its always on top */
    top: 50px; /* whatever positioning you need */
    left: 50px;
    width: 500px;
    height: 100px;

只需将您的值设置为您需要的任何值。需要注意的主要是 z-index,值越高意味着其在层顺序中越高,0 或 1 是最低的。

一些注意事项;您可以将您的位置设置为“位置:相对;”如果绝对定位不利于布局,在这种情况下,您可能需要使用负顶部值将其拖回第一个 iframe 的顶部。

【讨论】:

以上是关于如何将 div 放置在两个 iframe 上,其中一个 iframe 具有外部(不同域)内容?的主要内容,如果未能解决你的问题,请参考以下文章

使用浏览器滚动条使 div 滚动 [重复]

如何将两个 div 并排放置?

如何将样式应用于页面 iframe 内的 div? [复制]

如何在移动设备中并排放置两个绝对定位的div? [复制]

DIV悬浮层如何跨页面在iframe框架之上显示

如何使 ReactPlayer 随高度和宽度缩放