【问题标题】:HTML— Create horizontal Scrollbar once a certain width has been reachedHTML——达到一定宽度后创建水平滚动条
【发布时间】:2012-01-31 10:06:00
【问题描述】:

我有一个宽度为 100% 的水平导航栏。一旦导航达到一定 最小宽度——大约 800 像素,我说——我想要一个水平滚动条出现。 CSS 属性 min-width 不起作用,因为它不会创建滚动条。

This 的帖子提出了与我相同的问题,但该人得到的唯一好的答案是使用 jQuery 插件,我不确定如何使用它添加滚动条。

如何添加超过固定最小宽度的水平滚动条?请帮帮我。

谢谢。

编辑根据要求,这是我的代码:

HTML

<nav id="topBar">
    <section id="topBarRight">
        <!-- stuff !-->
    </section>
</nav>

CSS(没有您的任何建议)

#topBar
{
    position: fixed;
    top: 0px;
    left: 0px;

    width: 100%;
    height: 50px;
    min-width: 800px;
}

#topBarRight
{
    float: right;
}

【问题讨论】:

    标签: jquery html css scroll overflow


    【解决方案1】:

    本质上,您需要某种父元素来包含导航,充当一种“视口”:

    <nav id="topBar">
      <section id="topBarRight">
        <ul id="navMenu">
          <li>Home</li>
          <li>About</li>
          <!-- ... -->
        </ul>
      </section>
    </nav>
    

    然后您可以限制父级的宽度并允许导航根据需要增长:

    <style>
      #topBar {
        /* ... */
        width: 100%;
        overflow: auto;
      }
    
      #topBarRight {
        min-width: 800px;
        overflow-x: auto;
      }
    
      #navMenu {
        float: right;
        /* ... */
      }
    </style>
    

    【讨论】:

    • 我不确定您在#topBarRight 中的确切内容,所以我只是在其中插入了&lt;ul&gt;。通过将 #topBar 的宽度设置为 100% 并在 #topBarRight 上设置 min-width,我能够在 #topBar 上获得滚动条。我会再次更新我的答案。
    • 试过了,但是滚动条是垂直的。
    • 我将示例代码直接复制并粘贴到 HTML 文档中,在 WebKit 中打开它,当我将浏览器窗口宽度缩小到 800 像素以下时会出现水平滚动条。 #topBarRight的内容是什么?你用的是哪个浏览器?
    • 我也有一个 WebKit 浏览器:Chrome。 #topBarRight 中的代码只是一些导航链接。我会研究一下,谢谢你的支持。
    • 水平滚动条在需要时出现,但现在总是有一个小的垂直滚动条。
    【解决方案2】:

    我会将一个具有 min-width 的 div 作为所有导航栏内容的父级放入导航栏中。 导航栏本身应该有overflow-x:auto 和overflow-y:hidden,或者overflow:auto。 滚动条将需要额外的垂直空间,因此可能也需要垂直滚动条。

    【讨论】:

    • 你的意思是 min-width 而不是 minSize?
    【解决方案3】:

    这会生成一个具有静态宽度的框来包含您的内容。当没有足够的空间容纳该框(窗口小于 400 像素)时,会出现一个滚动条。
    http://jsfiddle.net/Re4AP/5/

    这会生成一个默认为 100% 宽度且最小宽度为 400 像素的框来包含您的内容。当没有足够的空间来容纳框中的内容时,它会将内容(在这种情况下为文本)分成多行。如果窗口小于 400px(最小宽度),则会出现滚动条。
    http://jsfiddle.net/Re4AP/7/

    【讨论】:

    • 小提琴是否说明了您的问题?
    • 并非如此。如果我将宽度属性设置为最小宽度,那么当窗口大于最小宽度时,导航栏显然会太小。但是,溢出已在我试图实现的过程中得到处理。
    • 您说,“一旦导航达到某个最小宽度,我希望出现一个水平滚动条”。我对此感到困惑。最小宽度是什么意思?请澄清您想要实现的目标。
    • 很抱歉。随着窗口变小,导航栏也会变小,因为它的宽度是百分比。但是,一旦窗口为 800 像素或更小,就不足以包含导航栏中的所有内容。因此,导航栏正常运行的最小宽度为 800 像素。之后,应该会出现一个滚动条。
    • 我需要将#navbar的宽度设置为800px吗?
    猜你喜欢
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 2010-09-20
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多