Desplazamiento horizontal usando css en la interfaz de usuario de mampostería personalizada
Estoy en una búsqueda para crear una interfaz de usuario de mampostería. Probé muchas muestras y muchas respuestas en StackOverflow, pero nada parece ayudarme.
Mi situación es esta. Tengo un contenedor ul
que tiene una altura de height: calc(100vh - 110px);
que no puede cambiar. Se insertarán algunas imágenes dinámicas en el li
de este ul
Quiero que estos li
se organicen como la imagen dentro de ellos.
El primer método que probé terminó dándome esto:
img {
width: auto;
height: auto;
max-width: 100%;
vertical-align: middle;
border: 0;
max-width: 100%;
}
.template-row {
display: flex;
flex-flow: row wrap;
margin-left: -8px;
/* Adjustment for the gutter */
width: 100%;
height: calc(100vh - 110px);
overflow-x: hidden;
overflow-y: scroll;
padding: 0;
}
.template-row li {
flex: auto;
height: auto;
min-width: 150px;
margin: 0 8px 8px 0;
/* Some gutter */
width: 30%;
list-style: none;
}
<ul class="template-row">
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
</ul>
Como ves arriba, el li
tiene la misma altura.
El segundo método que probé:
img {
width: auto;
height: auto;
max-width: 100%;
vertical-align: middle;
border: 0;
max-width: 100%;
}
.template-row {
-moz-column-count: 4;
-webkit-column-count: 4;
column-count: 4;
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
column-gap: 1em;
height: calc(100vh - 110px);
overflow-x: hidden;
overflow-y: scroll;
}
.template-row li {
display: inline-block;
margin: 0 0 1em;
width: 100%;
}
<ul class="template-row">
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://i.pinimg.com/474x/21/f3/7e/21f37e120170b6363d24e2ef2d6da223.jpg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQKPMXsTBI8EHKvcJ_DZRPWENgMXgU4O2mOJRv6qYNn3FIXFc1Kzg" alt="">
</div>
</li>
<li class="card-wrap p-10">
<div class="temp-wrap">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRYSCNFNmxqekF0KMq--WwuuJu9CPZgEhjjlXxW4fKIWnQcBtk_Mg" alt="">
</div>
</li>
</ul>
Como puede ver arriba, el li
está alineado correctamente pero el desplazamiento no está en la página.
¿Hay alguna solución exclusiva para CSS y HTML que pueda usar para mi situación? Cualquier ayuda sería apreciada.
Mostrar la mejor respuesta