vertical una tamaño tablas tabla pantalla guia froggy fijo div contenido columna celdas bootstrap ancho alto align ajustar html css css3 flexbox

tablas - tamaño de una tabla html



Forzar el elemento flexible para abarcar todo el ancho de la fila (2)

Estoy tratando de retener los primeros 2 elementos secundarios en la misma fila mientras el tercer elemento está por debajo en su ancho completo, todo mientras uso flex.

Estoy particularmente interesado en usar las propiedades de flex-grow flex-shrink en los primeros 2 elementos (que es una de mis razones para no usar porcentajes), sin embargo, el tercer elemento realmente debe ser de ancho completo y debajo de los dos primeros.

El elemento de label se agrega mediante programación después del elemento de text cuando hay un error y no puedo cambiar el código.

¿Cómo fuerzo al elemento de la etiqueta a abarcar un ancho del 100% por debajo de los otros dos elementos que se colocan usando flex?

.parent { display: flex; align-items: center; width: 100%; background-color: #ececec; } .parent * { width: 100%; } .parent #text { min-width: 75px; flex-shrink: 2.25; }

<div class="parent"> <input type="range" id="range"> <input type="text" id="text"> <label class="error">Error message</label> </div>


Parece que está buscando min-width el elemento secundario y flex-wrap:wrap en el elemento primario:

.parent { display: flex; align-items: center; flex-wrap: wrap; } .parent > * { flex-grow: 1; } .parent > .error { min-width: 100%; background-color: rgba(255,0,0,.3); }

<div class="parent"> <input type="range" id="range"> <input type="text" id="text"> <label class="error">Error message</label> </div>


Siempre que desee que un elemento flexible ocupe una fila completa, configúrelo en width: 100% / flex-basis: 100% y habilite la wrap en el contenedor.

El artículo ahora consume todo el espacio disponible. Los hermanos son forzados a otras filas.

.parent { display: flex; flex-wrap: wrap; align-items: center; background-color: #ececec; } .error { flex: 0 0 100%; /* fg: 0, fs: 0, fb: 100% */ border: 1px dashed red; } #range, #text { flex: 1; }

<div class="parent"> <input type="range" id="range"> <input type="text" id="text"> <label class="error">Error message</label> </div>