我希望将 ul 居中在一个 div 中,该 div 是液体布局的左列。为此,我需要设置用于包装 ul 的 div 的宽度。注意:列表项(和内容)是使用 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,我不太聪明,但我认为解决方案需要这样的东西:
- 找到#left-column 的可用内容区域的宽度。
- 计算出多少 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);
在此先感谢您的帮助,
尼尔斯