2012-05-01 73 views
2

我想创建一个类似于netflix上看到的列表的水平滚动条。这是HTML的基本设置:使用CSS滚动水平列表

这是我将用它来解释我的努力的图像: enter image description here

上设置了是我想要的:scrolling_list有一个设置宽度(我把它设置为,比如300px)。然后,在这个div里面我有一个列表滚动器,它将托管多个名为outer_list的子项。上面的设置显示了list_scroller的宽度是如何随子项的数量而扩展的(1000,1300,1600或任何取决于子项的数量)。

不幸的是,我无法弄清楚如何用css做到这一点..现在,除非我指定list_scroller的宽度,否则它的宽度将不会扩展(它将假定第一个子元素的宽度) 。相反,list_scroller假设这个更短的宽度,然后儿童最终水平堆叠。

任何人都可以帮我解决这个问题吗?这是当前的CSS:

.scrolling_list { 
    overflow:auto; 
    overflow-y:hidden; 
    position:relative; 
    width:360px; 
} 
.list_scroller { 
    position:relative; 
    display:block; 
    overflow-x:auto; 
    overflow-y:hidden; 
    padding:10px; 
    height:360px; 
} 
.list_scroller .outer_list { 
    width:260px; 
    display:inline-block; 
} 
+0

在http://jsfiddle.net/ – riso

+0

上放置一些示例如何使用鼠标滚动并且每行不被绑定到其他行。 – 2014-07-16 16:49:57

回答

4

你在正确的轨道上!我认为不应该设置overflow: auto;overflow-y: hidden;,而应该将整个溢出设置为隐藏状态,并给list_scroller一个更大的宽度。像这样的东西可能会奏效:

http://jsfiddle.net/mEg7g/1/

祝你好运,我希望这有助于。 :d

+0

感谢,这是伟大的 - 只需切换.scrolling_list溢出:汽车;使一切正常。非常感谢 – jay

+0

这个工作,它没有为我滚动。 – 2014-07-16 16:45:06

1

另外,不要忘了添加

-webkit-overflow-scrolling: touch; /* I guess iOS 5 only */ 

对于iOS设备的兼容性。

+0

这不是一个标准化的财产,所以[不](http://www.glazman.org/weblog/dotclear/index.php?post/2012/02/09/CALL-FOR-ACTION:-THE-OPEN- WEB-NEEDS-YOU-NOW)使用它。 – bfontaine

+0

@boudou在我的iOS设备上为我工作,它使得溢出非常流畅,我真的很推荐它。默认情况下,这些设备不支持div滚动。 –

+1

@boudou编写的东西[链接](http://www.glazman.org/weblog/dotclear/index.php?post/2012/02/09/CALL-FOR-ACTION:-THE-OPEN-WEB-NEEDS -YOU-NOW)[/ link]是相当不错的,很好的工作,即使我这么认为,但有时候,为了让你的东西在大多数设备上工作,我们确实需要这些属性,比如,这个溢出滚动属性可以避免几个kbs的javascript与CSS的成本或只是一个单一的css行,你会看到......,类似的东西,如-webkit-tap-highlight-color:rgba(0,0,0,0); - webkit-font-smoothing:subpixel-antialiased ;,需要在每个好网站上都有。 :) –