HTML y CSS han desarrollado un grado de flexibilidad que significa que incluso los elementos conceptualmente de "bloque" como <div>
(la forma más antigua y general de contenido de bloque de HTML) no necesitan mostrarse como bloques:
div { display: inline; }
Como notará, <div>
puede reutilizarse para emular <table>
y sus compañeros de viaje. En realidad, la mayoría de las etiquetas pueden. Teniendo en cuenta sus papeles especiales, dudo que puedas volver a asignar etiquetas útilmente macro como <html>
, <head>
, <body>
, y <script>
, aunque las etiquetas "comunes" como <div>
, <p>
, <b>
, <em>
, <span>
, y <pre>
? En juego. Haga que los bloques de etiquetas en línea, los bloques en línea, las etiquetas preformateadas fluyan, las fijas floten. ¡Enloquece, si quieres!
Es posible . Es posible que desee hacer un hilo sobre cómo todos deberíamos usar el "marcado semántico" , bla , bla , bla , o creer con los Pythonistas que "debería haber una, y preferiblemente solo una, forma obvia de hacerlo". Sin embargo, Tim Toady es un tipo inteligente y curioso. Con una mano libre, los explorará a todos. Eso incluye usar la flexibilidad disponible para hacer sustituciones. Algunos son sabios, algunos se demostrarán lo contrario. Pero la prueba, el error y la experiencia son la única forma de descubrirlo. Entonces las condiciones suficientes para la sustitución están presentes.
No creo que sea exagerado decir que la sustitución también es necesaria. Como mínimo, es extremadamente conveniente . Durante mucho tiempo, el HTML no tenía <menu>
, <section>
o <aside>
elementos. Sin embargo, las páginas web y las aplicaciones en todas partes tienen menús, secciones y barras laterales. ¿Cómo? Debido a que los elementos de listas HTML ( <ul>
, <ol>
y <li>
) fueron fácilmente reutilizados y algunos usos reclasificadas como contenedores de menú y las partes. <div>
podría sustituir a <article>
, <section>
, <aside>
, <figure>
, y <summary>
. HTML5 se ha puesto al día y ha agregado elementos a medida para algunos casos de uso no abordados anteriormente. Es una gran actualización y corrección para acomodar el uso común en el mundo real.
Aun así, quedan muchos modismos comunes que no tienen etiquetas personalizadas o modelos semánticos . Cosas como páginas, notas al pie, citas extraídas, secuencias de comentarios, avatares asociados, "me gusta", subtítulos y subtítulos que yo y muchos otros usamos todos los días. Qué vamos a hacer? Lo que podemos Reutilice elementos "cercanos pero inexactos" con clases e identificadores para respaldar nuestro trabajo durante los próximos cinco o diez años, o por muchos años, hasta que HTML6 o HTML7 se pongan al día. El HTML / CSS "sí, es una X, en teoría, pero vamos a etiquetarlo y trabajarlo como una Y" es increíblemente conveniente. Indispensable, de verdad. Hace que el contenido web sea flexible y no sea frágil.
Yendo aún más lejos, el "marcado semántico" tiene limitaciones irreducibles . Eso es cierto para cualquier tipo de estructura rigurosa que puedas imaginar para el contenido.
Los formatos estándar no pueden abarcar toda la riqueza de la necesidad humana, el deseo y la variedad. Siempre estarán "detrás de la curva" de lo que la gente está haciendo ahora . Cómo están innovando. Diablos, HTML5 todavía está detrás de la curva en notas al pie, subtítulos y otras innovaciones de impresión del siglo XVII. Carece de características esenciales para muchos trabajadores de la información y creadores de contenido. Entonces improvisamos.
Aún más inmutable es que la información no cumple con un conjunto de reglas. Claro, comienza como una mesa. Pero tal vez solo desee el resumen: diga el título de cada fila como una lista. Tal vez ocupa demasiado espacio, y le gustaría tenerlo como una lista en línea para ahorrar espacio. Tal vez tenga registros de los que solo desea el título, luego, si hace clic, verá los detalles subyacentes. O desea que los elementos de una lista o tabla compleja se agrupen y categoricen. Oh, ahora lo quieres transponer y categorizar de una manera diferente. O los valores trazados como un gráfico de barras. Estas son cosas que se hacen todos los días en aplicaciones, hojas de cálculo y visualización de datos. Son parte integrante de nuestro panorama de información y de lo que queremos y necesitamos hacer en la web. Los humanos reorganizamos constantemente la forma y la presentación de nuestros datos. No es solo una cosa, o un formato / diseño, o un concepto Es fungible, con una semántica que depende de las circunstancias y de las elecciones que los usuarios hagan de forma interactiva. Sí, marque el texto como "enfatizado" (<em>
), pero eso es solo una convención. He trabajado en documentos con al menos media docena de diferentes tipos de "énfasis". Nosotros necesitamos ser capaces de personalizar y reasignar que para diferentes usos, diferentes interpretaciones. ¿Un tipo de énfasis en HTML? Atrozmente reduccionista. Limitante Frágil. Lo mismo es cierto para <table>
, <p>
, etc.
Es genial tener etiquetas / elementos que ayuden a organizar el pensamiento de toda la comunidad sobre "qué va a dónde". Eso ayuda a establecer convenciones y modismos, y nos hace colectivamente más eficientes. ¿Pero la capacidad de reasignar cosas, rediseñar y reutilizar esas estructuras? Eso es parte integrante de la inclusión de la Web y su éxito.