代码之家  ›  专栏  ›  技术社区  ›  99miles

如何根据内容大小强制水平滚动

  •  0
  • 99miles  · 技术社区  · 15 年前

    如果需要的话,我希望有一个水平滚动条,通过让‘child’div按大小并排添加,而不是在父级不够宽时被推到下一行。

    我的代码在下面。如果你把.mid设为width:1000px,你就会知道我要的是什么,只是我只希望它和动态生成的子对象一样宽。

    <html>
    <head>
    
        <style type="text/css">
    
            .parent {
                width: 400px;
                background-color: #666;
                overflow:scroll;  /* cater to the older browsers */
                overflow-y:hidden; /* Hide vertical*/
            }
    
            .mid {
                background-color: red;
            }
    
            .child {
                display:inline-block;
                background-color: #ccc;
                border: 1px solid black;
                width: 190px;
            }
    
        </style>
    
    </head>
    <body>
        <div class="parent">
            <div class="mid">
                <div class="child">
                    I am a child.
                </div>
                <div class="child">
                    I am a child.
                </div>
                <div class="child">
                    I am a child.
                </div>  
            </div>
        </div>
    
    </body>
    </html>
    
    3 回复  |  直到 15 年前
        1
  •  0
  •   Moin Zaman    15 年前

    人们以前来过这里,找到了最好/最简单的方法。看这里:

    http://css-tricks.com/how-to-create-a-horizontally-scrolling-site/

        2
  •  3
  •   Yi Jiang G-Man    15 年前

    见鬼,还是回答这个吧。您将需要Javascript来实现这一点,但是考虑到您已经使用Javascript来动态生成子元素,这应该不是什么问题。

    假设您使用的是jQuery,则在生成元素后添加以下两行:

    var child = $('child');
    $('.mid').width(child.length * child.outerWidth(true));
    

    很抱歉沟通不畅

    然而,使用它会产生另一个问题。 display: inline-block div ,因此jQuery无法获得正确的宽度。如果你使用 float: left 相反,尽管如此。

        3
  •  0
  •   Kieran    15 年前

    overflow:auto