在firefox / IE上显示iframe的问题

时间:2013-12-02 18:42:21

标签: html css firefox iframe

我在wordpress页面上有两个iframe,我希望它能用css调整大小,具体取决于屏幕分辨率。我想出了如下代码:

<head>
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>">
    <meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
</head>
<nav>
    <div id="menu-stream"><?php wp_nav_menu(array('menu' => 'cssmenu')); ?></div>
</nav>

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <div id="infos">
                <?php 
                dynamic_sidebar('info'); 
                dynamic_sidebar('date'); 
                ?>
        </div>
        <div id="rss">
            dynamic_sidebar('rss'); 
        </div>
        <div class="entry">
                <div class="Wrapper">
                    <iframe id="video" name="video_iframe" width="854" height="480" src="http://www.dailymotion.com/embed/video/xxxxx?autoPlay=1" frameborder="0"></iframe>
                    <iframe id="chat" name="chat_iframe" width="380" height="480" src="http://webchat.quakenet.org/?channels=xxxx..." frameborder="0"></iframe>
                </div>
            <?php the_content(); ?>
        </div>

Chrome或Opera上的一切正常,但是当我试用Firefox或IE时,iframe就不会出现了。我可以听到来自dailymotion视频的声音,但它没有显示出来。

这是css

.entry {
    color: #c5c5c5;
    font-family: Verdana, Arial, Sans-serif;
    font-size: 14px;
    text-align: justify;
    margin-left: 10px;
    margin-right: 12px;
    margin-bottom: 20px;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 5px;
    background-color: #1e1e1e;
    letter-spacing: -1px;
    box-shadow:0px 0px 11px black;
}

.Wrapper {

    padding-bottom: 56.25%;
    padding-top: 25px;
    height: 0;
}
.Wrapper iframe {
    top: 0px;
    left: 0px;
    width: 100%;
    height: 70%;
}

.Wrapper#chat {
    width: 30%;
    float: left;
}
.videoWrapper#video {
    width: 70%;
    float: left;
}

我还添加了一些媒体查询。我可以看到出现了问题:

.Wrapper iframe {
    top: 0px;
    left: 0px;
    width: 100%;
    height: 70%;
}

因为当我删除宽度和高度时它会显示,但当然不会再调整大小。谁能告诉我什么是错的?

以下是我决定使用的调整大小解决方案的文章 http://css-tricks.com/NetMag/FluidWidthVideo/Article-FluidWidthVideo.php

1 个答案:

答案 0 :(得分:0)

以下是更新的 Fiddle

您的问题是您的div#entry没有任何固定的宽度/高度,所以我添加了一些。

同样,position:relative对你的画面非常重要。

另一个考虑因素是我删除了.Wrapper iframe css,因为它覆盖了您的课程.Wrapper#video.Wrapper#chat,因此无法存在。

请使用此CSS:

.entry {
    color: #c5c5c5;
    font-family: Verdana, Arial, Sans-serif;
    font-size: 14px;
    text-align: justify;
    margin-left: 10px;
    margin-right: 12px;
    margin-bottom: 20px;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 5px;
    background-color: #1e1e1e;
    letter-spacing: -1px;
    box-shadow:0px 0px 11px black;
    width: 1250px;
    height: 500px;
}

.Wrapper {
    padding-bottom: 56.25%;
    padding-top: 25px;
    height: 0;
}

.Wrapper#chat {
    width: 30%;
    float: left;
    margin-right: 3px;
    display: block;
}
.videoWrapper#video {
    width: 70%;
    float: left;
    display: block;
    position:relative;
}

你需要它是流畅的,然后,将这个html用于iframe:

<div class="entry">
        <div class="Wrapper">
            <iframe id="video" name="video_iframe" width="79%" height="500px" src="http://www.dailymotion.com/embed/video/xxxxx?autoPlay=1" frameborder="0"></iframe>
            <iframe id="chat" name="chat_iframe" width="20%" height="500px" src="http://webchat.quakenet.org/?channels=xxxx..." frameborder="0"></iframe>
        </div>
</div>

请注意,我使用了帧的百分比宽度,并且减少了1%以避免填充问题。