Я хочу иметь горизонтальные списки, которые могут работать как можно шире, но внутри контейнера фиксированной ширины.Я использую jQuery, чтобы разрешить прокрутку по действительно широкому списку и переполнение: автоматически для пользователей без javascript.
У меня есть следующий код:
<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 очень широким,так что пользователи могут прокручивать далеко за пределы элементов списка, или я могу ограничить его, но если я добавлю слишком много элементов (динамически, поэтому у меня нет большого контроля), то макет нарушается.
Могу ли якаким-то образом заставить прокручиваемую область быть такой же широкой, как ее плавающее содержимое?Или это единственное решение, чтобы установить ширину в JavaScript (не идеально, но я могу это сделать)?