Estructura de tablas HTML con thead, tbody y tfoot
Clase 12 de 17 • Curso de HTML
Contenido del curso
Clase 12 de 17 • Curso de HTML
Contenido del curso
Stephany Matute
Juan Sebastian Marquez
Renzo Zaid Chucas Huaman
Neil Ruiz
Jesus Cuentas
Dario Mendoza
Tomas A
Renzo Zaid Chucas Huaman
Victor Rafael Arévalo Sierra
table → crea la tabla.thead → encabezados de columnas.tbody → datos principales.tfoot → totales o pie de tabla.tr → filas.th → celdas de título.td → celdas de datos.colspan → hace que una celda ocupe varias columnas.un aporte corto pero muy valioso gracias
gracias bro
¿Por qué Platzi ya no se está gestionando los exámenes finales de los cursos correctamente?
De nuevo en el examen final de este curso se incluye la siguiente pregunta, que al igual a la reportada en la clase 7 de este mismo curso, no puede ser respondida:
Andan en modo flojo, aunque si estas en este mundo ya deberías de haber caído en cuenta de que lo único que importa es adsorber y aplicar conocimiento, lo demás es solo extras irrelevantes.
Jesus Daniel Cuentas Rambauth
<main> <table> <thead> <tr> <th>Product</th> <th>Price</th> <th>Quantity</th> <th>Total</th> </tr> </thead> <tbody> <tr> <td>Laptop</td> <td>850.00</td> <td><input type="number" name="laptop_qty" min="0" max="10" value="0"> </td> <td class="total">0.00</td> </tr> <tr> <td>Mouse</td> <td>25.00</td> <td><input type="number" name="mouse_qty" min="0" max="50" value="0"> </td> <td class="total">0.00</td> </tr> <tr> <td>Keyboard</td> <td>45.00</td> <td><input type="number" name="keyboard_qty" min="0" max="50" value="0"> </td> <td class="total">0.00</td> </tr> </tbody> <tfoot> <tr> <td colspan="3">Grand Total</td> <td id="grand-total">0.00</td> </tr> </tfoot> </table> </main> <script> const rows = document.querySelectorAll("tbody tr"); const grandTotalEl = document.getElementById("grand-total"); rows.forEach(row => { const qtyInput = row.querySelector('input[type="number"]'); const price = parseFloat(row.cells[1].textContent); const totalCell = row.querySelector(".total"); qtyInput.addEventListener("input", () => { const qty = parseInt(qtyInput.value) || 0; totalCell.textContent = (qty * price).toFixed(2); let grandTotal = 0; rows.forEach(r => { grandTotal += parseFloat(r.querySelector(".total").textContent); }); grandTotalEl.textContent = grandTotal.toFixed(2); }); }); </script>
“En esta clase aprendimos cómo estructurar correctamente una tabla en HTML. Entendí que <thead> se usa para los encabezados, <tbody> para los datos principales y <tfoot> para los totales o resumen. También vimos que <tr> define las filas, <th> los títulos de columnas y <td> los datos. Además, colspan permite unir varias columnas en una sola celda. Todo esto es importante porque nos ayuda a organizar la información de forma clara y profesional.”
Si yo tengo HTML semantico con: header, main y footer (todo eso dentro de Body); y requiero de utiliza una tabla con informacion, es buena practica que la tabla a crear esté dentro del contenido Main?
¡Hola, Victor! Es una excelente pregunta. Entiendo perfectamente la duda, ya que al aprender HTML semántico, queremos asegurarnos de colocar cada elemento en su lugar correcto.
La respuesta corta es sí, es una excelente práctica. La etiqueta <main> está diseñada específicamente para albergar el contenido único y principal de tu página. Si la tabla contiene la información central que el usuario vino a consultar, debe ir dentro de <main>.
Piénsalo así:
header y footer: Son el "marco" (logo, navegación, copyright).main: Es el "lienzo" donde vive el corazón de tu página.Si la tabla es solo un complemento menor, podrías usar un <section> o <article> dentro de main, pero nunca fuera de él si es parte del contenido principal.
Para profundizar, te recomiendo revisar: