yoshiyahu
Muy bien, mientras diseñaba un sitio, se me ocurrió una idea… Tengo algunas partes de mi sitio que serían más adecuadas para actuar como una tabla, pero no son datos tabulares. Por alguna razón, realmente me molesta usar una tabla para algo que no es una tabla. Así que noté las opciones de visualización de CSS, pero no puedo hacer que funcione correctamente. Esto es lo que estoy intentando. ¿Cual es el problema?
<div class="table">
<div class="tr">
<div class="td">Row 1, Cell 1</div>
<div class="td">Row 1, Cell 2</div>
<div class="td">Row 1, Cell 3</div>
</div>
<div class="tr">
<div class="td">Row 2, Cell 1</div>
<div class="td">Row 2, Cell 2</div>
<div class="td">Row 2, Cell 3</div>
</div>
</div>
Así es como se ve el CSS.
div.table {border: 1px solid black; display: table; }
div.tr {border: 1px solid black; display: table-row; }
div.td {border: 1px solid black; display: table-cell; }
Me gustaría que la página pareciera que se usó una tabla, pero todas las ‘celdas’ van en una nueva línea. ¿Alguna idea?
Extraño: lo que cita se ve bien y debería funcionar. ¿Estás seguro de que no hay anulación? display: block !important
¿en algún lugar?
Pero como mi opinión, voy a decir que por el amor de Dios, solo use una tabla. 🙂
En serio. El argumento principal para no usar tablas en tales situaciones es que no son el elemento correcto semánticamente. Pero mirando esa sopa div, tienes que admitir una <table>
es la forma más preferible de construir, incluso si no es exactamente datos tabulares que está mostrando.
-
Estoy totalmente de acuerdo. Después de todo, solía usar tablas para el diseño. Sin embargo, con las complicaciones que surgieron con las tablas, cambié a DIV. Simplemente no me gusta usar tablas incorrectamente por orgullo y por el deseo de usar/corregir?/documentación. Ah… Parece que estaba emulando la página en IE6… Funciona bien.
– Yoshiyahu
23 de noviembre de 2010 a las 23:35
-
@Yoshiyahu Veo su punto y generalmente es una buena filosofía para trabajar, pero en este caso, el marcado requerido para hacerlo en CSS puro se ve peor y es más difícil de leer que un
table
En mi opinión, tendería a hacer una excepción (también porque un elemento de tabla nativo funciona en IE6, mientras quedisplay-*
no es)– Peka
23 de noviembre de 2010 a las 23:36
-
Punto a favor. En este punto, creo que estaré de acuerdo y usaré una tabla. Nota pequeña: Mis sitios web no son compatibles con IE6. No viceversa.
– Yoshiyahu
24 de noviembre de 2010 a las 0:07
-
Tengo que cambiar a div porque el atributo contenteditable no funciona con table/td en Edge.
– TARKUS
25 de abril de 2018 a las 10:21
Sé que esta es una publicación antigua, pero como nadie solucionó su problema con los DIV, pensé en intentarlo.
Su problema es simple … sus elementos de celda son divs y, por lo tanto, se muestran: bloque, use intervalos en lugar de celdas de tabla (o agregue display:inline a .cell CSS).
<div class="table">
<div class="tr">
<span class="td">Row 1, Cell 1</span>
<span class="td">Row 1, Cell 2</span>
<span class="td">Row 1, Cell 3</span>
</div>
<div class="tr">
<span class="td">Row 2, Cell 1</span>
<span class="td">Row 2, Cell 2</span>
<span class="td">Row 2, Cell 3</span>
</div>
</div>
-
Los divs para la clase .td no son display:block, ni sus tramos con la clase .td aplicada serán display:inline, porque el autor ya está configurando la clase .td para mostrar:table-cell
-Jimbo Jonny
19/10/2015 a las 14:38
amit jain
<body>
<div style="display: table;">
<div style="display: table-row;">
<div style="display: table-cell;">Row 1, Cell 1</div>
<div style="display: table-cell;">Row 1, Cell 1</div>
<div style="display: table-cell;">Row 1, Cell 1</div>
</div>
<div style="display: table-row;">
<div style="display: table-cell;">Row 2, Cell 1</div>
<div style="display: table-cell;">Row 2, Cell 1</div>
<div style="display: table-cell;">Row 2, Cell 1</div>
</div>
</div>
</body>
-
¿En qué se diferencia esto del fragmento de código original (excepto que usa
style="..."
en lugar declass
y CSS)?– Maximouse
16 de abril de 2020 a las 17:41
¿Quizás un problema del navegador? Tu código me funciona en Chrome. Mira aquí: http://jsfiddle.net/xVTkP/
¿Que estas usando?
(pero en serio, como dijeron otros, usa una tabla)
¿Qué navegador estás usando? Estos valores no se implementan perfectamente en todos los navegadores. Aún, Cuál es el punto de de tratar de emular tablas con divs+CSS? ¿Por qué no usar una mesa?
Los creadores de HTML generalmente evitan usar tablas para datos que no son tabulares debido a la reacción violenta temprana (¿en algún momento de los últimos 10 años? No recuerdo) que resultó de uso excesivo de tablas como elementos de diseño. Piense: tablas anidadas en tablas anidadas, celdas vacías solo para relleno, etc. Superalo. Utilice el elemento que hace el trabajo.
Personalmente pienso que table
, table-row
, table-cell
etc. deberían haberse dejado fuera del CSS display
Especificaciones.
Funciona muy bien en Firefox 3.6.12. ¿Qué navegador estás usando?
– Lucas Peterson
23 de noviembre de 2010 a las 23:24
me parece una tabla de datos. Por favor, no reinvente la rueda con nombres de clase divs y css que reflejen el marcado de la tabla.
– cuadrado rojo
23 de noviembre de 2010 a las 23:25
@redsquare- Reinventar la rueda es mi especialidad.
– Yoshiyahu
24 de noviembre de 2010 a las 0:06