响应div内的浮动元素的水平对齐

时间:2014-09-24 01:16:55

标签: html css responsive-design

我有一个像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;
}

明确的问题是:如何水平对齐具有响应宽度的块中的浮动元素?

1 个答案:

答案 0 :(得分:2)

您可以通过提供父元素inline-block并将text-align: center;(例如顶部)添加到子元素来水平对齐中心vertical-align元素,以避免垂直定位问题。

text-align: center;添加到ul并将vertical-align: top;添加到li,然后从float: left;代码中移除li

JSFiddle - DEMO

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;
}