css元素高度减去高度变化的元素的高度

时间:2016-12-14 12:55:18

标签: css height calc calculation

aye伙计们!

是否可以使用css3进行动态高度计算?我无法找到任何东西......但也许我只是在我的搜索中使用了错误的术语。

问题:我有一个网站,我想要包含一个100%高度减去导航元素高度的iframe。不幸的是,导航元素并不总是相同的高度(一台设备上44px,另一台设备上36px ......等等)

有没有办法计算?或者我是否需要修复nav元素的高度才能使其正常工作?

2 个答案:

答案 0 :(得分:1)

当然! 我假设导航元素高度取决于屏幕大小,您可以使用媒体查询给出不同的高度。因此,您只需确定元素高度变化的大小或宽度:

    /*put your conditions here*/
    @media (min-height: 500px), (min-width: 580px) {
        iframe{
            height: calc(100% - 44px);
        }
    }
    /*put your conditions here*/
    @media (max-height: 1000px), (min-width: 580px) {
        iframe{
          height: calc(100% - 36px);
        }
   }

更多信息:http://www.w3schools.com/cssref/css3_pr_mediaquery.asp

答案 1 :(得分:1)

您可以在两个元素的包装上使用display: flex属性。

html, body, #wrapper {
  height: 100%;
}

#wrapper {
  display: flex;
  flex-direction: column;
}

#frame-fill {
  flex-grow: 1;
}

<div id="wrapper">
    <div>HEADER DYNAMIC</div>
    <iframe id="frame-fill" src=''></iframe>
</div>

确保您寻找flex的浏览器支持。它是一个更新的概念。