Tengo un número indeterminado de elementos de celda de tabla dentro de un contenedor de tabla.
<div style="display:table;">
<div style="display:table-cell;"></div>
<div style="display:table-cell;"></div>
</div>
¿Hay una manera pura de CSS para que las celdas de la tabla tengan el mismo ancho incluso si tienen contenido de diferente tamaño dentro de ellas?
Gracias.
Editar: ¿Tener un ancho máximo implicaría saber cuántas celdas tiene, creo?
html
css
html-table
Harry
fuente
fuente
Respuestas:
Aquí hay un violín que funciona con un número indeterminado de celdas: http://jsfiddle.net/r9yrM/1/
Puede fijar un ancho a cada padre
div
(la tabla ), de lo contrario será 100% como de costumbre.El truco es usar un
table-layout: fixed;
poco de ancho en cada celda para activarlo, aquí 2%. Eso activará el otro algoritmo de la tabla, aquel en el que los navegadores se esfuerzan mucho por respetar las dimensiones indicadas.Pruebe con Chrome (e IE8, si es necesario). Está bien con un Safari reciente, pero no recuerdo la compatibilidad de este truco con ellos.
CSS (instrucciones relevantes):
EDITAR (2013): Cuidado con Safari 6 en OS X, tiene un
table-layout: fixed;
error (o tal vez simplemente diferente, muy diferente de otros navegadores. No revisé el diseño de la tabla CSS2.1 REC;)). Prepárate para diferentes resultados.fuente
div
s adicionalesdisplay:table
para usarse como si fueran filas, nodisplay:tabl-row
como algunos podrían esperar. Ejemplo aquí ..my-cell { width: 100%; }; @media screen and (min-width:0\0) { .my-cell { width: 1%; } }
el hack CSS es de aquí: stackoverflow.com/a/24321386/6962HTML
CSS
MANIFESTACIÓN.
fuente
Solo usar
max-width: 0
en eldisplay: table-cell
elemento funcionó para mí:fuente
0px
no es una unidad válida. Solo debería ser0
.Reemplazar
con
Mire todos los problemas relacionados con el intento de hacer que los divs funcionen como tablas. Tuvieron que agregar table-xxx para imitar diseños de tabla
Las tablas son compatibles y funcionan muy bien en todos los navegadores. ¿Por qué deshacerse de ellos? el hecho de que tuvieran que imitarlos es una prueba de que hicieron bien su trabajo.
En mi opinión, use la mejor herramienta para el trabajo y si desea datos tabulados o algo similar a las tablas de datos tabulados, simplemente funcione.
Respuesta muy tardía, lo sé, pero vale la pena expresarlo.
fuente
<nav>
,<ul>
etc.display: table-etc
(bastante natural). No me paso el día haciendo enlaces que simulan divs o divs que imitan tablas, tramos o entradas: solo estoy usando CSS para diseñar. Finalmente, buena suerte con IE9 para aplicar cualquier otro valor dedisplay
propiedad a los elementos table, tr, td.esto funcionará para todos
Esto también funcionará para los datos de la tabla creados por iteración
fuente
Aqui tienes:
http://jsfiddle.net/damsarabi/gwAdA/
No puede usar ancho: 100px, porque la pantalla es celda de tabla. Sin embargo, puede usar Max-width: 100px. entonces su caja nunca será más grande que 100px. pero debe agregar desbordamiento: oculto para asegurarse de que el contenido no sangra a otras celdas. también puede agregar espacios en blanco: ahora si desea evitar que la altura aumente.
fuente
Esto se puede hacer estableciendo el estilo de celda de tabla
width: auto
y el contenido vacío. Las columnas ahora tienen el mismo ancho, pero no tienen contenido.Para insertar contenido en la celda, agregue un
div
con css:También necesita agregar
position: relative
a las celdas.Ahora puede poner el contenido real en el div mencionado anteriormente.
https://jsfiddle.net/vensdvvb/
fuente