CSS:水平对齐列表中的两个元素

时间:2014-01-12 19:23:48

标签: css

我试图在顶部创建一个包含图片的框,在底部创建两个按钮。两个按钮必须保持内联和居中(至少水平)。

这是HTML代码:

<div id="box1">
    <p>Text Text Text Text Text Text Text Text</p>
    <p>Text Text Text Text Text Text Text Text Text Text Text Text Text</p>
    <p>Text Text Text Text Text Text Text Text Text Text Text Text Text</p>
</div>
<div id="popinfo2">
    <div>
        <img src="http://imageenvision.com/450/18963-sweaty-woman-skipping-or-dancing-during-cardio-exercise-at-the-gym-clipart-by-djart.jpg">
    </div>            
    <div>
        <ul>
            <li><a href="#">P</a></li>
            <li><a href="#">P</a></li>
        </ul>
    </div>
</div>

这就是CSS:

body{
    background: sandybrown;
    height: 300px;
    width: 90%;
}

#box1{
    position: relative;
    background: mediumseagreen;
    padding: 0; margin: 0;
    width: 60%;
    height: 100%;
    float: left;
}

#popinfo2{
    position: relative;
    background: plum;
    height: 100%;
    width: 40%;
    float: left;
}

#popinfo2 div{
    position: relative;
    background: lightseagreen;
    padding: 0;
    display: block;
    margin: auto;
    vertical-align: middle;
}

#popinfo2 div:first-of-type{
    width: 35%;
    height: 75%;
}

#popinfo2 div:nth-of-type(2){
    width: 100%;
    height: 25%;
}

#popinfo2 div img{
    background: aliceblue;
    position: relative;
    padding: 0; border: 0;
    display : block;
    margin: auto;
    vertical-align: middle;
    width: 100%;
    height: 100%;
}

/*#popinfo2 div div{
    background: dodgerblue;
    height: 50%;
    width: 80%;
    padding: 0; margin: auto;
}*/

#popinfo2 div ul{
    position: relative;
    background: yellow;
    float: left;
    width: 100%;
    height: 100%;
    margin: 0; padding: 0;
    text-align: center;
}


#popinfo2 div ul li {
    position: relative;
    float: left;
    list-style: none;
    position: relative;
    padding: 0.5em;
    margin: auto;
}

#popinfo2 div ul li a {
    float: left;
    padding: 0.5em 3.5em;
    text-decoration: none;
    color: white;
    background: brown;
    width: 2em;
}

我找到的唯一方法是在li标签内插入左边距。我并不喜欢它,因为它需要关闭百分比。

2 个答案:

答案 0 :(得分:1)

如果您希望以中心为中心,则应使用display:inline-block代替float <li>http://codepen.io/anon/pen/rKBeE

float kill显示并将内容发送到其容器右侧或左侧的极限,它不再完全在流程中。

答案 1 :(得分:1)

以下是DEMO

首先,使用inline-block作为li,然后text-align: center;将起作用。 其次,明智地检查您的代码 - 您将float:left;设置为浮动li中的<a>标记。