仅水平滚动

发布于 2024-11-27 13:15:34 字数 1002 浏览 0 评论 0原文

我正在尝试创建一个水平滚动条,当溢出时它将在页面顶部水平滚动。我已经尝试了与溢出值的不同组合,但 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>

I'm trying to create a horizontal scrolling bar which when overflowed will scroll horizontally at the top of the page. I have tried different combinations of this with overflow values but the inline-div elements that I have in the div with the horizontal settings just creates a line break meaning that the horizontal bar is pointless. This is my code:

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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风铃鹿 2024-12-04 13:15:34

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

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>

If you want horizontal scrolling, you need your content to become larger than the container. It is not possible with floating element or inline element : They fall on the "next line" when there is not enough space left.

2 solutions :

Put your content in an extra-large element.

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

with CSS:

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

Use non-floating/non-inline element.

It is easier but... it use a single row table. There are probably alternatives, but I can't see one right now.

I didn't touch your CSS at all and this works :

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文