Я хочу центрировать ul в div, который является левым столбцом жидкостного макета. Для этого мне нужно установить ширину div, который я использовал, чтобы обернуть ul. Примечание: элементы списка (и содержимое) извлекаются из базы данных с использованием php.
Меня интересуют ваши предложения о том, как сделать это с помощью jquery.
Рассмотрим следующую разметку:
<div id="wrapper">
<div id="left-column">
<div id="list-wrap">
<ul>
<li>Dynamic content 1</li>
<li>Dynamic content 2</li>
<li>Dynamic content 3</li>
<li>Dynamic content 4</li>
</ul>
</div><!--/list-wrap-->
</div><!--/left-column-->
<div id="right-column">
Content
</div><!--/right-column-->
<div style="clear: both;"></div>
</div><!--/wrapper-->
Использование этого CSS:
#wrapper {}
#left-column { float: left; width: 50%; }
#right-column { float: right; width: 50%; }
#list-wrap { margin: 0 auto 0 auto; padding: 40px; }
#list-wrap ul { list-style-type: none; }
#list-wrap ul li { float: left: width 160px; height: 160px; margin: 20px; }
Я не слишком умен, когда дело доходит до JavaScript, но я думаю, что решение повлечет за собой что-то вроде этого:
- Найти ширину области полезного содержимого # левой колонки.
- Определите, сколько li будет вписываться в эту ширину (с учетом поля и отступа # list-wrap).
- Округлить число до ближайшего 200px (ширина 160px + поля 2x20px)?
- Применить ширину к # list-wrap.
Вот то, что я использовал до того, как оно удовлетворяет НЕКОТОРЫМ критериям для начала работы:
var menuWidth = 0;
$(".menu > ul > li > a").each(function(i) {
menuWidth += $(this).outerWidth(true);
});
$(".menu").css("width", menuWidth);
Заранее спасибо за помощь,
Niels