0

I am struggling with possibly easy to solve question. I have a unordered list and 3 items inside a responsive divs.

I have managed to centre it horizontally but the vertical is where I am struggling with.

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

here is a test: http://jsfiddle.net/qq3LLop8/

dhh
  • 4,289
  • 8
  • 42
  • 59
user29200
  • 25
  • 5

2 Answers2

2

This should work:

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

See example:

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

nextstep
  • 1,399
  • 3
  • 11
  • 26
0

Just add display: table; to .insidetext and display: table-cell; to .insidetext ul.

Jacob
  • 2,212
  • 1
  • 12
  • 18