Я хочу центрировать 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).
- Округлить цифру до ближайших 200 пикселей (ширина 160 пикселей + поля 2x20 пикселей)?
- Примените ширину к # list-wrap.
Вот кое-что, что я использовал раньше, что соответствует НЕКОТОРЫМ критериям для начала:
var menuWidth = 0;
$(".menu > ul > li > a").each(function(i) {
menuWidth += $(this).outerWidth(true);
});
$(".menu").css("width", menuWidth);
Заранее спасибо за помощь,
Нильс