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

没有固定高度的滚动条/带有滚动条的动态高度

容磊
2023-03-14
问题内容

我有这个HTML结构:

<div id="body">
    <div id="head">
        <p>Dynamic height without scrollbar</p>
    </div>
    <div id="content">
        <p>Dynamic height with scrollbar</p>
    </div>
    <div id="foot">
        <p>Fixed height without scrollbar</p>
    </div>  
</div>

我想在主体部分(#body)中包含三个部分而不会溢出。因此,我需要在中间部分使用滚动条。

我尝试了这个CSS:

#content{
    border: red solid 1px;
    overflow-y: auto;
}

和这个:

#content{
    border: red solid 1px;
    overflow-y: auto;
    height: 100%;
}

但是它们都不起作用。

我在JSFiddle上做了一个例子。

我可以仅使用CSS和HTML来做到这一点吗?我宁愿避免使用Javascript。


问题答案:

Flexbox是一种现代替代方案,可让您无需固定高度或JavaScript即可执行此操作。

设置display: flex; flex-direction: column;在容器上,并flex-shrink: 0;在页眉和页脚的div的伎俩:

HTML:

<div id="body">
    <div id="head">
        <p>Dynamic size without scrollbar</p>
        <p>Dynamic size without scrollbar</p>
        <p>Dynamic size without scrollbar</p>  
    </div>
    <div id="content">
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
        <p>Dynamic size with scrollbar</p>
    </div>
    <div id="foot">
        <p>Fixed size without scrollbar</p>
        <p>Fixed size without scrollbar</p>
    </div>  
</div>

CSS:

#body {
    position: absolute;
    top: 150px;
    left: 150px;
    height: 300px;
    width: 500px;
    border: black dashed 2px;
    display: flex;
    flex-direction: column;
}

#head {
    border: green solid 1px;
    flex-shrink: 0;
}

#content{
    border: red solid 1px;
    overflow-y: auto;
    /*height: 100%;*/
}

#foot {
    border: blue solid 1px;
    height: 50px;
    flex-shrink: 0;
}


 类似资料:
  • 我一直在努力解决HTML/CSS粘滞头+滚动条的问题。我们正在创建一个程序,一旦containersize达到某个点(取决于用户的分辨率),就需要滚动条显示出来。 我在表中的第二列上强制设置一个min-width,因此表在某个点停止递减,并强制容器保持在某个宽度。容器上的溢出显示水平滚动条。一切正常。一旦我为垂直滚动添加了第二个滚动条,事情就会变得一团糟。有人有解决这个问题的办法吗?我想在.tab

  • 我很难找到正确的设置,使ChartJS条形图具有固定的画布高度,但允许宽度为overflow-x。我在这里找到了一个示例。。。http://jsfiddle.net/mbhavfwm/它使用ChartJS1.0,但我使用的是ChartJS2.6。所以,我在这里找到了另一个例子http://jsfiddle.net/jmpxgufu/它使用ChartJS 2,但本例显示了仅使用少数值呈现的图表,然后

  • CSS: 也就是立场:绝对;使它不同于其他类似的问题,我觉得。目前我可以隐藏滚动条,但当我调整浏览器窗口的大小时,你可以看到部分滚动条伸出来。

  • 问题内容: 我想创建一个可以滚动但不显示滚动条的div。我已经找到了Webkit的解决方案(如下),但是如何在其他浏览器中实现呢? 我宁愿避免使用javascript插件。希望找到CSS或特定于供应商的解决方案。 问题答案: 您必须将可滚动div包裹在另一个div中,以隐藏滚动条。 。 顺便说一句:一个漂亮的jQuery小插件jScrollPane使用了相同的技术

  • 已解决的检查答案如下... 因此,我正在尝试为我的Android应用程序创建一个评论功能,我想在recyclerview中显示评论,然后在recyclerview下面有一个按钮和textview来添加评论。我想让recyclerview有一定的高度,如果有很多评论,它就可以滚动,因为我不想让用户不得不向下滚动屏幕才能找到add按钮。 我不能让它工作,所以我想知道是否有人有这个问题。 我的XML(滚

  • 问题内容: 我需要在网页上显示一个大表,并且需要防止第一列和第一行滚动。 我想动态设置此表的垂直大小(在某些静态大小的页眉/页脚页面内容之间),以使其尽可能高,而不必强制浏览器窗口具有垂直滚动条。 这仅需要在使用所有/任何版本的现代浏览器中工作:html,css,javascript,jquery 重要顺序: 具有许多表单字段,隐藏值,行的javascript折叠等的复杂表,稍后将添加 第一行将有