当前位置: 首页 > 面试题库 >

如何在全高度应用程序中组合flexbox和垂直滚动?

司马渝
2023-03-14
问题内容

我想通过Flexbox使用全高应用。我display: box;在此链接中找到了使用旧的flexbox布局模块(和其他东西)所需的内容:CSS3Flexbox全高应用程序和溢出

对于仅支持旧版flexbox CSS属性的浏览器,这是正确的解决方案。

如果我想尝试使用更新的flexbox属性,我将尝试在列为hack的同一链接中使用第二种解决方案:使用带有的容器height: 0px;。它使显示垂直滚动。

我不太喜欢它,因为它引入了其他问题,并且它是解决方法,而不是解决方案。

html" target="_blank">html, body {

    height: 100%;

}

#container {

    display: flex;

    flex-direction: column;

    height: 100%;

}

#container article {

    flex: 1 1 auto;

    overflow-y: scroll;

}

#container header {

    background-color: gray;

}

#container footer {

    background-color: gray;

}


<section id="container" >

    <header id="header" >This is a header</header>

    <article id="content" >

        This is the content that

        <br />

        With a lot of lines.

        <br />

        With a lot of lines.

        <br />

        This is the content that

        <br />

        With a lot of lines.

        <br />

        <br />

        This is the content that

        <br />

        With a lot of lines.

        <br />

        <br />

        This is the content that

        <br />

        With a lot of lines.

        <br />

    </article>

    <footer id="footer" >This is a footer</footer>

</section>

这是一个全高HTML网站,由于content元素的flexbox属性,页脚位于底部。我建议您在CSS代码和结果之间移动栏,以模拟不同的高度。


问题答案:

解决方案是为垂直可滚动元素设置高度。例如:

#container article {
    flex: 1 1 auto;
    overflow-y: auto;
    height: 0px;
}

元素 具有高度,因为flexbox会重新计算它,除非您需要 最小高度, 因此您可以使用height: 100px;它与以下元素完全相同:min-height: 100px;

#container article {
    flex: 1 1 auto;
    overflow-y: auto;
    height: 100px; /* == min-height: 100px*/
}

因此,如果要min-height在垂直滚动条中找到一个最佳解决方案:

#container article {
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 100px;
}

如果您只想要完整的垂直滚动,以防没有足够的空间来查看文章:

#container article {
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 0px;
}


 类似资料:
  • 本文向大家介绍使用更新的Flexbox API和HTML在全高度应用程序中进行Flexbox和垂直滚动,包括了使用更新的Flexbox API和HTML在全高度应用程序中进行Flexbox和垂直滚动的使用技巧和注意事项,需要的朋友参考一下 flex属性是flex-grow,flex-shrink和flex-basis属性的简写。flex属性设置弹性项目的弹性长度。 例如- 如果要最小高度,则使用高

  • 我正在自动化混合应用程序。我想点击在页面上看不到的注销,因此我需要向下滚动来点击它。我正在尝试下面的代码,但它不起作用,我正在使用Java client 5.0.4 Appium server 1.7.2和selenium 3.9.1以及Java jdk版本1.8.0_161。谁能帮忙吗

  • 问题内容: 如何使用flexbox在容器内水平和垂直居中div。在下面的示例中,我希望每个数字都彼此相邻(按行),并水平居中。 问题答案: 我认为您想要以下内容。 你的元素应该是块级(而非)如果你想要的高度和顶部/底部填充,以正常工作。 另外,在上,将宽度设置为而不是。 您的属性很好。 如果您希望垂直居中于视口中,请为和分配100%的高度,然后将页边距清零。 请注意,需要一个高度才能看到垂直对齐效

  • 如何使用FlexBox在容器内水平和垂直地居中div。在下面的例子中,我希望每一个数字在彼此下面(在行中),水平居中。 null null http://codepen.io/anon/pen/zlxbo

  • 出于好奇,考虑到下面的示例,为什么在#container div上有边距会导致浏览器中出现垂直滚动条?容器的高度比设置为100%的车身高度小得多。 我已经将除了#容器之外的所有元素的填充和边距设置为0。注意,我故意省略了#container div上的绝对定位。在这种情况下,浏览器是如何计算身体的高度的,边距是如何影响它的? JSFiddle上的示例

  • 我希望能够在RichTextFX中将垂直滚动设置为InlineStyleTextArea的顶部或底部。从这个线程的外观来看,<代码>移动到(…) 应该起作用。但这对我不起作用。我还尝试了选择范围(…) 和位置插入符号(…) 。下面是我的测试程序,我是否误解了上面链接的线程中提到的“重新定位插入符号的解决方法”?