【问题标题】:Horizontal Scrolling only仅水平滚动
【发布时间】:2011-08-01 12:13:04
【问题描述】:

我正在尝试创建一个水平滚动条,当它溢出时会在页面顶部水平滚动。我已经尝试过将此与溢出值的不同组合,但我在 div 中具有水平设置的 inline-div 元素只会创建一个换行符,这意味着水平条毫无意义。这是我的代码:

CSS:

#files_scroll {
    width: 100%;
    height: 120px;
    background-color: #FFFFFF;
    overflow-x: scroll;
    overflow-y: hidden;
}

.file_icon {
    height: 80px;
    margin: 7px;
    padding-left: 10px;
    display: inline-block;
    padding: 5px;
    float: left;
    background-color: #CCCCCC;
    opacity: 0.5;
    border-radius: 10px;
    width: 90px;
}


<div id="main_content">
            <div id="files_scroll">
               <a class="file_icon">1</a>
               <a class="file_icon">2</a>
               <a class="file_icon">3</a>
               <a class="file_icon">4</a>
               <a class="file_icon">5</a>
               <a class="file_icon">6</a>
               <a class="file_icon">7</a>
            </div>
</div>

【问题讨论】:

  • 您希望滚动条按字面意思显示在顶部,而不是标准的底部?
  • 它在页面上的一个单独的 div 中,而不是默认的滚动条。

标签: css scrollbar


【解决方案1】:

如果你想要水平滚动,你需要你的内容变得比容器大。浮动元素或内联元素是不可能的:当没有足够的空间时,它们会落在“下一行”。

2 个解决方案:

将您的内容放在一个超大的元素中。

<div id="files_scroll">
    <div id="file_container">
       <a class="file_icon">1</a>
       <a class="file_icon">2</a>
       [...]

使用 CSS:

#file_container {
    width:200%; /*or a javascript calculated value... */
}

使用非浮动/非内联元素。

它更容易,但是......它使用单行表。可能有其他选择,但我现在看不到。

我根本没有碰你的 CSS,这很有效:

<div id="main_content">
    <div id="files_scroll">
        <table><tr>
           <td><a class="file_icon">1</a></td>
           <td><a class="file_icon">2</a></td>
           <td><a class="file_icon">3</a></td>
           <td><a class="file_icon">4</a></td>
           <td><a class="file_icon">5</a></td>
           <td><a class="file_icon">6</a></td>
           <td><a class="file_icon">7</a></td>
           <td><a class="file_icon">8</a></td>
           <td><a class="file_icon">9</a></td>
           <td><a class="file_icon">10</a></td>
           <td><a class="file_icon">11</a></td>
           <td><a class="file_icon">12</a></td>
           <td><a class="file_icon">13</a></td>
           <td><a class="file_icon">14</a></td>
           <td><a class="file_icon">15</a></td>
           <td><a class="file_icon">16</a></td>
           <td><a class="file_icon">17</a></td>
           <td><a class="file_icon">18</a></td>
           <td><a class="file_icon">19</a></td>
           <td><a class="file_icon">20</a></td>
           <td><a class="file_icon">21</a></td>
        </tr></table>
    </div>
</div>

【讨论】:

  • 这是一个问题,因为它是一个具有 100& 高度和宽度规范的应用程序,但是当我使用任何一种方法时,它都会扩展页面并创建一个无法接受的滚动条。
  • 在哪个浏览器中?你有live demo 什么的吗?我不确定我是否理解这个问题。您更喜欢page-scroll 吗?
  • 你应该使用display: inline-block;而不是使用表格——它会更符合语义。
  • @Nightfirecat :我知道,但是inline-block won't expand the container。使它们起作用的方法是使用我的solution #1。这需要对超大元素进行仔细计算/javascript调整,除非有我不知道的事情。
  • 啊,好吧 - 那是有道理的。
猜你喜欢
  • 2011-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 2010-10-01
  • 1970-01-01
相关资源
最近更新 更多