我有一个像this fiddle一样的结构元素,但在行动中它有响应。所以宽度总是不同的,当UL小于默认值时,我很难将LI居中。这是代码: [HTML]:
<ul>
<li>Some nice text</li>
<li>Some nice text</li>
<li>Some nice text</li>
<li>Some nice text</li>
<li>Some nice text</li>
<li>Some nice text</li>
<li>Some nice text</li>
<li>Some nice text</li>
</ul>
[CSS]:
ul {
width: 400px; /* <-- try to change it - li won't be centered :(*/
overflow-x: hidden;
overflow-y: auto;
padding: 0 16px;
border: 1px solid black;
}
li {
border-radius: 5px;
box-shadow: 0 0 15px #AAAAAA;
float: left;
height: 150px;
display: inline-block;
list-style: none;
margin: 15px;
padding: 10px;
text-align: center;
width: 100px;
}
明确的问题是:如何水平对齐具有响应宽度的块中的浮动元素?
答案 0 :(得分:2)
您可以通过提供父元素inline-block
并将text-align: center;
(例如顶部)添加到子元素来水平对齐中心vertical-align
元素,以避免垂直定位问题。
将text-align: center;
添加到ul
并将vertical-align: top;
添加到li
,然后从float: left;
代码中移除li
。
ul {
width: 400px;
overflow-x: hidden;
overflow-y: auto;
padding: 0 16px;
border: 1px solid black;
text-align: center;
}
li {
border-radius: 5px;
box-shadow: 0 0 15px #AAAAAA;
height: 150px;
display: inline-block;
list-style: none;
margin: 15px;
padding: 10px;
text-align: center;
width: 100px;
vertical-align: top;
}