【问题标题】:Center a vertical list inside a div [duplicate]在 div 中居中垂直列表 [重复]
【发布时间】:2015-10-10 01:04:58
【问题描述】:

我正在努力解决可能很容易解决的问题。我在响应式 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/

【问题讨论】:

  • 对我来说看起来不错。如果你真的想要,你可以在图像变小时使文本变小
  • 但是.insidetext里面的文字不在中间

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


【解决方案1】:

这应该可行:

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

查看示例:

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

【讨论】:

  • 由于某种原因,这适用于 jsfiddle 但不适用于网站,但谢谢
  • 您是否包含页面上的所有 html?能否提供代码链接?
  • 现在可以使用了,谢谢 :)
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 2018-10-29
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2017-09-25
    • 2014-05-10
    • 2012-12-16
    • 2013-10-14
    相关资源
    最近更新 更多