为什么iframe的高度百分比在我的情况下不起作用?

时间:2015-06-03 18:41:44

标签: html css iframe

我的页面是浏览器高度的100%。

该网页包含3个iframeid_iframe_topid_iframe_middle_leftid_iframe_middle_right

id_iframe_top位于顶部,宽度为100%。

id_iframe_middle_leftid_iframe_middle_right是并排的; id_iframe_middle_left的宽度为30%,id_iframe_middle_right的宽度为70%。

这是HTML:

<body>
<div id="id_div_top_row">
    <iframe id="id_iframe_top" frameborder="0" src="">
    </iframe>
</div>
<div id="id_div_middle_row">
    <iframe id="id_iframe_middle_left" frameborder="0" src="">
    </iframe>
    <iframe id="id_iframe_middle_right" frameborder="0" src="">
    </iframe>
</div>
</body>

这是CSS:

html {
    background: Green;
    height: 100%;
}

body {
    background: White;
    position: absolute; 
    top: 0; 
    bottom: 0; 
    right: 0; 
    left: 0;
}

iframe {
    box-sizing: border-box;
}

#id_iframe_top {
    background-color: Red;
    width: 100%;
}

#id_iframe_middle_left, #id_iframe_middle_right {
    float: left;
}

#id_iframe_middle_left {
    background-color: Pink;
    width: 30%;
}

#id_iframe_middle_right {
    background-color: Yellow;
    width: 70%;
}

这是JSFiddle:http://jsfiddle.net/srhcan/6fsqdyy3/1/

现在我尝试以百分比形式设置每个iframe的高度。所以我在CSS中将id_iframe_top的高度设置为20%,将id_iframe_middle_leftid_iframe_middle_right的高度设置为80%:

#id_iframe_top {
    background-color: Red;
    width: 100%;
    height: 20%;
}

#id_iframe_middle_left, #id_iframe_middle_right {
    float: left;
    height: 80%;
}

但没有任何影响;无论我为高度设定了多少百分比,它都无法正常工作。

为什么它不起作用,我该如何解决?

2 个答案:

答案 0 :(得分:1)

您想设置包装iframe的div的高度,例如:

#id_div_top_row {
    height:80%;
}
#id_iframe_top {
    background-color: Red;
    height:100%;
    width: 100%;
}

然后,如果你想让iframe拉伸整个div,你可以将iframe的高度设置为div的100%

以下是JSFiddle

答案 1 :(得分:0)

高度仅适用于 Px(像素)或pt(点数):高度不能在百分比中起作用,除非,如果它的包含高度已定义

尝试这样的事情

#id_iframe_top {
    background-color: Red;
    width: 100%;
    height: 200px;
}

#id_iframe_middle_left, #id_iframe_middle_right {
    float: left;
    height: 800px;
}