我有ul li 元素左浮动。我想将这些li元素与ul的中心对齐。
======>>>
我的尝试总是会导致这个
http://jsbin.com/EGoVAg/19/edit
答案 0 :(得分:2)
首先,从float: left;
中删除.widgetPhotoGallery li.photo
。 display: inline-block
(已包含)是正确定位元素所需的全部内容:
.widgetPhotoGallery li.photo{
background-color: blue;
padding: 0;
margin: 0;
position: relative;
display: inline-block;
}
然后,你需要做的就是给你的ul
一些填充(36px
双方均衡了):
.widgetPhotoGallery .photogallery{
background-color: lime;
list-style: none;
padding:0 36px;
margin: 0 auto;
text-align: left;
}
在旁注中,您不需要那些!important
声明中的任何。没有它们的造型是完全相同的。如果您需要覆盖现有样式,则应该查看CSS Specificity。
答案 1 :(得分:0)
您必须将固定宽度设置为ul
。因此,在您的示例中,每个li
的每边都有 118px 的宽度和 2px 的边距。要将两个li
排成一行,请将其设置为.widgetPhotoGallery .photogallery
:
width: 244px;
请注意,背景会变小,因此您只需将其放到.widgetPhotoGallery .widgetContent
.widgetPhotoGallery .widgetContent {
background-color: lime;
}
<强> Here's the update JSbin 强>
答案 2 :(得分:0)
您唯一的选择是设置固定宽度并执行:
#wrapper {
display: block;
margin: 0 auto; /* center it */
width: XXX;
}
如果您愿意,可以使用媒体查询在特定断点处设置固定宽度,或者您可以使用max-width
代替width
http://jsbin.com/EGoVAg/23/edit
您可能不喜欢这个答案(根据您的大字体判断,#wrapper不是固定宽度的粗体评论),但没有其他方法可以达到您想要的效果。