Skip to content
This page has been auto-translated and may contain errors.View in English

Elementos de texto

docs.scrimba.com

La mayor parte de lo que un visitante lee en una página es contenido escrito simple: títulos, párrafos, una advertencia en negrita, una línea citada, un fragmento de código. HTML tiene un elemento específico para cada tarea, y elegir el correcto hace más que cambiar cómo se ve el texto. Le dice al navegador, a los motores de búsqueda y a las herramientas de asistencia qué es realmente cada fragmento de texto.

Encabezados y jerarquía

HTML te proporciona seis tamaños de encabezado, desde <h1> hasta <h6>. Un encabezado es un título para la página o para una sección de ella. <h1> es el título principal, el grande en la parte superior. <h2> etiqueta una sección principal, <h3> una subsección dentro de esa, y así sucesivamente hasta <h6>.

Piensa en un libro impreso. El título en la portada es el <h1>. Cada título de capítulo es un <h2>. Los encabezados dentro de un capítulo son <h3>. Usas los niveles para mostrar qué pertenece a qué.

Una cosa para recordar desde el principio: no elijas un encabezado porque hace el texto del tamaño que quieres. <h1> resulta ser grande, pero su trabajo es decir "este es el título principal", no "hacer esto grande". Si quieres texto grande en algún lugar, ese es un trabajo para CSS más adelante.

Los seis elementos de encabezado, <h1> a través de <h6>, describen la jerarquía de un documento: qué partes son secciones y cuáles son subsecciones. El número es el rango, no un tamaño. <h1> es el inicio del esquema, <h2> está debajo de él, <h3> debajo de eso.

La regla para construir desde el inicio es anidarlos en orden y no saltarse un nivel. Una sección encabezada con <h2> debe contener subsecciones <h3>, no saltar directamente a <h4>. Saltarse niveles para llegar a un tamaño predeterminado más pequeño es el error clásico, y es la herramienta equivocada: si quieres que un encabezado se vea de cierta manera, estilízalo con CSS y mantén el número reservado para su rango en la estructura.

Los elementos de encabezado definen el esquema del documento: la estructura ordenada y jerarquizada de sus secciones, de la misma manera que una tabla de contenidos anida temas bajo temas. Tres reglas de producción se derivan de eso, y las tres se tratan de accesibilidad y búsqueda en lugar de apariencia.

Primero, usa un <h1> por página, el verdadero título del contenido de esa página. Es el inicio del esquema, y tener exactamente uno le da a cada herramienta un único ancla inequívoco de qué se trata la página.

Segundo, no te saltes niveles bajando. Un lector de pantalla (software que lee una página en voz alta para personas que no pueden verla) permite que su usuario extraiga una lista de cada encabezado y salte entre ellos, de la manera en que un lector que ve escanea la sección que quiere. Un salto de <h2> a <h4> se lee como un nivel faltante en esa lista, y la navegación deja de tener sentido.

Tercero, los rangos son semánticos, nunca tamaños. Los motores de búsqueda leen la estructura de encabezados para entender cómo está organizada una página, así que un <h3> elegido porque su tamaño predeterminado se veía bien, en lugar de porque es realmente una sección de tercer nivel, desinforma silenciosamente tanto al rastreador como al lector de pantalla. Establece el tamaño en CSS; deja que el número lleve el significado.

html
<h1>Pan de masa madre para principiantes</h1>

<h2>Construir una masa madre</h2>
<p>Una masa madre es una cultura viva de harina y agua.</p>

<h3>Del día uno al tres</h3>
<p>Mezcla pesos iguales de harina y agua, luego espera.</p>

<h2>Hornear tu primer pan</h2>
<p>Una vez que la masa madre está activa, estás listo para hornear.</p>

Un <h1> nombra toda la página. Dos encabezados <h2> marcan las secciones principales, y el <h3> se encuentra perfectamente dentro de la primera de ellas. Lee los números de encabezado por sí solos y puedes ver la forma del artículo sin leer una palabra del cuerpo.

JunoEncabezados y jerarquía Seis encabezados, <h1> hasta <h6>, y <h1> es el único título principal en la parte superior. El resto etiqueta tus secciones y subsecciones. La trampa en la que caí temprano: no agarres un encabezado solo porque se ve grande, para eso es CSS. El número se trata de qué es la cosa, no de su tamaño.
JunoEncabezados y jerarquía Los encabezados clasifican tu contenido, no lo dimensionan. Anidúlos en orden y no te saltes un nivel para llegar a uno más pequeño predeterminado, ese es el que confunde a la gente. ¿Necesitas que un encabezado se vea de cierta manera? Estilízalo en CSS y deja que el número describa la estructura.
JunoEncabezados y jerarquía Un <h1> por página, sin saltos de nivel bajando, y nunca elijas un rango por su tamaño. Los usuarios de lectores de pantalla saltan entre encabezados como una tabla de contenidos, y los motores de búsqueda leen el mismo esquema, así que un encabezado elegido por su apariencia engaña a ambos. Mantén el número semántico e impulsa la apariencia a CSS.

Párrafos y saltos de línea

Un bloque de texto ordinario va en un párrafo, el elemento <p>. Envuelve cada párrafo en su propio <p>...</p> y el navegador le da un poco de espacio arriba y abajo, así que los párrafos se separan de la manera que lo hacen en un libro.

html
<p>El pan necesita cuatro cosas: harina, agua, sal y tiempo.</p>
<p>Consigue eso bien y el resto es paciencia.</p>

Observa que presionar Entrar en tu archivo HTML no hace nada en la página. El navegador ignora los saltos de línea y los espacios extras que escribes; solo le importan las etiquetas. Por eso necesitas <p> para separar párrafos, en lugar de simplemente escribirlos en líneas diferentes.

Si realmente necesitas que una línea se rompa dentro de un párrafo, como las líneas de una dirección o un poema corto, hay un elemento <br> para eso. Fuerza un salto de línea simple y nada más.

El elemento <p> contiene un párrafo de texto fluido, y es el hogar predeterminado del contenido del cuerpo. El navegador colapsa cualquier serie de espacios, tabulaciones y nuevas líneas en tu fuente en un solo espacio, así que el diseño de tu texto en la página proviene de las etiquetas, no de cómo formateas el archivo.

El elemento <br> fuerza un salto de línea dentro de un bloque de texto. Es un elemento vacío, sin etiqueta de cierre, y es correcto solo cuando el salto es parte del contenido en sí: direcciones postales, líneas de un poema, un bloque de firma.

html
<p>
  Carlos Mendoza<br>
  Calle 42 #15-67<br>
  Bogotá DC 110111
</p>

Donde <br> es incorrecto es como herramienta de espaciado. Apilar <br><br> para separar dos párrafos se ve bien y es el instinto equivocado: esos son dos párrafos, así que son dos elementos <p>, y el espacio entre ellos es presentación, que pertenece a CSS. Recurrir a <br> para crear espacio mezcla estructura y estilo, exactamente el hábito que vale la pena romper temprano.

<p> es un elemento a nivel de bloque, lo que significa que comienza en una nueva línea y ocupa todo el ancho disponible, apilándose verticalmente con los párrafos alrededor de él. Es el contenedor correcto para un bloque de prosa, y el navegador aplica colapso de espacios en blanco a su contenido: cualquier secuencia de espacios, tabulaciones y nuevas líneas en la fuente se convierte en un espacio en la salida renderizada. Por eso el formato de la fuente es libre de ser lo que sea legible para ti.

<br> representa un salto de línea que es significativo para el contenido, no un espacio de diseño. La distinción tiene un costo de accesibilidad concreto. Un lector de pantalla trata un límite <p> como el final de un párrafo y hace una pausa en consecuencia, dándole a su usuario un sentido de dónde termina un pensamiento y comienza el siguiente. Una pila de elementos <br> no produce tal límite: el software lee continuamente, y la estructura que el lector que ve en el espaciado es invisible para el oyente. Los párrafos vacíos usados como espaciadores tienen el mismo problema, algunos lectores de pantalla los anuncian como en blanco, otros los saltan, y de cualquier manera el espacio que pretendías no se comunica.

La regla que sobrevive al contacto con proyectos reales: <br> solo cuando el salto es parte de los datos (una dirección, verso, una línea en una etiqueta de formulario), y el espaciado vertical entre bloques siempre en CSS con margin. La estructura lleva significado; el estilo lleva apariencia, y mantenerlos separados es lo que hace que una página sea mantenible y accesible.

JunoPárrafos y saltos de línea Cada bloque de texto va en su propio <p>...</p>, y eso es lo que pone espacio entre párrafos. El navegador ignora los Entres y espacios que escribes, así que las etiquetas hacen el trabajo. Usa <br> solo cuando una línea realmente necesita romperse en medio de un párrafo, como una dirección.
JunoPárrafos y saltos de línea<p> para un párrafo, y el navegador colapsa tu espaciado de fuente así que formatear el archivo no cambia nada en la página. <br> es para saltos que pertenecen al contenido, como una dirección, nunca para empujar cosas. Dos <br> para hacer un espacio es la señal de que el espaciado se ha filtrado de CSS.
JunoPárrafos y saltos de línea<p> es un bloque que le da a un lector de pantalla un verdadero límite de párrafo en el que hacer una pausa; una pila de <br> no le da nada y la estructura desaparece para cualquiera que esté escuchando. Así que <br> solo cuando el salto es parte de los datos, y todo el espaciado vertical en CSS con margin. Los párrafos vacíos como espaciadores tienen el mismo agujero de accesibilidad, sáltatelos también.

Énfasis: <strong> y <b>, <em> e <i>

Dos elementos hacen el texto negrita, y dos lo hacen itálica. <strong> y <b> se renderizan ambos en negrita; <em> e <i> ambos se renderizan en cursiva. Así que cuatro etiquetas, dos apariencias.

html
<p><strong>Advertencia:</strong> el horno está muy caliente.</p>
<p>Necesitas amasar la masa <em>a fondo</em>.</p>

Por ahora, usa <strong> cuando un poco de texto es importante, como una advertencia, e <em> cuando quieres enfatizar una palabra de la manera en que tu voz lo haría si estuvieras leyendo en voz alta. Son las dos que querrás la mayoría de las veces, y el navegador las hace negrita e itálica para ti.

Los cuatro elementos se dividen en dos pares, y la división es entre significado y apariencia. <strong> y <em> son semánticos: dicen algo sobre el texto. <b> e <i> son de presentación: solo cambian cómo se ve.

Usa <strong> cuando el contenido lleva importancia, seriedad o urgencia: una advertencia, una instrucción crítica. Usa <em> para énfasis de estrés, la palabra en la que harías hincapié si leyeras la oración en voz alta, lo que puede cambiar su significado. Ambos se renderizan en negrita e itálica respectivamente, pero los estás eligiendo por lo que significan.

<b> e <i> son para los casos donde quieres negrita o cursiva y no hay importancia o énfasis detrás. Un <b> para una palabra clave a la que estás atrayendo la atención, un <i> para el nombre de un barco o una frase extranjera. Marcan texto como estilísticamente separado, sin afirmar que importa más.

html
<p><strong>No</strong> abras la válvula mientras el sistema esté presurizado.</p>
<p>Ella susurró que era <em>su</em> idea, no la de él.</p>
<p>El atajo del teclado es <b>Ctrl</b> más <b>S</b>.</p>
<p>Cruzamos el ferry en el <i>Lady Marion</i>.</p>

Si solo recuerdas una cosa: <strong> y <em> lo dicen en serio, <b> e <i> solo lo muestran. Cuando el texto realmente importa, usa el par semántico.

Los cuatro se renderizan de la misma manera que un navegador lo haría de forma predeterminada, negrita o itálica, así que en la pantalla son intercambiables. La diferencia es lo que comunican a cualquier cosa que no esté mirando los píxeles, y ese es donde realmente vive la elección.

<strong> marca importancia: contenido que es serio, urgente o no debe perderse. <em> marca énfasis de estrés: la palabra cuyo peso cambia el significado de la oración (compara "llámame mañana" con "llámame mañana"). Un lector de pantalla puede actuar sobre estos. Muchos cambiarán el tono o el ritmo en texto enfatizado, y un <strong> se puede mostrar diferente del texto ordinario, así que la importancia que codificaste se comunica realmente a alguien que no está viendo la negrita. Anídalos por grado: <strong> dentro de <strong> se lee como mayor importancia, <em> dentro de <em> como énfasis más pesado.

<b> e <i> son el par de presentación, y son la opción correcta más a menudo que lo que sugiere el consejo "evítalos". Sus definiciones reales son estrechas. <b> atrae la atención al texto por una razón práctica sin importancia agregada: una palabra clave en un resumen, un nombre de producto en una reseña. <i> marca texto en una voz o estado de ánimo alternativo: un término técnico en primer uso, un nombre taxonómico como Homo sapiens, una frase en otro idioma, un pensamiento interno del personaje. Cuando hay un elemento más específico (<cite> para el título de una obra, <dfn> para una definición, <code> para código), usa ese en su lugar; <b> e <i> son el respaldo cuando el texto está separado pero no se aplica significado más fuerte.

El modo de fallo a evitar es usar <b> donde quieres <strong>, o <i> donde quieres <em>. Se ven idénticos, así que nada en la pantalla te dice que es incorrecto, pero has descartado la importancia o el énfasis en el que la tecnología de asistencia se basa. Pregúntate qué significa el texto, no cómo debe verse: si importa, <strong> o <em>; si simplemente está separado, <b> o <i>.

JunoÉnfasis: strong y b, em e i<strong> y <b> ambos van en negrita, <em> e <i> ambos van en cursiva. Al empezar, usa <strong> cuando algo es importante, como una advertencia, e <em> cuando quieres enfatizar una palabra de la manera en que tu voz lo haría. Esos dos cubrirán casi todo lo que escribas.
JunoÉnfasis: strong y b, em e i<strong> significa importante, <em> significa enfatizado, y ambos llevan significado. <b> e <i> son la misma negrita e itálica sin significado detrás, para texto que solo quieres separado. La misma apariencia de cualquier manera, así que elige el par por lo que el texto significa, no cómo debe aparecer.
JunoÉnfasis: strong y b, em e i En la pantalla los cuatro son solo negrita o cursiva; la diferencia es lo que escucha un lector de pantalla. <strong> y <em> codifican importancia y énfasis y se pueden anunciar de manera diferente, así que agarrar <b> o <i> cuando quieres eso silenciosamente baja el significado. <b> e <i> son correctos para texto que solo está separado, una palabra clave o un término, cuando ningún elemento más específico encaja.

Otro texto inline (citas, <code>, <abbr> y más)

Más allá de negrita e itálica, HTML tiene pequeños elementos para fragmentos comunes de texto. Una cita corta va en <q>, y el navegador agrega las comillas por ti. Un fragmento de código, como el nombre de un comando, va en <code>, que el navegador muestra en una fuente monoespaciada para que se destaque de la escritura normal.

html
<p>Mi abuela siempre decía <q>una olla vigilada nunca hierve</q>.</p>
<p>Guarda el archivo con el atajo <code>Ctrl S</code>.</p>

Hay algunos más de estos, pero <q> para una cita corta y <code> para código son los dos que encontrarás más. Cada uno envuelve un pequeño fragmento de texto y le dice al navegador qué es.

Estos son elementos inline: envuelven un bloque de texto dentro de un párrafo sin romper en su propia línea, a diferencia de un bloque como <p>. Cada uno nombra qué es un fragmento de texto, así que usa el elemento específico en lugar de estilizar un simple <span> para que se vea como la parte.

Los que vale la pena conocer:

html
<p>El informe cita <cite>The Pragmatic Programmer</cite> dos veces.</p>
<p>Ejecuta <code>npm install</code>, luego presiona <kbd>Entrar</kbd>.</p>
<p>La habitación es <strong>24m<sup>2</sup></strong> de espacio de piso.</p>
<p>El total anterior era <del>$40</del> <ins>$32</ins>.</p>
<p>Como <abbr title="HyperText Markup Language">HTML</abbr> madura, las etiquetas se estabilizan.</p>

<cite> nombra el título de una obra. <code> marca código, <kbd> marca entrada de teclado, y <samp> marca salida de programa. <sup> y <sub> son superíndice y subíndice, para cosas como exponentes y fórmulas químicas. Un signo de grado es su propio carácter, °, en lugar de un superíndice. <del> e <ins> marcan texto eliminado e insertado, útil para mostrar una edición o un cambio de precio. <abbr> marca una abreviatura, y su atributo title contiene la expansión completa.

<q> es para una cita inline corta y agrega comillas automáticamente. Para una cita más larga y autónoma que quieres, necesitas <blockquote> en su lugar, que es un elemento de bloque.

Estos son elementos inline, los que fluyen dentro de una línea de texto en lugar de formar su propio bloque. Existen para que un fragmento de texto pueda llevar su significado en el marcado, que es lo que hace ese significado disponible para la tecnología de asistencia, los motores de búsqueda y tu propio estilo y scripts. La guía práctica es usar el elemento más específico que encaje y recurrir a un neutral <span> solo cuando ninguno lo haga.

El conjunto que realmente usarás:

html
<p>Ver <cite>Designing Data-Intensive Applications</cite>, capítulo tres.</p>
<p>Escribe <kbd>git status</kbd> para ver <samp>nothing to commit</samp>.</p>
<p>El ejemplo utilizó variables <abbr title="Cascading Style Sheets">CSS</abbr> en todo.</p>
<p>Figura revisada: <del>1.200</del> <ins>1.450</ins> entradas.</p>

<cite> marca el título de una obra citada (un libro, película o documento), no el nombre de una persona, un punto que la gente comete constantemente. <code> es un fragmento de código de computadora e <kbd> es entrada de teclado del usuario, dos cosas que a menudo se renderizan monoespaciadas pero significan direcciones opuestas de la interacción. <samp> es salida de ejemplo de un programa. <abbr> marca una abreviatura y toma un atributo title que contiene la expansión completa; un lector de pantalla puede anunciar u ofrecer esa expansión, y aparece como información sobre herramientas al pasar el mouse, así que el lector nunca se queda adivinando qué significan las letras. <del> e <ins> representan una edición, texto eliminado y texto agregado, y se anuncian como tal, lo que importa donde el cambio es el punto, como una corrección de precio o una marca roja.

Para citas, <q> es inline e inserta comillas conscientes de la configuración regional a través de CSS (por eso no escribes las marcas tú mismo), mientras que <blockquote> es el elemento a nivel de bloque para una cita extendida, y ambos toman un atributo cite opcional que contiene la URL de la fuente. El hilo conductor en todos estos: el elemento es el significado, y la apariencia es una capa separada que estableces en CSS. Elegir la etiqueta por lo que es el texto, en lugar de por una apariencia monoespaciada o itálica, es lo que mantiene la página legible para las herramientas que no pueden verla.

JunoOtro texto inline (citas, código, abr y más)<q> envuelve una cita corta y agrega las comillas por ti, y <code> muestra código en una fuente monoespaciada para que se destaque. Hay algunos más de estas pequeñas etiquetas, pero esas dos aparecen más. Cada una simplemente envuelve un poco de texto y dice qué es.
JunoOtro texto inline (citas, código, abr y más) Estas etiquetas inline nombran qué es cada fragmento: <code> para código, <kbd> para teclas presionadas, <cite> para el título de una obra, <abbr> con un title para la forma completa. Usa la específica en lugar de estilizar un simple <span>. Y <q> para una cita corta, <blockquote> para una autónoma.
JunoOtro texto inline (citas, código, abr y más) Usa el elemento inline más específico y recurre a <span> solo cuando nada encaja. Ten cuidado con los que la gente usa incorrectamente: <cite> es el título de una obra, no una persona, y <code> versus <kbd> se ven igual pero significan extremos opuestos de la interacción. El title de <abbr> se lee por la tecnología de asistencia, y <q> suministra sus propias comillas, así que no las escribas.