2012-11-15 49 views
3

因此,我正在为一个人建立一个网站,他想要一个我已经制作的网页,它基本上是一个订单计算器,并在网站的每个页面上以弹出式div元素的形式提供。所以我把一个简单的iFrame加载到自己的盒子里,一切都会正常工作,但他不喜欢它的外观,我承认,如果iFrames不接受整个页面,他们导致居中问题。有没有办法让div像iframe一样工作?

所以我想我只想把它变成它自己的股利和公正加载该页面通过jQuery入格,但与样式问题就出现了。位置页面和加载的计算器页面都具有基本的CSS元素,它们必须使用并且它们相互冲突,那么是否有任何方法可以使带有加载页面的div内的css导入仅适用于该div内的元素无需重命名所有内容?

感谢您的帮助。

CODE:

function po() 
{ 
    $("#calculator").load("/calculator/"); 
    $("#calculator").fadeIn(); 
    $("#modalbackground").fadeIn(); 
    $("#closeCalc").fadeIn(); 
} 

任何其他解决方案会欣然接受!

+2

没有直接的方法来做到这一点 – SReject

+1

为什么iFrame看起来马虎么?你看到什么中心问题? –

+0

如果这是一个完整的HTML页面,你正在加载到一个div,你真的不应该这样做。它显着地破坏了你的代码。 – mck

回答

2

也许你可以把一个边界欠的iframe到一个div

<div style='width:100px; height:100px;'> 
    <iframe style='width:100%; height:100%; border:0;'></iframe> 
</div> 

iframe的应采取的div

+0

这看起来没有问题。谢谢! – David

+0

我只是'iframe {display:block;宽度:100%;身高:100%; }等 - 并保持HTML的样式。然后,使用容器来定义它的大小。 – sheriffderek

0

的整个宽度,只需添加frameborder="0"到标记,它看起来就像一个可滚动<div>。你甚至可以在CSS中添加自己的边框(尽管这可能更好地在一个包含元素上完成,而不是在本身)。

如果您愿意,我可以向您展示我的网站截图,该截图使用的 s看起来像<div> s。

0

如果你在一个div中加载整个页面,包括body标签,这是绝对错误的。你应该加载一个页面片段(一个特定的div在你的计算器页面中)。在这种情况下,只要给这个特定的div一个唯一的ID,并在此基础上的ID,以避免冲突,建立你导入的样式表:

#loginBox input {...} 

如果这是不可能的,那么我会说,一个iframe是必经之路走。例如,您可以在计算器中添加一个调整其父级的脚本(通过parent.frameElement访问)。为了记录,html5具有“无缝”属性,但在这一点上浏览器的兼容性仍然很差。

+0

这是一个页面片段。我没有提到我在准备好要加载的页面之前删除了所有这些标签。 – David

+0

好的,我看到你有一个id登录框。那么如果你用#loginBox为你的所有样式加上前缀,就不应该有冲突。 – Christophe

0

为了使内置框架在Mozilla中正常工作,您需要使用em作为单位而不是px,或者如果超出div限制,则需要使用em。

这个问题被问到几个FireFox论坛上,但显然他们似乎有一些使用iframe的安全问题。

的EM值应在iframe标签中指定,而不是在div 标签

我已经有三个I帧一个低于另外一个页面(我知道大多数人会不喜欢但我是初学者),并且在所有浏览器中都能很好地工作。

您需要通过自己亲自尝试确定em。

我个人不建议使用iframe作为解决方法,但它应该用于它的设计目的。

希望这可以帮助每个人阅读我的文章。如果您认为我错了,请留下评论。我很感谢你的帮助。谢谢!

相关问题