将div中的垂直列表居中

时间:2015-07-20 19:09:11

标签: html css list html-lists vertical-alignment

我正在努力解决可能容易解决的问题。我有一个无序列表和响应div内的3个项目。

我设法将它水平居中,但垂直是我正在努力的地方。

<div class="left">  
    <div class="boxtext">
        <div class="insidetext"> 
            <ul>
                <li>WATER</li>
                <li>JUICE</li>
                <li>TEA</li>
            </ul>
        </div>
    </div>
</div>

.left {
    @include aspect-ratio(16,9);
    width: 50%;
    height: 100vh;
    min-width: 300px;
    position: relative;
    background-size: cover;
    background-color:#333;
    position: relative;
}

@media (max-width:768px) {
    .left {
        width: 100%;
        height: 70vh;
    }
}

.boxtext {
    @include aspect-ratio(16,9);
    border: solid white 0.15em;
    height: 70vh;
    width: 70%;
    margin: auto;
    position: absolute;
    top: 0; 
    left: 0; 
    bottom: 0; 
    right: 0;
    text-align: center;
}

@media (max-width:768px) {
    .boxtext {
        width: 70%;
        height: 70%;
    }
}
.insidetext {
    @include aspect-ratio(16,9);
    background-color: aliceblue;
    height: 70%;
    width: 70%;
    margin: auto;
    position: absolute;
    top: 0; 
    left: 0; 
    bottom: 0; 
    right: 0;
    font-size: 9vh;
    text-align: center;
    min-height:100px;
}

.insidetext li {
    list-style-type:none;
}

.insidetext ul {
    display: table;
    margin: 0 auto;
}

.insidetext ul,li {
    list-style-type: none;
    list-style-position:inside;
    margin:0 auto;
    padding:0;
    vertical-align:middle;
}

这是一个测试:http://jsfiddle.net/qq3LLop8/

2 个答案:

答案 0 :(得分:2)

这应该有效:

.insidetext ul {
  display: table;
  margin: 0 auto;
  position: relative;                   <-- Note these additions
  top: 50%;                             <--
  transform: translateY(-50%);          <--
}

参见示例:

https://jsfiddle.net/atasker2/jo6etx0u/

答案 1 :(得分:0)

只需将display: table;添加到.insidetext,将display: table-cell;添加到.insidetext ul