我想要水平列表可以運行儘可能寬,但在固定寬度的容器內。我使用jQuery來允許在真正廣泛的列表上滾動,並且溢出:對於沒有javascript的用戶來說是自動的。CSS漂浮在同一行變量的數量
我沿着這行代碼:
<div class="list">
<ul>
<li class="feed">
<section>
<h1><span class="name">Title</span></h1>
<div class="scroll_left"><a class="ir" href="#">Scroll Back</a></div>
<div class="article_list">
<ul class="article_list">
<li>
<a href="article.php">
<div class="article_thumb"><img src="img/placeholder.png" alt="blah" /></div>
<h2>Title of article</h2>
</a>
</li>
<li>
<a href="article.php">
<div class="article_thumb"><img src="img/placeholder.png" alt="blah" /></div>
<h2>Title of article</h2>
</a>
</li>
<li>
<a href="article.php">
<div class="article_thumb"><img src="img/placeholder.png" alt="blah" /></div>
<h2>Title of article</h2>
</a>
</li>
<!-- variable number of li's, from 10s to 100s -->
</ul>
</div>
</section>
</li>
<!-- More of these lists -->
</ul>
</div>
我只是給我的CSS的一個子集,我認爲是相關的:
.feed .article_list {
position: relative;
overflow: auto;
float: left;
width: 900px;
}
.feed .article_list ul {
position: relative;
width: 10000px; /** I want this to be wide, but not allow scrolling past the end*/
margin: 0;
background-color: #ffffff;
}
.feed .article_list li {
display: block;
width: 130px;
height: 150px;
position: relative;
float: left;
border-right: 2px solid #b5e8f4;
border-left: 2px solid #b5e8f4;
margin: 0 5px 0 0;
}
我的JavaScript:
$(document).ready(function() {
$('div.article_list').css({
'overflow' : 'hidden'
});
$('.scroll_left a').click(function() {
toScroll = $(this).parent().next();
toScroll.animate({scrollLeft: "-=135"});
return false;
});
$('.scroll_right a').click(function() {
toScroll = $(this).parent().prev();
toScroll.animate({scrollLeft: "+=135"});
return false;
});
});
因此,我要麼必須使內部ul真的很寬,這樣用戶就可以滾動到列表項以外,或者我可以restri ct它,但如果我添加太多項目(動態,所以我沒有太多的控制),然後佈局中斷。
我可以以某種方式讓該可滾動區域與其浮動內容一樣寬嗎? 或者是在javascript中設置寬度的唯一解決方案(不太理想,但我可以這樣做)?
謝謝!現在瀏覽器對此有何支持?我放棄IE6和舊瀏覽器,我很好,但我希望這在現代瀏覽器中工作。我可以在我自己的時間進行測試,除非您手邊有答案。 – Matt
@Matt um ...瀏覽器支持...我通常只擔心IE8 +(因爲XP不能更高)。我已經添加了一個更新,我認爲它應該使其更加跨瀏覽器。但沒有承諾。抱歉。 –
@Matt初始測試在IE7中不起作用。如果你想支持IE7 http://jsfiddle.net/GBtCb/3/與你原來的版本不同的是,在'.feed .article_list'和'overflow-x:在'.article_list ul'上滾動 –