【问题标题】:Multiple issues with flexbox and min-height 100vhflexbox 和 min-height 100vh 的多个问题
【发布时间】:2023-04-10 20:37:01
【问题描述】:

我的页面看起来就像这样

<article>
    <header>header</header>

    <section>section</section>

    <footer>footer</footer>
</article>

虽然这看起来太容易了,但我需要它来做 3 件事:

1) 如果section 小于可用高度,页脚应位于底部(如果部分变大,页脚将简单地位于页面的末尾(滚动)):@987654321 @

2) 它应该可以在 IE10 中工作(查看 IE10 中的演示,您会发现 flexbox 不能很好地工作:DEMO

3) 最后,如果显示一个巨大的模态对话框(非常高),页脚应位于页面底部:DEMO

任何帮助将不胜感激!

【问题讨论】:

    标签: html css modal-dialog flexbox


    【解决方案1】:

    您似乎已经完成了第 1 项。在我看来,flex-grow 是正确的选择。

    对于Item #2,尝试将vendor prefixes 添加到您的CSS 中,这是flexbox 在IE10(和Safari 8)中工作所必需的。在此处查看浏览器支持信息:http://caniuse.com/#search=flex

    如需快速添加所需的所有前缀,请在此处的左侧面板中发布您的 CSS:Autoprefixer

    另请注意,IE10 不支持current flexbox specification

    它只支持old "tweener" syntax,几乎没有其他浏览器使用。

    关于 IE10 的底线:

    2012 年 3 月的 [tweener] 草案没有对应的 flex-growflex-shrinkflex-basis——这些属性可以 只能通过flex 速记属性设置。

    来源:https://stackoverflow.com/tags/flexbox/info

    对于第 3 项,我需要在有更多时间的时候进行处理。也许有人无法在另一个答案中帮助您。请记住,代码中的模态是绝对定位的,这意味着它已从文档流中删除,并且页脚甚至都不知道它存在。

    【讨论】:

    • 非常感谢您的帮助。我已经更新了 item2 的演示,但我仍然有布局问题(你是对 item 1 :)
    • 尝试使用flex 速记,而不是flex-grow。请参阅我修改后的答案。
    • 不确定flex-grow: 1 的简写符号是什么。但根据文档,我的印象应该是:flex: 1jsfiddle 但这在 IE 中看起来更糟:(
    • 我稍后再看,但似乎ie10和flexbox不能很好地配合使用:stackoverflow.com/q/18711282/3597276
    • 并注意这篇来自 Microsoft 的详细文章。msdn.microsoft.com/library/hh673531(v=vs.85).aspx
    猜你喜欢
    • 1970-01-01
    • 2019-03-27
    • 2016-06-01
    • 1970-01-01
    • 2021-03-17
    • 2020-05-06
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多