大家好!
有没有可能使用CSS3进行动态高度计算?我找不到任何东西...但也许我只是在搜索时使用了错误的术语。
问题:我有一个网站,我想在其中包含一个iframe,其高度为100%减去导航元素的高度。不幸的是,导航元素的高度并不总是相同的(在一个设备上为44px,在另一个设备上为36px等等)
有办法计算吗?还是我需要修复导航元素的高度才能使其正常工作?
大家好!
有没有可能使用CSS3进行动态高度计算?我找不到任何东西...但也许我只是在搜索时使用了错误的术语。
问题:我有一个网站,我想在其中包含一个iframe,其高度为100%减去导航元素的高度。不幸的是,导航元素的高度并不总是相同的(在一个设备上为44px,在另一个设备上为36px等等)
有办法计算吗?还是我需要修复导航元素的高度才能使其正常工作?
您可以在这两个元素的容器上使用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 的浏览器。这是一个较新的概念。
好的! 我假设导航元素高度取决于屏幕大小,因此您可以使用媒体查询为不同的屏幕大小设置不同的高度。因此,您只需要确定元素高度发生变化的尺寸或宽度:
/*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);
}
}