Formato de Texto HTML

Introducción

En el fascinante mundo del desarrollo web, dar estilo y estructura al texto es fundamental para crear páginas atractivas y fáciles de leer. Hoy, se invita a los lectores a sumergirse en el poder de HTML, el lenguaje esencial para la web. Se descubrirán las etiquetas clave que permiten formatear el texto. Desde negritas y cursivas hasta el tamaño y la organización, el objetivo es transformar las palabras en contenido visualmente impactante.

Formato de Texto HTML
Ejemplo de Etiquetas de Texto HTML <b> y <strong>

La imagen compara las etiquetas HTML <b> y <strong> con situaciones de la vida real. La izquierda, con <b>, muestra una recomendación casual (Debes tomar "la calle principal"), como un énfasis visual ligero. La derecha, con <strong>, refleja urgencia (En caso de emergencia, "sal inmediatamente del edificio"), destacando importancia semántica.


Etiquetas HTML <b> Negrita y <strong> Importante

Definición <b> y <strong>

Las etiquetas <b> y <strong> son etiquetas de texto que, por defecto, hacen que el contenido dentro de ellas se muestre en negrita en los navegadores. No obstante, su diferencia principal radica en su significado semántico: <b> (bold) es un elemento estilístico que indica que el texto debe visualizarse en negrita, mientras que <strong> es un elemento semántico que destaca texto con gran relevancia o un énfasis significativo.

Cuándo usar <b> y <strong>

El estándar HTML Living ofrece pautas claras para emplear <strong>, señalando que debe usarse en texto que posea gran relevancia, transmita urgencia o denote seriedad.

  • Relevancia: El elemento <strong> se puede usar en un título, subtítulo o párrafo para destacar la sección más significativa, separándola de otras partes que podrían ser más extensas, más ligeras o simplemente texto estándar.
  • Gravedad: El elemento <strong> puede servir para enfatizar un mensaje de advertencia o precaución.
  • Prioridad: El elemento <strong> puede utilizarse para indicar contenido que el usuario debe visualizar antes que otras secciones del documento.

La etiqueta <b> se emplea únicamente para aplicar un formato en negrita a texto que no requiere un significado adicional, como destacar una palabra por razones estilísticas o de énfasis visual sin alterar su sentido. No obstante, en prácticas actuales, se recomienda usar CSS para dar formato en negrita incluso en estos casos.

Se debe tener cuidado con el énfasis: no se recomienda sustituir semánticamente <strong> por <b> Si la intención es únicamente aplicar negrita de forma visual, es mejor optar por CSS o utilizar un <span> con una clase, en lugar de emplear <strong> sin una razón justificada.

Accesibilidad y lectores de pantalla <b> y <strong>

  • Énfasis en lectura: La etiqueta <strong> indica a los lectores de pantalla que el contenido tiene mayor relevancia, y algunos incluso ajustan la entonación al leerlo. En cambio, <b> no implica énfasis, por lo que los lectores de pantalla normalmente lo pasan por alto en modo auditivo.
  • Normas WCAG: Se aconseja emplear marcado semántico para resaltar texto (p.ej. <strong> / <em>) según las pautas de accesibilidad. El WCAG considera un fallo de nivel A utilizar <b> o <i> con fines de énfasis. En resumen, para destacar texto por su significado, se debe optar siempre por <strong>, asegurando que la información sea accesible para todos los usuarios, incluidos aquellos con discapacidad.
  • Técnica W3C: Indica que los elementos <strong> y <em> aportan una estructura semántica. De acuerdo con W3C, estas etiquetas pueden presentarse de diversas formas (como cambios visuales o en la entonación al leer). Por eso, utilizarlas adecuadamente optimiza la interpretación del contenido en tecnologías de asistencia.

Ejemplos de código <b> y <strong>

  1. Aquí, la palabra "capítulo" y el número del capítulo es la información que se repite en todos los títulos, y el nombre real del capítulo está marcado con <strong>.
  2. En este ejemplo, el nombre del diagrama en la leyenda se resalta con <strong> para separarlo del texto estándar (anterior) y de la descripción (posterior).
  3. En este caso, el título principal es "Flores, abejas y miel", aunque el autor añadió más palabras cómicas. El elemento <strong> se emplea entonces para destacar la primera sección y separarla de la parte final.
  4. En este caso, el elemento <strong> se emplea para señalar la sección del texto que el usuario debe priorizar al leer.
<h1>Capítulo 1: <strong>Introducción HTML</strong></h1>

<figcaption>Figura 1.<strong>Dinámica de la colonia de abejas</strong>. Las abejas de esta colonia se ven afectadas por la ola de calor actual y la escasez de alimento. </figcaption>

<h1><strong>Java, Cobol y Fortran</strong> y demás lenguajes que no comprendo. </h1>

<p><strong>Cuidado.</strong> Este calabozo representa un peligro. <strong>Mantente lejos de los patos.</strong> Recoge cualquier oro que veas. <strong>No agarres los diamantes</strong>, ya que son explosivos y arrasarán con todo a diez metros a la redonda. Se te ha avisado. </p>
strong {
 color: orange;
}

h1 {
 color: blue;
}

Capítulo 1: Introducción HTML


Figura 1. Dinámica de la colonia de abejas. Las abejas de esta colonia se ven afectadas por la ola de calor actual y la escasez de alimento.

Java, Cobol y Fortran y demás lenguajes que no comprendo.


Cuidado. Este calabozo representa un peligro. Mantente lejos de los patos. Recoge cualquier oro que veas. No agarres los diamantes, ya que son explosivos y arrasarán con todo a diez metros a la redonda. Se te ha avisado.


Configuración CSS por Defecto <b> y <strong>

Los navegadores aplican automáticamente los siguientes estilos CSS:

                  
                    b {
                        font-weight: bold;
                        display: inline;
                    }

                    strong {
                        font-weight: bold;
                        display: inline;
                    }
                  
                

Ambos elementos reciben el mismo estilo visual por defecto, aunque su significado semántico es diferente.

Buenas prácticas modernas <b> y <strong>

  • HTML semántico: Se recomienda que se utilicen las etiquetas <strong> y <em> para transmitir énfasis semántico, en lugar de recurrir a etiquetas de carácter puramente visual. No se deben emplear <b> ni <i> para enfatizar contenido; si solo se requiere un formato visual, es preferible optar por CSS.
  • Separación de contenido y estilo: La presentación debe gestionarse mediante CSS. Según MDN, no se debe utilizar <strong> únicamente para fines estilísticos; en esos casos, es mejor usar <span> junto con CSS. Asimismo, el W3C desaconseja el uso de <b> para estilos, recomendando también el uso de CSS.
  • Accesibilidad ante todo: Es importante seguir las recomendaciones de WCAG: las etiquetas <b> e <i> no deben usarse para indicar un énfasis relevante. Emplear las etiquetas adecuadas mejora la experiencia de usuarios que dependen de lectores de pantalla o tecnologías de asistencia.
  • Estructura coherente: No se debe abusar de las negritas para simular “falsos encabezados” ni para estructurar contenido. Es mejor utilizar etiquetas semánticas apropiadas (<h1><h6>, listas, <article>, etc.) para organizar el documento, reservando <strong> exclusivamente para destacar lo que tiene verdadera importancia.

Alternativas CSS recomendadas <b> y <strong>

Cuando el objetivo es sólo estilo visual (negrita) y no enfatizar semánticamente, lo mejor es aplicar estilos con CSS. Por ejemplo:

  1. Clases CSS: Definir una clase en una hoja de estilos:
                          
                            .negrita {
                              font-weight: bold;
                            }
                          
                        

    Y usarla en HTML:

                          
                            <p>Texto normal y <span class="negrita">texto en negrita</span> con CSS.</p>
                          
                        
  2. Estilo en línea (no recomendado):
                          
                            <span style="font-weight: bold;">Texto en negrita</span>
                          
                        
    Es preferible separar estilo en CSS externo, pero funciona.
  3. Frameworks CSS: Muchas bibliotecas (Bootstrap, Tailwind, etc.) ofrecen clases listas para negrita (p.ej. fw-bold o font-bold). Utilizarlas puede estandarizar el estilo sin añadir semántica extra.
  4. Otras etiquetas semánticas: Si una persona desea destacar texto sin usar negrita, puede considerar el uso de <em> (para un énfasis leve) o <mark> (para un resaltado con fondo), cada uno con sus propios significados semánticos. Sin embargo, para un formato puramente visual, la estrategia más flexible y accesible es emplear CSS.

Etiquetas HTML <i> Itálica y <em> Énfasis

Definición <i> y <em>

Las etiquetas <i> y <em> son etiquetas de texto que, por defecto, hacen que el contenido dentro de ellas se muestre en cursiva en los navegadores. No obstante, su diferencia principal radica en su significado semántico: <i> (italic) es un elemento estilístico que representa texto que se distingue del contexto normal, como jerga, nombres científicos o frases extranjeras, sin implicar énfasis adicional. Por otro lado, <em> es un elemento semántico que marca texto con énfasis, destacando su importancia o alterando el significado en la oración.

Cuándo usar <i> y <em>

  • La etiqueta <i> se usa más para fines estilísticos o presentacionales:
    • Se utiliza para marcar el texto dentro de ella como italic (cursiva).
    • Es más un elemento visual o con propósito presentacional.
    • Representa texto que debe diferenciarse del texto normal que lo rodea, pero sin añadir importancia semántica o estrés.
    • Los ejemplos de uso incluyen la identificación de un libro o periódico que normalmente se pondría en cursiva estilísticamente, o términos técnicos, o frases en otro idioma.
  • Usar <em> cuando se quiera darle énfasis semántico a una palabra o frase:
    • Se utiliza para marcar el texto dentro de ella como enfatizado.
    • Es una pista semántica, no solo visual. Dependiendo del medio utilizado, su interpretación puede variar.
    • Indica que el texto debe tener un énfasis extra que debe ser destacado. Por ejemplo, se puede usar para enfatizar una acción dentro de una oración.
    • Un programa de texto a voz podría pronunciar estas palabras con un tono de voz diferente para transmitir que el texto es importante de alguna manera.

Diferencia entre <em> y <strong>

La diferencia entre <em> y <strong> trasciende el simple hecho de aplicar cursiva o negrita al texto: se trata de una cuestión de significado semántico.

Diferencia Visual Vs. Diferencia de Significado <em> y <strong>

Cuando se inicia a trabajar con HTML, se puede asumir fácilmente que <em> sirve para texto en cursiva y <strong> para texto en negrita. Sin embargo, esa perspectiva es simplista. La clave radica en entender el propósito específico de cada etiqueta.

La etiqueta <em> (emphasis) señala que una palabra o frase posee un énfasis especial dentro del contexto de la oración, similar a cuando una persona eleva ligeramente la voz al hablar para destacar ciertas palabras y otorgarles relevancia relativa. Por otro lado, la etiqueta <strong> (strong importance) indica que el contenido tiene una importancia significativa o un carácter de urgencia, comparable a cuando un mensaje contiene algo verdaderamente crucial para quien lo comunica.

<p><em> para énfasis contextual:</p>
<p>No puedes <em>solo</em> copiar código sin entenderlo.</p>
<p>¿Vienes <em>tú</em> o viene Juan?</p>

<p><strong> para importancia crítica:</p>
<p><strong>Advertencia:</strong> Este proceso no se puede deshacer.</p>
<p>El plazo vence <strong>mañana</strong>.</p>
strong {
 color: orange;
}

em {
 color: blue;
}

<em> para énfasis contextual:

No puedes solo copiar código sin entenderlo.

¿Vienes o viene Juan?


<strong> para importancia crítica:

Advertencia: Este proceso no se puede deshacer.

El plazo vence mañana.

Por Qué es Relevante Esta Diferencia <em> y <strong>?
  • Accesibilidad: Los lectores de pantalla interpretan estas etiquetas de forma distinta, lo que permite a las personas con discapacidades visuales comprender mejor el contenido.
  • SEO: Los motores de búsqueda comprenden con mayor claridad la estructura del contenido cuando se emplea una semántica adecuada.
  • Mantenimiento: El código resulta más claro y fácil de mantener para los desarrolladores cuando el HTML refleja significado, en lugar de centrarse únicamente en la apariencia.
Regla práctica para decidir <em> y <strong>
  • Cuando una persona lee en voz alta y enfatizaría naturalmente una palabra, debería usar <em>.
  • Si la información es crucial o de gran importancia para el mensaje, se recomienda que utilice <strong>.
  • Si el objetivo es únicamente que el texto se vea diferente, sería mejor que considere emplear CSS en lugar de etiquetas.

Accesibilidad y lectores de pantalla <i> y<em>

La etiqueta <em> cuenta con un rol ARIA implícito de “emphasis”, mientras que <i> emplea un rol genérico. En teoría, un lector de pantalla podría destacar el contenido de <em> (por ejemplo, mediante un cambio de entonación). No obstante, estudios recientes indican que la mayoría de los lectores de pantalla, como VoiceOver, JAWS y NVDA, no anuncian explícitamente los elementos <em> ni <strong>, pasando por alto el énfasis. En consecuencia, tanto <em> como <i> suelen interpretarse como texto normal para los usuarios que dependen de tecnologías de asistencia, sin que el cambio semántico se traduzca en un énfasis audible. A pesar de esto, la etiqueta <em> sigue siendo la opción adecuada para marcar énfasis semántico, ya que favorece el SEO y la estructura del contenido, mientras que <i> es más apropiada para contenidos específicos, como términos técnicos, facilitando su identificación por agentes automáticos y la indexación.

Configuración CSS por Defecto <i> y <em>

Los navegadores aplican automáticamente los siguientes estilos CSS:

                  
                    i {
                        font-style: italic;
                        display: inline;
                    }

                    em {
                        font-style: italic;
                        display: inline;
                    }
                  
                

Ambos elementos reciben el mismo estilo visual por defecto, aunque su significado semántico es diferente.

Ejemplos de código <i> y <em>

Énfasis de texto (<em>): el fragmento dentro de <em> se interpreta como destacado. Por ejemplo:

<p>Guarda <em>siempre</em> una copia de seguridad antes de actualizar.</p>
<p>Lee <em>toda</em> la documentación antes de empezar.</p>
<p>Prueba el código <em>primero</em> en el entorno de desarrollo.</p>
em {
 color: blue;
}

Guarda siempre una copia de seguridad antes de actualizar.

Lee toda la documentación antes de empezar.

Prueba el código primero en el entorno de desarrollo.

En estos casos, las palabras "siempre", "toda" y "primero" son las que tienen mayor relevancia en cada frase.

Texto con tono diferente (<i>): no cambia el sentido, solo el estilo. Por ejemplo:

<p> Palabras en idiomas extranjeros: </p>
<p> El término <i>zeitgeist</i> describe el espíritu de una época. </p>
<p> Ordené <i>ramen</i> y <i>tempura</i> en el restaurante. </p>
<p> La expresión <i>c'est la vie</i> significa "así es la vida". </p>
<p> En italiano, <i>grazie mille</i> significa "muchas gracias". </p>

<p> Nombres científicos y términos técnicos: </p>
<p> El <i>Tyrannosaurus rex</i> fue uno de los dinosaurios más grandes. </p>
<p> La vitamina se llama técnicamente <i>ácido ascórbico</i>. </p>
<p> El protocolo <i>HTTPS</i> es más seguro que<i>HTTP</i>. </p>
<p> La <i>Rosa canina</i> es conocida como escaramujo. </p>

<p> Títulos de obras (libros, películas, series,canciones): </p>
<p>Acabo de terminar de leer <i>El Quijote</i>.</p>
<p>Mi serie favorita es <i>Breaking Bad</i>.</p>
<p>Anoche vi <i>Casablanca</i> por primera vez.</p>
<p> Esa canción de <i>Hotel California</i> es un clásico. </p>
<p> El álbum <i>Abbey Road</i> de The Beatles es legendario. </p>

<p> Nombres de vehículos, barcos, naves: </p> <p>El <i>Titanic</i> se hundió en 1912.</p>
<p>La misión <i>Apollo 11</i> llegó a la Luna.</p>
<p>El <i>Orient Express</i> era un tren de lujo.</p>

<p>Pensamientos internos o diálogos mentales:</p>
<p>Miró el examen y pensó: <i>Esto va a estar difícil</i>.</p>
<p><i>¿Será esta la decisión correcta?</i>, se preguntó María.</p>

<p>Términos importantes que se están definiendo por primera vez: </p>
<p>Un <i>framework</i> es una estructura base para desarrollar software.</p>
<p>El <i>diseño adaptable</i> permite que las páginas se adapten a diferentes pantallas.</p>

<p>Uso mixto: se pueden combinar con<code><strong></code>:</p> <p>El usuario <i lang="en">admin</i> debe presionar el botón <em>Enviar</em> <strong>ahora</strong>.</p>
i {
 color: blue;
}

Palabras en idiomas extranjeros:

El término zeitgeist describe el espíritu de una época.

Ordené ramen y tempura en el restaurante.

La expresión c'est la vie significa "así es la vida".

En italiano, grazie mille significa "muchas gracias".


Nombres científicos y términos técnicos:

El Tyrannosaurus rex fue uno de los dinosaurios más grandes.

La vitamina se llama técnicamente ácido ascórbico.

El protocolo HTTPS es más seguro queHTTP.

La Rosa canina es conocida como escaramujo.


Títulos de obras (libros, películas, series,canciones):

Acabo de terminar de leer El Quijote.

Mi serie favorita es Breaking Bad.

Anoche vi Casablanca por primera vez.

Esa canción de Hotel California es un clásico.

El álbum Abbey Road de The Beatles es legendario.


Nombres de vehículos, barcos, naves:

El Titanic se hundió en 1912.

La misión Apollo 11 llegó a la Luna.

El Orient Express era un tren de lujo.


Pensamientos internos o diálogos mentales:

Miró el examen y pensó: Esto va a estar difícil.

¿Será esta la decisión correcta?, se preguntó María.


Términos importantes que se están definiendo por primera vez:

Un framework es una estructura base para desarrollar software.

El diseño adaptable permite que las páginas se adapten a diferentes pantallas.


Uso mixto: se pueden combinar con <strong>:

El usuario admin debe presionar el botón Enviar ahora.

Buenas prácticas modernas <i> y <em>

Según las especificaciones HTML5 y las guías de accesibilidad, se recomiendan las siguientes prácticas:

  • Usar <em> para énfasis semántico: Reserve <em> solo cuando desee reflejar énfasis real en el contenido. No lo use solo para cursivas decorativas.
  • Usar <i> para texto de otro tono/idioma: Emplee <i> en textos con contexto especial (jerga, palabras extranjeras, títulos de obras, pensamiento interno, nombres técnicos). No lo use para énfasis de importancia.
  • Estilos vía CSS: No usar <i> ni <b> para únicamente estilizar texto. Si la meta es cursiva sin semántica, mejor utilizar <span> con CSS (por ej. .cursiva {font-style: italic;}).
  • HTML semántico: Añadir significado extra mejora la accesibilidad, SEO y mantenimiento. P.ej., <em> añade información de énfasis, <i> indica “texto alternativo”, mientras que <strong> se usa para énfasis fuerte (importancia alta).
  • Atributos adicionales: Si usa <i> para texto en otro idioma, incluya lang="...” con el código del idioma. Esto ayuda a lectores de pantalla y buscadores a manejar el contenido correctamente.

Alternativas CSS recomendadas <i> y <em>

Al igual que en caso de alternativas CSS recomendadas <b> y <strong>, se tienen los siguientes casos:

  1. Clases CSS: Definir una clase en una hoja de estilos:
                          
                            .texto-italico { 
                              font-style: italic;
                            }
                          
                        

    Y usarla en HTML:

                          
                            <span class="texto-italico">Palabra en cursiva</span>
                          
                        
  2. Estilo en línea (no recomendado):
                          
                            <span font-style: italic;;">Texto en cursiva</span>
                          
                        
    Es preferible separar estilo en CSS externo, pero funciona.
  3. Frameworks CSS: Muchas bibliotecas (Bootstrap, Tailwind, etc.) ofrecen clases listas para negrita (p.ej. fst-italic" o font-italic). Utilizarlas puede estandarizar el estilo sin añadir semántica extra.
  4. Otras etiquetas semánticas: Si una persona desea destacar texto sin usar negrita, puede considerar el uso de <em> (para un énfasis leve) o <mark> (para un resaltado con fondo), cada uno con sus propios significados semánticos. Sin embargo, para un formato puramente visual, la estrategia más flexible y accesible es emplear CSS.

Etiqueta HTML <mark> Resaltado

Definición <mark>

El elemento HTML <mark> es una funcionalidad incorporada en HTML5, diseñada específicamente para marcar o resaltar texto dentro de un documento. Su uso principal se da cuando el texto destacado resulta relevante en un contexto diferente. Un ejemplo habitual de su aplicación es en los resultados de una búsqueda, donde las palabras que coinciden con la consulta del usuario se resaltan en el contenido, facilitándole a este identificar rápidamente lo que busca.

Cuándo usar <mark>

Se debe emplear <mark> cuando desee señalar que un fragmento de texto posee una relevancia particular durante la lectura o en conexión con la acción que el usuario está realizando en ese momento. A continuación, se presentan algunos ejemplos claros:

  • Resultados de búsqueda: Si se está buscando una palabra en un sitio web, se puede emplear <mark> para destacar todas las instancias de esa palabra en el texto.
  • Destacar citas: Para enfatizar una sección concreta de una cita que resulte relevante para el tema en discusión.
  • Errores o advertencias: Cuando se presenta un texto y hay una parte especialmente crítica o significativa que se necesita hacer notar.
  • Código o ejemplos: Para resaltar secciones específicas de un código o ejemplo que se está explicando.

Accesibilidad y lectores de pantalla <mark>

  • La etiqueta <mark> se emplea principalmente para resaltar texto de forma visual, pero no agrega un significado semántico adicional ni suele ser anunciada como texto resaltado por los lectores de pantalla.
  • Para optimizar la accesibilidad, se sugiere que una persona emplee atributos aria, como aria-label, o incluya texto explicativo adicional cuando el contexto lo demande.
                  
                    <!-- Ejemplo básico de <mark> sin ARIA -->
                    <p>El término más buscado fue <mark>Desarrollo WEB</mark>.</p>

                    <!-- Ejemplo con aria-label para dar contexto -->
                    <p>El término más buscado fue
                      <mark aria-label="Texto resaltado por ser importante">Desarrollo WEB</mark>.
                    </p>

                    <!-- Texto oculto para lectores de pantalla -->
                    <p id="descripcion-marca" style="position: absolute; left: -9999px;">
                      Texto resaltado: Desarrollo WEB
                    </p>
                    <!-- Contenido visible para todos los usuarios -->
                    <p>
                      El término más buscado fue
                      <mark aria-labelledby="descripcion-marca">Desarrollo WEB</mark>.
                    </p>
                  
                

En el primer ejemplo: El atributo aria-label informa al lector de pantalla sobre el propósito del texto marcado, permitiendo que lo interprete y anuncie en este caso como “Texto resaltado por su importancia: desarrollo web”, aunque este mensaje no sea visible para el usuario.

Segundo ejemplo:

  • <p id="descripcion-marca">: Este párrafo contiene el texto que el lector de pantalla va a leer:
    • Está oculto visualmente usando style="position: absolute; left: -9999px;", lo que significa que los lectores de pantalla sí lo leen, pero los usuarios no lo ven en la pantalla.
    • Este es un truco común para mejorar la accesibilidad sin mostrar información innecesaria al usuario.
    • En este caso el lector dirá: "Texto resaltado por ser importante: Desarrollo WEB".
  • <mark aria-labelledby="descripcion-marca">: Esta es la etiqueta que resalta visualmente el texto.
    • El lector de pantalla localizará el contenido del párrafo con id="descripcion-marca" y lo leerá en voz alta, en este caso: "Texto resaltado: Desarrollo WEB".

Configuración CSS por Defecto <mark>

Por defecto, los navegadores aplican a <mark> un estilo de resaltado amarillo con texto negro.

                  
                    mark {
                      background-color: yellow;
                      color: black;
                      block:inline;
                    }
                  
                

Algunos navegadores pueden usar variaciones:

  • Chrome/Safari: background: #ffff00 (amarillo puro)
  • Firefox: background: #ffff00 con ligeras variaciones
  • Edge: Similar al estándar con background: yellow

Ejemplos de código <mark>

Resultados de búsqueda:

<div class="example">
 <h3>Resultados de búsqueda</h3>
  <div class="search-query">Búsqueda: "desarrollo web"</div>
   <div class="search-result">
   <h4>Curso de Desarrollo Web Completo</h4>
   <p>Aprende <mark class="search-highlight">desarrollo web</mark> desde cero con HTML, CSS y JavaScript. Este curso de <mark class="search-highlight">desarrollo web</mark> incluye proyectos prácticos y certificación.</p>
  </div>
  <div class="search-result">
   <h4>Herramientas para Desarrollo Web</h4>
   <p>Las mejor <br>es herramientas para <mark class="search-highlight">desarrollo web</mark> moderno: frameworks, editores y bibliotecas esenciales para programadores.</p>
  </div>
  </div>
.search-highlight {
background-color: green;
color:white;
}

Resultados de búsqueda

Búsqueda: "desarrollo web"

Curso de Desarrollo Web Completo

Aprende desarrollo web desde cero con HTML, CSS y JavaScript. Este curso de desarrollo web incluye proyectos prácticos y certificación.

Herramientas para Desarrollo Web

Las mejores herramientas para desarrollo web moderno: frameworks, editores y bibliotecas esenciales para programadores.

Código Resaltados:

<div class="example">
 <h3>Código resaltado w</h3>
 <p> Para declarar una variable en JavaScript, puedes usar <mark class="code-highlight">let</mark>, <mark class="code-highlight">const</mark> o <mark class="code-highlight">var</mark>.  </p>
 <p>// Ejemplo de declaración de variables</p>
 <p> <mark class="code-highlight">let</mark> nombre = "Juan";  </p>
 <p> <mark class="code-highlight">const</mark> edad = 25;  </p>
 <p> <mark class="code-highlight">var</mark> activo = true;  </p>
</div>
.code-highlight {
background-color: green;
color:white;
}

Código resaltado

Para declarar una variable en JavaScript, puedes usar let, const o var.

// Ejemplo de declaración de variables

let nombre = "Juan";

const edad = 25;

var activo = true;

Resaltado interactivo:

<div class="example">
<h3>Resaltado interactivo</h3>
<p> Los elementos HTML semánticos como <mark class="animated-highlight" title="Elemento para contenido principal" >main</mark >, <mark class="animated-highlight" title="Elemento para navegación" >nav</mark > y <mark class="animated-highlight" title="Elemento para contenido complementario" >aside</mark > mejoran la accesibilidad del sitio web. </p>
<p> <small ><em >Pasa el cursor sobre los términos resaltados para ver más información</em ></small > </p> </div>
.animated-highlight {
 background-color: #fff3cd;
 color: #856404;
 transition: all 0.3s ease;
 cursor: help;
}
.animated-highlight:hover {
 background-color: #ffeaa7;
 transform: scale(1.02);
 box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

Resaltado interactivo

Los elementos HTML semánticos como main, nav y aside mejoran la accesibilidad del sitio web.

Pasa el cursor sobre los términos resaltados para ver más información

Diferentes niveles de importancia:

<div class="example">
 <h3>Diferentes niveles de importancia</h3>
 <p> En este párrafo tenemos <mark class="relevante" >información relevante</mark >, <mark class="muy-importante" >información muy importante</mark >, y <mark class="contextual" >información contextual</mark >.  </p>
</div>
.relevante {
 background-color: rgb(248, 248, 180);
 color: black;
 font-weight: bold;
}

.muy-importante {
 background-color: yellow;
 color: black;
 font-weight: bold;
}

.contextual {
 background-color: #f3e5f5;
 color: black;
 font-weight: bold;
}

Diferentes niveles de importancia

En este párrafo tenemos información relevante, información muy importante, y información contextual.

Contenido importante en documentación:

<div class="example">
 <h3>Contenido importante en documentación</h3>
 <p> La función  <code>getElementById()</code> devuelve una referencia al elemento cuyo atributo ID coincide con la cadena especificada. <mark class="important-highlight" >Esta función solo puede devolver un elemento, ya que los IDs deben ser únicos en el documento.</mark > </p>
</div>
.important-highlight {
 background-color: greenyellow;
 color: black;
 font-weight: bold;
}

Contenido importante en documentación

La función getElementById() devuelve una referencia al elemento cuyo atributo ID coincide con la cadena especificada. Esta función solo puede devolver un elemento, ya que los IDs deben ser únicos en el documento.

Buenas prácticas modernas <mark>

  • Uso semántico apropiado:
                        
                          <!-- ✅ Correcto: marca términos de búsqueda -->
                          <p>Encontramos <mark>JavaScript</mark> en 47 resultados</p>
    
                          <!-- ❌ Incorrecto: usado para énfasis general -->
                          <p>Esto es <mark>muy importante</mark> recordar</p>
                        
                        
  • Evitar su uso excesivo, ya que puede confundir o saturar visualmente al usuario.
  • Estilos CSS consistentes:
    • Define estilos personalizados para mantener consistencia visual.
    • Asegura suficiente contraste para accesibilidad (ratio mínimo 4.5:1).
    • Considera el modo oscuro en tus estilos.
  • Contexto claro:
    • Proporciona contexto cuando el resaltado no sea obvio.
    • Usa atributos title o aria-label para información adicional.
  • Desempeño:
    • Para grandes volúmenes de texto, considera técnicas de resaltado eficientes.
    • Evita el uso excesivo que pueda distraer al usuario.

Alternativas CSS recomendadas <mark>

Para casos donde <mark> no sea semánticamente apropiado:

  • Pseudo-elementos CSS:
                        
                          .highlight {
                              position: relative;
                          }
    
                          .highlight::before {
                              content: '';
                              position: absolute;
                              background: linear-gradient(104deg, rgba(130, 255, 173, 0) 0.9%, rgba(130, 255, 173, 1.25) 2.4%, rgba(130, 255, 173, 0.5) 5.8%, rgba(130, 255, 173, 0.1) 93%, rgba(130, 255, 173, 0) 96%);
                              width: 100%;
                              height: 100%;
                              z-index: -1;
                          }
                        
                      
  • Variables CSS para temas:
                        
                          :root {
                              --highlight-bg: #fff3cd;
                              --highlight-color: #856404;
                              --highlight-border: #ffeaa7;
                          }
    
                          [data-theme="dark"] {
                              --highlight-bg: #3d4849;
                              --highlight-color: #ffd700;
                              --highlight-border: #ffd700;
                          }
    
                          mark {
                              background-color: var(--highlight-bg);
                              color: var(--highlight-color);
                              border: 1px solid var(--highlight-border);
                          }
                        
                      
  • Clases utilitarias:
                          
                            .highlight-search { background-color: #e3f2fd; color: #1565c0; }
                            .highlight-warning { background-color: #fff3e0; color: #ef6c00; }
                            .highlight-success { background-color: #e8f5e8; color: #2e7d32; }
                            .highlight-info { background-color: #f3e5f5; color: #7b1fa2; }
                          
                        

Etiqueta HTML <small> Pequeño

El elemento HTML <small> es uno de los componentes más versátiles y a menudo malinterpretados del lenguaje de marcado. Ha evolucionado desde un simple modificador de tamaño de texto, que reducía la fuente a una talla menor que el mínimo del navegador, hasta convertirse en HTML5 en una herramienta semántica clave para representar contenido secundario o de menor importancia, como comentarios laterales, texto legal, información de derechos de autor o letra pequeña. Comprender sus aplicaciones, considerar la accesibilidad y aplicar mejores prácticas es crucial para desarrollar experiencias web inclusivas y semánticamente correctas, especialmente en un contexto donde la accesibilidad digital es un pilar esencial del desarrollo web responsable.

Definición <small>

El elemento HTML <small> representa texto secundario o de menor relevancia en un documento web, con un propósito principalmente semántico que trasciende su apariencia visual. En HTML5, este elemento se redefine para denotar comentarios laterales, notas al pie o texto legal, como derechos de autor, independientemente de su estilo de presentación. Esta evolución semántica lo transforma de un simple modificador visual en una herramienta que aporta significado estructural al contenido.

El elemento <small> se distingue por su naturaleza semántica, que indica que el contenido es complementario al texto principal, a diferencia de otros métodos para reducir el tamaño del texto. Esta distinción es esencial para que tecnologías de asistencia, motores de búsqueda y otros agentes de usuario interpreten correctamente el contenido HTML. Aunque los navegadores aplican por defecto un estilo CSS de font-size: smaller, este efecto visual es secundario frente a su función semántica.

El elemento <small> es un elemento en línea que puede contener contenido de fraseo, lo que permite integrarlo en párrafos, títulos y otros elementos de texto sin alterar el flujo del documento.

Cuándo usar <small>

  • Notas legales: El elemento <small> es ideal para representar notas legales en sitios web comerciales, donde esta información debe estar presente sin competir visualmente con el contenido principal. Su uso permite cumplir con los requisitos legales mientras se mantiene una experiencia de usuario fluida y centrada, proporcionando un significado semántico preciso para contenido secundario.
  • Descargos de responsabilidad: El elemento <small> se utiliza de manera fundamental para mostrar descargos de responsabilidad, especialmente en contextos que requieren información legal complementaria sin distraer del contenido principal. Un ejemplo típico es en formularios web, donde se incluye información sobre el tratamiento de datos personales o términos de uso específicos. Esta aplicación garantiza el cumplimiento legal mientras se preserva una experiencia de usuario fluida.
  • Información de derechos de autor: El elemento <small> es especialmente adecuado para presentar información de derechos de autor, comúnmente en pies de página de sitios web comerciales. Proporciona una reducción visual adecuada y un significado semántico preciso para este tipo de contenido secundario, asegurando que la información legal esté presente sin competir con el contenido principal.
  • Comentarios y Atribuciones: El elemento <small> es ideal para incluir comentarios adicionales y atribuciones en artículos periodísticos o contenido editorial. Se utiliza para citar fuentes, créditos de imágenes o notas que aportan contexto sin interrumpir el flujo narrativo principal. Esta práctica es especialmente valiosa en publicaciones digitales, donde la atribución precisa refuerza la credibilidad y asegura el cumplimiento de derechos de autor.
  • Notas explicativas en formularios web: El elemento <small> es útil en formularios web para incluir notas explicativas o aclaraciones sobre campos específicos. Esta aplicación mejora la usabilidad al ofrecer información contextual clara sin sobrecargar visualmente la interfaz del formulario.

Accesibilidad y lectores de pantalla <small>

Los lectores de pantalla generalmente respetan el elemento <small> y pueden indicar al usuario que el texto tiene menor importancia. Sin embargo:

  • No interfiere con la navegación: El elemento <small> no afecta significativamente la navegación de los lectores de pantalla, ya que estos reconocen su propósito semántico de indicar contenido secundario, permitiendo una interacción fluida para usuarios con discapacidades visuales.
  • Preserva la legibilidad: El texto dentro de <small> sigue siendo legible para todos los usuarios, incluidas las tecnologías de asistencia, siempre que se implemente correctamente, manteniendo su visibilidad y significado semántico.
  • Requiere mayor contraste de color: Dado que el texto en <small> es más pequeño, se debe asegurar un contraste de color adecuado (según las pautas WCAG, como una relación mínima de 4.5:1 para texto pequeño) para garantizar la legibilidad, especialmente para usuarios con baja visión.
  • Adaptable a diferentes tamaños de pantalla: El contenido en <small> debe permanecer legible y funcional en diversos dispositivos y resoluciones, utilizando diseño adaptable para evitar que el texto sea ilegible en pantallas pequeñas o de alta densidad.

Configuración CSS por Defecto <small>

De acuerdo con la especificación HTML5, el elemento <small> debe renderizar el texto con un tamaño de fuente más pequeño en relación con el elemento padre, generalmente equivalente a la propiedad CSS font-size: smaller;. En términos técnicos, esto implica que el navegador reduce el tamaño de la fuente en un factor relativo (típicamente un 80% o un nivel inferior en la escala de tamaños de fuente del navegador) respecto al contexto heredado, manteniendo la jerarquía visual y el propósito semántico del elemento como contenido secundario o complementario.

                      
                        small {
                          font-size: 80%;
                          line-height: 1.25;
                          display: inline;
                        }
                      
                    

Ejemplos de código <small>

<p>Derechos de autor:</p>
<footer>
 <small>© 2024 Mi Empresa. Todos los derechos reservados.</small >
</footer>

<p>Disclaimer legal:</p>
<p> Este producto puede ayudar con la productividad. <small>Los resultados pueden variar. Consulte con un profesional antes de usar.</small > </p>

<p>Información secundaria:</p>
<article>
 <h2>Nuevo Producto Lanzado</h2>
 <p>Contenido principal del artículo...</p>
 <small>Publicado el 15 de marzo de 2024 por Juan Pérez</small >
</article>

<p>Texto legal en formularios:</p>
<form class="form">
 <label for="email">Email:</label>
 <input type="email" id="email" name="email" />
 <small>Al suscribirse, acepta recibir emails promocionales. Puede darse de baja en cualquier momento.</small >
</form>
small {
 color: green;
}

Derechos de autor:

© 2024 Mi Empresa. Todos los derechos reservados.

Disclaimer legal:

Este producto puede ayudar con la productividad. Los resultados pueden variar. Consulte con un profesional antes de usar.


Información secundaria:

Nuevo Producto Lanzado

Contenido principal del artículo...

Publicado el 15 de marzo de 2024 por Juan Pérez

Texto legal en formularios:

Al suscribirse, acepta recibir emails promocionales. Puede darse de baja en cualquier momento.

Buenas prácticas modernas <small>

  • Uso semántico en lugar de visual: El elemento <small> debe emplearse para marcar contenido de menor importancia o secundario, como notas legales, disclaimers o aclaraciones, en línea con su definición semántica en HTML5. No debe utilizarse únicamente para reducir el tamaño del texto, ya que los aspectos visuales deben gestionarse mediante CSS para asegurar un diseño consistente y accesible, preservando la estructura semántica del documento.
  • Integración con CSS y jerarquía visual: El elemento <small> debe combinarse con CSS para lograr un control preciso del diseño, empleando propiedades como font-size, line-height o color para reforzar su propósito secundario. No debe usarse dentro de encabezados principales (como <h1> o <h2>), ya que esto puede generar confusión en la jerarquía semántica y comprometer la accesibilidad, particularmente para tecnologías asistivas como lectores de pantalla.
  • Priorización de la legibilidad en todos los dispositivos: El texto dentro del elemento <small> debe garantizarse legible en todos los dispositivos, considerando pantallas pequeñas y las necesidades de usuarios con dificultades visuales. Deben emplearse unidades relativas (como rem o vw), aplicarse media queries para ajustar el tamaño de fuente en diseños adaptablesy verificarse el contraste conforme a los estándares WCAG. Las pruebas en diversos dispositivos son fundamentales para garantizar una experiencia de usuario óptima.
  • Relación con el contenido principal: El contenido marcado con <small> debe estar directamente relacionado con el contexto del contenido principal cercano, como notas al pie, créditos o información complementaria. No debe incluirse contenido aislado o irrelevante, ya que esto puede interrumpir la coherencia semántica y dificultar la comprensión del documento, especialmente en entornos que dependen de la estructura HTML, como navegadores y herramientas de accesibilidad.

Alternativas CSS recomendadas <small>

Si el texto pequeño es necesario únicamente por razones visuales, utilizar CSS:

                    
                      /* Para texto decorativo o de diseño */
                      .small-text {
                        font-size: 0.875em; /* 14px si base es 16px */
                        line-height: 1.4;
                      }

                      .caption-text {
                        font-size: 0.75em; /* 12px si base es 16px */
                        color: #666;
                        font-style: italic;
                      }

                      /* Para diferentes contextos */
                      .footer-note {
                        font-size: 0.8em;
                        opacity: 0.8;
                      }

                      /* Adaptable */
                      .fine-print {
                        font-size: clamp(0.75rem, 2vw, 0.875rem);
                      }
                    
                  

Etiquetas HTML <del> Borrado y <ins> Insertado

Definición <del> y <ins>

Las etiquetas <del> y <ins> son elementos HTML semánticos utilizados para marcar cambios en el contenido de un documento:

  • <del> (de deleted, "eliminado"): Representa texto que ha sido suprimido o retirado del documento. Es como si se hubiera tachado algo con un lápiz.
  • <ins> (de inserted, "insertado"): Destaca texto que se ha agregado o editado en el documento. Es como si se hubiera subrayado algo para indicar que es nuevo.

Estas etiquetas suelen utilizarse en documentos donde es importante mostrar el historial de cambios (como wikis, editores de texto colaborativos, comparaciones de versiones, etc.).

Cuándo usar <del> y <ins>

  • Resaltar correcciones en documentos: Permite mostrar de forma clara las revisiones o enmiendas realizadas en textos, como en borradores o documentos colaborativos.
  • Indicar precios anteriores en ofertas: Se utiliza en comercios electrónicos para destacar precios actualizados frente a los anteriores, mejorando la transparencia en promociones.
  • Señalar contenido obsoleto pero relevante: Marca información que ha sido reemplazada, pero que aún se conserva para referencia o contexto.
  • Documentar cambios en políticas o términos: Facilita la trazabilidad de modificaciones en documentos normativos, como términos de servicio o políticas empresariales, asegurando claridad en las actualizaciones.
  • Visualizar versiones anteriores en sistemas de control de cambios: En herramientas de control de versiones, como Git o sistemas de gestión de contenido, <ins> ayuda a destacar las adiciones en el historial de revisiones, complementando el uso de <del> para eliminaciones. Estas aplicaciones refuerzan la utilidad de <ins> y <del> para mantener un registro claro y semántico de las modificaciones en diversos contextos, desde la gestión documental hasta la comunicación comercial.

Accesibilidad y lectores de pantalla <del> y <ins>

Las etiquetas HTML <del> y <ins> facilitan la accesibilidad al marcar contenido eliminado o añadido, permitiendo que los lectores de pantalla informen claramente los cambios a usuarios con discapacidades visuales, a diferencia de los estilos visuales como tachado o subrayado en CSS, que carecen de significado semántico. Su uso en documentos colaborativos, legales o sistemas de control de versiones mejora la claridad, trazabilidad y experiencia de usuario inclusiva.

Para maximizar la accesibilidad al emplear las etiquetas <del> y <ins>, es recomendable integrar los siguientes atributos adicionales:

  • Cite: El atributo cite vincula a una URL que explica las razones de un cambio marcado con <del> y <ins>, proporcionando contexto adicional para mejorar la trazabilidad y compatibilidad con tecnologías asistivas:
                          
                            <p>El precio del producto es
                              <del cite="https://empresa.com/cambios-precios-2024">$50</del>
                              <ins cite="https://empresa.com/cambios-precios-2024">$45</ins>
                              debido a la promoción de temporada.</p>
                          
                        
  • Datetime: El atributo datetime especifica la fecha y hora exactas de una modificación realizada con <del> y <ins>, facilitando el seguimiento temporal de los cambios y mejorando la interacción con tecnologías asistivas, se debe utilizar el formato ISO 8601:
                          
                            <p>La reunión será el
                              <del datetime="2024-05-27T10:30:00">viernes a las 2 PM</del>
                              <ins datetime="2024-05-27T11:15:00">jueves a las 3 PM</ins>
                              en la sala de conferencias.</p>
                          
                        
  • Aria-label: El atributo aria-label ofrece descripciones textuales para <del> y <ins>, asegurando que los cambios sean accesibles y comprensibles para usuarios de lectores de pantalla, promoviendo inclusividad:
                          
                            <p>El estado del pedido es:
                              <del aria-label="estado anterior eliminado">En proceso</del>
                              <ins aria-label="nuevo estado agregado">Enviado</ins>
                            </p>
                            <p>
                              <del aria-label="párrafo eliminado sobre política antigua">
                              Política de devoluciones: 15 días </del>
                              <ins aria-label="párrafo agregado con nueva política">
                              Política de devoluciones: 30 días con garantía completa </ins>
                            </p>
                          
                        
  • Title: Proporciona información adicional que aparece como tooltip al pasar el mouse sobre el elemento:
                          
                            <p>El nombre de la empresa es <del title="Nombre anterior antes de la fusión">TechCorp</del>
                              <ins title="Nuevo nombre después de la fusión con InnovaSoft">TechCorp InnovaSoft</ins>
                            </p>
                            <article>
                              <del title="Sección eliminada por información desactualizada - Revisión del 25/05/2024">
                              Esta función estará disponible en la próxima actualización. </del>
                              <ins title="Información actualizada con fecha de lanzamiento - Agregado el 27/05/2024">
                              Esta función ya está disponible desde la versión 2.1 lanzada el 20 de mayo. </ins>
                            </article>
                          
                        

Los lectores de pantalla modernos manejan estas etiquetas de diferentes formas:

  • NVDA y JAWS: Anuncian "eliminado" para <del> e "insertado" para <ins>.
  • VoiceOver: Proporciona información contextual sobre los cambios.
  • Algunos lectores: Pueden ignorar completamente el contenido de <del>.

Configuración CSS por Defecto <del> y <ins>

  • Estilos Predeterminados para <del>:
                          
                            del {
                              text-decoration: line-through;
                            }
                          
                        
    Algunos navegadores aplican estilos sutiles, como cambios de color u opacidad, al texto marcado con <del> para destacar visualmente su eliminación, usando estilos predeterminados claros y consistentes que facilitan la identificación de cambios sin afectar la accesibilidad.
  • Estilos Predeterminados para <ins>:
                          
                            ins {
                              text-decoration: underline;
                            }
                          
                        

Ejemplos de código <del> y <ins>

<p>Cambio simple de palabra:</p>
<p>El producto cuesta: <del>$50</del> <ins>$40</ins>.</p>

<p>Con atributos <code>cite</code>:</p>
<p>El precio del producto es <del cite="https://empresa.com/cambios-precios-2024">$50</del> <ins cite="https://empresa.com/cambios-precios-2024">$45</ins>
debido a la promoción de temporada.</p>

<p>Con atributos <code>datetime</code>:</p>
<p>La reunión será el <del datetime="2024-05-27T10:30:00">viernes a las 2 PM</del> <ins datetime="2024-05-27T11:15:00">jueves a las 3 PM</ins> en la sala de conferencias. </p>

<p>Con atributos <code>aria-label</code>:</p>
<p>El estado del pedido es: <del aria-label="estado anterior eliminado">En proceso</del> <ins aria-label="nuevo estado agregado">Enviado</ins></p>
<p>
 <del aria-label="párrafo eliminado sobre política antigua"> Política de devoluciones: 15 días </del> <ins aria-label="párrafo agregado con nueva política"> Política de devoluciones: 30 días con garantía completa </ins> </p>

<p>Con atributos <code>title</code>:</p>
<p>El nombre de la empresa es <del title="Nombre anterior antes de la fusión">TechCorp</del> <ins title="Nuevo nombre después de la fusión con InnovaSoft">TechCorp InnovaSoft</ins> </p>
<article>
 <del title="Sección eliminada por información desactualizada - Revisión del 25/05/2024"> Esta función estará disponible en la próxima actualización. </del> <ins title="Información actualizada con fecha de lanzamiento - Agregado el 27/05/2024"> Esta función ya está disponible desde la versión 2.1 lanzada el 20 de mayo. </ins>
</article>

<p>Con estilos personalizados:</p>
<p> El precio ha cambiado de
 <del class="revision-del">$100</del> a
 <ins class="revision-ins">$80</ins>
</p>
.revision-del {
 background-color: #ffe6e6;
 text-decoration: line-through;
 color: #cc0000;
 padding: 2px 4px;
 border-radius: 3px;
}

.revision-ins {
 background-color: #e6ffe6;
 text-decoration: underline;
 color: #006600;
 padding: 2px 4px;
 border-radius: 3px;
}

Cambio simple de palabra:

El producto cuesta: $50 $40.

Con atributos cite:

El precio del producto es $50 $45 debido a la promoción de temporada.

Con atributos datetime:

La reunión será el viernes a las 2 PM jueves a las 3 PM en la sala de conferencias.

Con atributos aria-label:

El estado del pedido es: En proceso Enviado

Política de devoluciones: 15 días Política de devoluciones: 30 días con garantía completa

Con atributos title:

El nombre de la empresa es TechCorp TechCorp InnovaSoft

Esta función estará disponible en la próxima actualización. Esta función ya está disponible desde la versión 2.1 lanzada el 20 de mayo.

Con estilos personalizados:

El precio ha cambiado de $100 a $80

Buenas prácticas modernas <del> y <ins>

  • No usar <del> y <ins> solo para efectos visuales; si solo se quiere tachar o subrayar, es mejor usar CSS (span con clases).
  • Incluir atributos datetime para mayor contexto.
  • Usar estas etiquetas en documentos donde se necesita trazabilidad del contenido.
  • Combinar con herramientas de control de versiones en editores colaborativos.
  • Evitar su uso excesivo, ya que puede afectar la claridad del contenido si hay muchos cambios.

Alternativas CSS recomendadas <del> y <ins>

Cuando no se desea usar <del> y <ins> por motivos semánticos o de presentación visual solamente, se pueden usar elementos span con clases personalizadas:

                  
                    <p>
                      Precio anterior: <span class="tachado">$50</span>,
                      nuevo precio: <span class="resaltado">$40</span>
                    </p>
                  
                
                  
                    .tachado {
                      text-decoration: line-through;
                      color: gray;
                    }

                    .resaltado {
                      text-decoration: underline;
                      font-weight: bold;
                      color: green;
                    }
                  
                

Para mostrar estados (disponible/no disponible):

                  
                    /* Mejor alternativa con clases semánticas */
                    .product-unavailable {
                        text-decoration: line-through;
                        opacity: 0.6;
                        color: #666;
                    }

                    .product-featured {
                        background-color: #fff3cd;
                        border-left: 4px solid #ffc107;
                        padding-left: 1rem;
                    }
                  
                

Para comparaciones de precios complejas:

                  
                    <!--  Estructura más semántica -->
                    <div class="price-comparison">
                        <span class="price-old" aria-label="precio anterior">$29.99</span>
                        <span class="price-current" aria-label="precio actual">$19.99</span>
                        <span class="discount">33% descuento</span>
                    </div>
                  
                

Componentes modernos con CSS:

                  
                    .revision-block {
                        border-left: 4px solid #e9ecef;
                        padding-left: 1rem;
                        margin: 1rem 0;
                    }

                    .revision-block del {
                        display: block;
                        background-color: #f8d7da;
                        color: #721c24;
                        padding: 0.5rem;
                        margin-bottom: 0.5rem;
                        border-radius: 0.25rem;
                    }

                    .revision-block ins {
                        display: block;
                        background-color: #d4edda;
                        color: #155724;
                        padding: 0.5rem;
                        border-radius: 0.25rem;
                        text-decoration: none;
                    }
                  
                

Etiquetas HTML <sup> Superíndice y <sub> Subríndice

Definición <sup> y <sub>

El elemento HTML <sup> define texto que se muestra en superíndice, es decir, más alto y generalmente más pequeño que el texto principal, por motivos tipográficos. Por su parte, el elemento <sub> indica texto en subíndice, que aparece más bajo y también suele ser más pequeño. Ambos elementos pertenecen a la categoría de semántica de texto en línea en HTML.

Las etiquetas <sup> y <sub> estructuran semánticamente un documento HTML para facilitar su interpretación y representación por agentes de usuario. Por ejemplo, un lector de pantalla puede transmitir el significado específico del texto en superíndice o subíndice, mejorando la comprensión del contenido por parte del usuario.

Cuándo usar <sup> y <sub>

Las etiquetas <sup> y <sub> deben reservarse para casos tipográficos donde el posicionamiento del texto afecte su significado. Para fines puramente visuales o decorativos, es preferible utilizar CSS.

  • Notación Matemática y Científica:
    • Exponentes y Potencias: La etiqueta <sup> se utiliza frecuentemente para representar exponentes en expresiones matemáticas, como x <sup> </sup> para "x al cuadrado" o en la conocida ecuación E=mc<sup>2</sup> (E=mc2).
    • Fórmulas Químicas: La etiqueta <sub> es esencial para señalar la cantidad de átomos en fórmulas químicas, como H<sub>2</sub>O (agua, H2O). Asimismo, <sup> se emplea junto con <sub> para indicar cargas iónicas cargas iónicas o números de masa, por ejemplo, en SO<sub>4</sub><sup>2-</sup> (ion sulfato, SO42-).
    • > Para representar ecuaciones matemáticas complejas, se recomienda emplear herramientas como MathML, MathJax o LaTeX.js, que ofrecen una notación precisa y semántica, facilitando la correcta interpretación por parte de sistemas computacionales.
  • Referencias y Notas al Pie: La etiqueta <sup> se usa comúnmente para marcar referencias a notas al pie o citas bibliográficas, elevando un número o símbolo que guía al lector a detalles adicionales en el documento o en fuentes externas, manteniendo la fluidez del texto principal.
  • Marcas Registradas y Derechos de Autor: Es habitual emplear la etiqueta <sup> para indicar marcas registradas <sup>TM</sup> (TM) o derechos de autor <sup>C</sup>((c)) en superíndice, señalando su protección legal. Sin embargo, algunos expertos recomiendan usar directamente los caracteres Unicode ™ y ®, que ya incluyen el formato de superíndice en su diseño. No obstante, esta opción puede generar problemas de compatibilidad, ya que no todas las fuentes admiten el conjunto completo de glifos Unicode.
  • Números Ordinales y Abreviaturas Lingüísticas: La etiqueta <sup> se utiliza para formatear números ordinales en ciertos idiomas, como 5<sup>th</sup> (5th) en inglés o 5<sup>e</sup> (5e) en francés, y para representar letras sobrescritas en abreviaturas, como M<sup>lle</sup> (Mlle) para "Mademoiselle" en francés. Su propósito es proporcionar un formato semántico que indique la posición elevada de un carácter, mejorando la claridad y la compatibilidad con tecnologías de asistencia.

Accesibilidad y lectores de pantalla <sup> y <sub>

Ambas etiquetas <sup> y <sub> tienen buena accesibilidad semántica:

  • Los lectores de pantalla reconocen <sup> y <sub> como texto en superíndice o subíndicen es decir poseen un rol ARIA implícito.
  • Sin embargo, no todos los lectores anuncian esta diferencia de forma explícita al usuario.
  • Para mejorar la accesibilidad:
    • Agregar un atributo aria-label o usar etiquetas explicativas cuando el contexto lo requiera:
                                
                                  <!-- Añadir contexto con aria-label -->
                                  <span aria-label="Agua, H dos O">H<sub>2</sub>O</span>
      
                                  <!-- Usar role="img" para fórmulas complejas -->
                                  <span role="img" aria-label="x al cuadrado">x<sup>2</sup></span>
      
                                  <!-- Proporcionar texto alternativo -->
                                  <p>Einstein demostró que E=mc<sup>2</sup>
                                    <span class="sr-only">(E igual a m por c al cuadrado)</span></p>
                                
                              
    • Evitar usarlos únicamente como medio de transmitir información crítica visual (por ejemplo, no usar solo <sup> para mostrar un asterisco importante).
    • En contextos científicos o matemáticos complejos, se recomienda usar MathML o herramientas accesibles como MathJax.
  • Pueden causar confusión en fórmulas complejas.
  • El contexto puede perderse.

Configuración CSS por Defecto <sup> y <sub>

Los navegadores aplican estilos predefinidos para estas etiquetas:

                  
                    sup {
                      vertical-align: super;
                      font-size: smaller;
                      line-height: normal;
                    }

                    sub {
                      vertical-align: sub;
                      font-size: smaller;
                      line-height: normal;
                    }
                  
                

Esto significa que el texto aparecerá más pequeño y desplazado hacia arriba (sup) o hacia abajo (sub).

Personalización común:

                  
                    sup, sub {
                        font-size: 0.75em;
                        line-height: 0;
                        position: relative;
                        vertical-align: baseline;
                    }

                    sup {
                        top: -0.5em;
                    }

                    sub {
                        bottom: -0.25em;
                    }
                  
                

Ejemplos de código <sup> y <sub>

<p> Ejemplos básicos de uso de <code> <sup></code></p>
<p>Exponente en Matemáticas: El valor de 2<sup>3</sup > es 8. </p>
<p> Abreviatura Lingüística (Francés): Robert a présenté son rapport à M<sup >lle</sup> Bernard. Aquí, M<sup>lle</sup> es una abreviatura de "Mademoiselle", un uso tipográfico específico de algunos idiomas. </p>
<p> Número Ordinal (Inglés): La 5<sup >th</sup > edición del libro. </p>
<p> Marca Registrada: Nombre de la Empresa<sup >®</sup > </p>
<p> Ejemplos de <code><sub></code>: </p>
<p> Fórmula Química: La fórmula del agua es H<sub >2</sub >O. </p>
<p> Variable con Subíndice: El resultado queda guardado en la variable <var>x<sub >t</sub></var >. </p>
<p> Combinación de Superíndices y Subíndices: </p>
<p> Fórmula Química Compleja: El ion sulfato se representa como SO<sub >4</sub ><sup >2-</sup>. </p>
<p> Notas al Pie Combinadas: Este texto contiene una referencia<sup >1</sup> y otra<sup >2</sup >. </p>
.sub {
 background-color: #ffe6e6;
 color:blue;
}

.sup {
 background-color: #ffe6e6;
 color: green;
}

Ejemplos básicos de uso de <sup>

Exponente en Matemáticas: El valor de 23 es 8.

Abreviatura Lingüística (Francés): Robert a présenté son rapport à Mlle Bernard. Aquí, Mlle es una abreviatura de "Mademoiselle", un uso tipográfico específico de algunos idiomas.

Número Ordinal (Inglés): La 5th edición del libro.

Marca Registrada: Nombre de la Empresa®

Ejemplos de <sub>:

Fórmula Química: La fórmula del agua es H2O.

Variable con Subíndice: El resultado queda guardado en la variable xt.

Combinación de Superíndices y Subíndices:

Fórmula Química Compleja: El ion sulfato se representa como SO42-.

Notas al Pie Combinadas: Este texto contiene una referencia1 y otra2.

  • Ejemplos de Implementación Correcta de Ejemplos de Implementación Correcta de <sup>:
                          
                            <!-- Exponente en Matemáticas -->
                            <p>El valor de 2<sup>3</sup> es 8.</p>
                            <!-- Este ejemplo muestra cómo representar una potencia, donde el "3" es un exponente del "2".  -->
    
                            <!-- Abreviatura Lingüística (Francés) -->
                            <p>Robert a présenté son rapport à M<sup>lle</sup> Bernard.</p>
                            <!-- Aquí, M<sup>lle</sup> es una abreviatura de "Mademoiselle", un uso tipográfico específico de algunos idiomas. -->
    
                            <!-- Número Ordinal (Inglés) -->
                            <p>La 5<sup>th</sup> edición del libro.</p>
    
                            <!-- Marca Registrada: -->
                            <p>Nombre de la Empresa<sup>®</sup></p>
                          
                        
  • Ejemplos de Implementación Correcta de <sub>:
                          
                            <!-- Fórmula Química -->
                            <p>La fórmula del agua es H<sub>2</sub>O.</p>
    
                            <!-- Variable con Subíndice -->
                            <p>El resultado queda guardado en la variable <var>x<sub>t</sub></var>.</p>
                          
                        
  • Combinación de Superíndices y Subíndices en Contextos Específicos:
                          
                            <!-- Fórmula Química Compleja -->
                            <p>El ion sulfato se representa como SO<sub>4</sub><sup>2-</sup>.</p>
    
                            <!-- Notas al Pie Combinadas -->
                            <p>Este texto contiene una referencia<sup>1</sup> y otra<sup>2</sup>.</p>
                          
                        

Buenas prácticas modernas <sup> y <sub>

  • Se recomienda emplear los elementos <sup> y <sub> únicamente cuando sean necesarios para representar significados específicos, como en notaciones matemáticas, fórmulas químicas o notas al pie.
  • No se deben utilizar los elementos <sup> y <sub> con fines meramente decorativos. Para ajustar la posición del texto con propósitos visuales, es preferible emplear estilos CSS.
  • Utilizar HTML semántico y estructurado para mejorar accesibilidad y SEO.
  • Usar MathML para notaciones matemáticas complejas, ya que HTML no admite anidamiento de <sup> y <sub>.
  • Asegurar buena contraste y legibilidad si se usan en tamaños pequeños.

Alternativas CSS recomendadas <sup> y <sub>

Cuando se desee crear el efecto visual sin usar etiquetas semánticas, puede emplearse CSS:

                  
                    /* Alternativa CSS para superíndice decorativo */
                    .superscript {
                        font-size: 0.8em;
                        vertical-align: super;
                        line-height: 0;
                    }

                    /* Alternativa CSS para subíndice decorativo */
                    .subscript {
                        font-size: 0.8em;
                        vertical-align: sub;
                        line-height: 0;
                    }

                    /* Para alineación vertical compleja */
                    .formula {
                        display: inline-flex;
                        flex-direction: column;
                        align-items: center;
                    }

                    .numerator {
                        font-size: 0.8em;
                        border-bottom: 1px solid;
                        padding-bottom: 2px;
                    }

                    .denominator {
                        font-size: 0.8em;
                        padding-top: 2px;
                    }
                  
                

Etiquetas HTML <code> Código de Programación

Definición <code>

La etiqueta HTML <code> se emplea para identificar y destacar fragmentos breves de código fuente dentro de un texto. Su propósito principal es señalar semánticamente al navegador y a los usuarios que el contenido es código, mostrando dicho contenido con una fuente monoespaciada, característica de los entornos de programación y terminales.

Cuándo usar <code>

  • Fragmentos de código cortos: esta etiqueta se usa para mostrar fragmentos cortos de código (nombres de funciones, comandos o expresiones de lenguaje de programación) directamente dentro del texto de una página web.
  • Comandos de terminal: git commit, npm install.
  • Nombres de archivos: index.html, style.css.
  • Valores de configuración: true, false, null.
  • Elementos HTML: <div>, <span>.
  • Propiedades CSS: color, font-size.

Por ejemplo:

                  
                    <p>Para imprimir un mensaje en Python, se utiliza la función <code>print()</code>.</p>
                  
                

No se recomienda utilizar <code> para bloques de código extensos o múltiples líneas de código, para lo cual se suele usar <pre> combinado con <code>: a saber:

                  
                    function alertMessage() {
                        return "ALERTA: El lector es demasiado atractivo.";
                    }
                  
                

En esta página se utiliza la biblioteca prism.js para darle formato a los bloques de código.

Accesibilidad y lectores de pantalla <code>

El uso del elemento <code> otorga un significado semántico claro al contenido, indicando que se trata de código. Esto permite que los lectores de pantalla y otras tecnologías de asistencia lo identifiquen como tal y lo presenten de forma adecuada, por ejemplo, ajustando el modo de lectura para pronunciar el código con mayor claridad o deletrearlo, facilitando así su comprensión para los usuarios.

El elemento <code> facilita que los usuarios con discapacidades visuales diferencien el código del texto narrativo, mejorando significativamente la accesibilidad y la comprensión del contenido del documento.

Configuración CSS por Defecto <code>

                  
                    code {
                        display: inline;
                        font-family: 'Fira Code', 'Courier New', monospace;
                        font-size: inherit;
                        color: inherit;
                        margin: 0;
                        border: none;
                        background-color: #f5f5f5;
                        padding: 0.2em 0.4em;
                        border-radius: 4px;
                    }
                  
                

Ejemplos de código <code>

<p>Código en línea (inline): Para declarar una variable en JavaScript, se puede usar la palabra clave <code>let</code>.</p>

<p>Bloque de código (block) con <code><pre>: Cuando el formato (espacios en blanco, saltos de línea, sangría) es importante, se puede usar un bloque de código: </p>
<pre><code class="language-js">
 const usuarios = [
  {id: 1, nombre: 'Ana' },
  { id: 2, nombre: 'Luis' } ];
</code></pre>

<p>Aclarar el contexto: Usar ARIA</p>
<p>En JavaScript, usa <code aria-describedby="js-tip">typeof variable</code> para verificar el tipo de dato </p>
<div id="js-tip" class="sr-only"> Operador JavaScript para verificación de tipos </div>
code {
 color: #6ea8fe;
 font-size: 1.1rem;
 background: #333;
 border-radius: 6px;
}

Código en línea (inline): Para declarar una variable en JavaScript, se puede usar la palabra clave let.

Bloque de código (block) con <pre><code>: Cuando el formato (espacios en blanco, saltos de línea, sangría) es importante, se puede usar un bloque de código:

                          
                            const usuarios = [
                              { id: 1, nombre: 'Ana' },
                              { id: 2, nombre: 'Luis' }
                            ];
                          
                        

La clase language-js se utiliza para resaltar el código según las reglas de JavaScript, mejorando su legibilidad. Aunque es opcional, omitirla impedirá el resaltado sintáctico del código.

Aclarar el contexto: Usar ARIA

En JavaScript, usa typeof variable para verificar el tipo de dato

Operador JavaScript para verificación de tipos

Buenas prácticas modernas <code>

Para usar <code> de manera efectiva en el desarrollo web moderno, considerar estas prácticas:

  • Priorizar la semántica: Utilizar <code> para su propósito semántico de marcar código, no para estilos visuales genéricos.
  • Escapar caracteres HTML: Dentro de los bloques de código, especialmente si se muestra HTML, asegúrese de escapar los caracteres especiales como < y >.
  • Bloques de código: para bloques de código, se recomienda usar <pre><code>.
  • Agregar contraste suficiente: garantizar que el código sea legible con un buen contraste de colores.
  • Combinar con ARIA o texto alternativo: para mayor accesibilidad, si el código es muy técnico, incluir una descripción que lo explique

Alternativas CSS recomendadas <code>

Estilos Básico para <code>

Para personalizar el estilo del elemento <code>, se pueden usar las siguientes recomendaciones CSS:

                  
                    code {
                      background-color: #f5f5f5;
                      padding: 0.2em 0.4em;
                      border-radius: 4px;
                      font-family: 'Fira Code', 'Courier New', monospace;
                      font-size: 0.95em;
                      color: #c7254e;
                    }
                  
                

Estilos base modernos para <code>

Estilo minimalista:

                    
                      code {
                          font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New', monospace;
                          font-size: 0.875em;
                          background-color: #f6f8fa;
                          padding: 0.2em 0.4em;
                          border-radius: 6px;
                          border: 1px solid #d0d7de;
                      }
                    
                  

Tema oscuro:

                    
                      @media (prefers-color-scheme: dark) {
                          code {
                              background-color: #161b22;
                              border-color: #30363d;
                              color: #e6edf3;
                          }
                      }
                    
                  

Para código inline vs bloques:

                    
                      code {
                          /* Inline code */
                          background: #f8f9fa;
                          padding: 2px 4px;
                          border-radius: 3px;
                          font-size: 0.9em;
                      }

                      pre code {
                          /* Block code - reset inline styles */
                          background: transparent;
                          padding: 0;
                          border-radius: 0;
                          font-size: inherit;
                      }                  
                    
                  

Etiquetas HTML <kbd> Entrada del Teclado

Definición <kbd>

La etiqueta HTML <kbd> es un elemento semántico que representa entradas de teclado, como comandos, teclas específicas o cualquier input que el usuario deba teclear o presionar, aportando significado claro al contenido dentro de la estructura semántica del texto.

Cuándo usar <kbd>

Casos de uso apropiados:

  • Enumera teclas individuales como Ctrl, Alt y F1 para entradas de teclado.
  • Destaca combinaciones de teclas como Ctrl+C y Alt+Tab para funciones específicas.
  • Especifica comandos de terminal como npm install y git commit para tareas de programación.
  • Describe instrucciones secuenciales que necesitan entrada de teclado del usuario.
  • Indica menús y opciones navegables con entradas de teclado.

No usar para:

  • Código fuente debe formatearse con la etiqueta <code> para su correcta visualización.
  • La salida de programas se representa con la etiqueta <samp> para claridad.
  • Usa <var> para variables y <code> para nombres de archivos, según corresponda.
  • El texto monoespaciado se formatea con <code> para mantener consistencia visual.

Accesibilidad y lectores de pantalla <kbd>

El elemento <kbd> tiene un propósito semántico que beneficia la accesibilidad:

  • Los lectores de pantalla reconocen el contenido como comandos de teclado, facilitando su interpretación.
  • Ciertos lectores de pantalla indican "tecla" o "comando" antes del contenido para mayor claridad.
  • Facilita a personas con discapacidad visual comprender el contexto del contenido.

Sin embargo, se recomienda:

  • Acompañar el uso de <kbd> con explicaciones claras y precisas sobre la función de la tecla o combinación de teclas.
  • Limitar el uso de <kbd> a casos de interacción directa con el teclado, evitando su empleo excesivo o en contextos irrelevantes.
  • Usar acompañado de una guía paso a paso.
  • Agregar etiquetas ARIA cuando sea necesario para mejorar la accesibilidad y comprensión del contenido.

Configuración CSS por Defecto <kbd>

La mayoría de navegadores aplican estos estilos por defecto al elemento <kbd>:

                  
                    kbd {
                        font-family: monospace;
                        font-size: smaller;
                        background-color: #f0f0f0;
                        border: 1px solid #ccc;
                        border-radius: 3px;
                        padding: 2px 4px;
                        box-shadow: inset 0 -1px 0 rgba(0,0,0,0.25);
                        display: inline;
                    }
                  
                

Ejemplos de código <kbd>

<div class="example">
 <h3>Teclas individuales</h3>
 <p>Presiona <kbd>Enter</kbd> para confirmar.</p>
  <p> Usa las teclas de dirección: <kbd>↑</kbd> <kbd>↓</kbd> <kbd>←</kbd> <kbd>→</kbd> </p>
 <p> Teclas de función: <kbd>F1</kbd>, <kbd>F5</kbd>, <kbd>F12</kbd> </p>
</div>

<div class="example">
 <h3>Combinaciones de teclas</h3>
 <p> Copia con <kbd>Ctrl+C</kbd> y pega con <kbd>Ctrl+V</kbd> </p>
 <p>Cambia de ventana con <kbd>Alt+Tab</kbd></p> <p> Abre el administrador de tareas: <kbd>Ctrl+Shift+Esc</kbd> </p>
 <p>En Mac: <kbd>⌘+Space</kbd> para Spotlight</p>
</div>

<div class="example">
 <h3>Comandos de terminal</h3>
 <div class="instructions">
  <p> Para instalar las dependencias del proyecto: </p>
  <div class="code-block"> $ <kbd>npm install</kbd></div>
</div>
<div class="instructions">
  <p>Para ver el historial de git:</p>
 <div class="code-block">$ <kbd>git log --oneline</kbd></div>
</div>
<div class="instructions">
 <p>Para crear un nuevo directorio:</p>
 <div class="code-block"> $ <kbd>mkdir mi-proyecto</kbd></div>
 </div>
</div>

<div class="example">
 <h3>Atajos de editor de código</h3>
 <p>Comenta línea: <kbd>Ctrl+/</kbd></p>
 <p>Buscar en archivo: <kbd>Ctrl+F</kbd></p>
 <p>Buscar y reemplazar: <kbd>Ctrl+H</kbd></p>
 <p>Formato automático: <kbd>Shift+Alt+F</kbd></p>
 <p>Duplicar línea: <kbd>Shift+Alt+↓</kbd></p>
</div>

<div class="example">
 <h3>Navegación web</h3>
 <p>Nueva pestaña: <kbd>Ctrl+T</kbd></p>
 <p>Cerrar pestaña: <kbd>Ctrl+W</kbd></p>
 <p> Recargar página: <kbd>F5</kbd> o <kbd>Ctrl+R</kbd> </p>
 <p> Abrir herramientas de desarrollador: <kbd>F12</kbd> </p>
 <p> Ir a la barra de direcciones: <kbd>Ctrl+L</kbd> </p>
</div>

<div class="example">
 <h3>Instrucciones paso a paso</h3>
 <div class="instructions">
  <h4>Para crear un nuevo documento:</h4>
  <ol>
   <li> Presiona <kbd>Ctrl+N</kbd> para abrir un nuevo documento </li>
   <li>Escribe tu contenido</li>
   <li>Guarda con <kbd>Ctrl+S</kbd></li>
   <li> Si necesitas ayuda, presiona <kbd>F1</kbd> </li>
  </ol>
 </div>
</div>

<div class="example">
 <h3>Teclas especiales y símbolos</h3>
 <p>Tecla Windows: <kbd>⊞ Win</kbd></p>
 <p>Tecla Comando (Mac): <kbd>⌘ Cmd</kbd></p>
 <p>Tecla Option (Mac): <kbd>⌥ Opt</kbd></p>
 <p>Tecla Control: <kbd>Ctrl</kbd></p>
 <p>Tecla Alt: <kbd>Alt</kbd></p>
 <p>Tecla Shift: <kbd>⇧ Shift</kbd></p>
 <p>Tecla Tab: <kbd>⇥ Tab</kbd></p>
 <p>Tecla Escape: <kbd>Esc</kbd></p>
</div>
.instructions {
 background: #e8f4fd;
 padding: 15px;
 border-radius: 8px;
 margin: 15px 0;
}

.code-block {
 background: #2d3748;
 color: #e2e8f0;
 padding: 15px;
 border-radius: 6px;
 font-family: "Courier New", monospace;
 margin: 10px 0;
 overflow-x: auto;
}

Teclas individuales

Presiona Enter para confirmar.

Usa las teclas de dirección:

Teclas de función: F1, F5, F12

Combinaciones de teclas

Copia con Ctrl+C y pega con Ctrl+V

Cambia de ventana con Alt+Tab

Abre el administrador de tareas: Ctrl+Shift+Esc

En Mac: ⌘+Space para Spotlight

Comandos de terminal

Para instalar las dependencias del proyecto:

$ npm install

Para ver el historial de git:

$ git log --oneline

Para crear un nuevo directorio:

$ mkdir mi-proyecto

Atajos de editor de código

Comenta línea: Ctrl+/

Buscar en archivo: Ctrl+F

Buscar y reemplazar: Ctrl+H

Formato automático: Shift+Alt+F

Duplicar línea: Shift+Alt+↓

Navegación web

Nueva pestaña: Ctrl+T

Cerrar pestaña: Ctrl+W

Recargar página: F5 o Ctrl+R

Abrir herramientas de desarrollador: F12

Ir a la barra de direcciones: Ctrl+L

Instrucciones paso a paso

Para crear un nuevo documento:

  1. Presiona Ctrl+N para abrir un nuevo documento
  2. Escribe tu contenido
  3. Guarda con Ctrl+S
  4. Si necesitas ayuda, presiona F1

Teclas especiales y símbolos

Tecla Windows: ⊞ Win

Tecla Comando (Mac): ⌘ Cmd

Tecla Option (Mac): ⌥ Opt

Tecla Control: Ctrl

Tecla Alt: Alt

Tecla Shift: ⇧ Shift

Tecla Tab: ⇥ Tab

Tecla Escape: Esc

Buenas prácticas modernas <kbd>

  • Usar semántica precisa con textos claros y un estilo uniforme para mejorar la experiencia del usuario y evitar confusiones.
  • Resaltar elementos interactivos, proporcionar instrucciones claras en pasos y adaptar el diseño para dispositivos táctiles.
  • Detallar combinaciones de teclas con símbolos uniformes y adaptar instrucciones a distintos sistemas operativos para mayor claridad.
  • Emplear <kbd> solo para teclas o comandos que el usuario debe introducir, como <kbd>Ctrl + S</kbd>.
  • Usar CSS (fondo gris claro, bordes suaves) para mejorar legibilidad y experiencia de usuario.
  • No usar <kbd> para texto general, solo para entradas de teclado como <kbd>Enter</kbd>.
  • Asegura accesibilidad con texto descriptivo, como <kbd>Tab</kbd> para navegar entre elementos.

Alternativas CSS recomendadas <kbd>

Estilo moderno con gradiente sutil:

                  
                    kbd {
                        background: linear-gradient(145deg, #ffffff, #f0f0f0);
                        border: 1px solid #d1d5db;
                        border-radius: 6px;
                        padding: 4px 8px;
                        font-family: 'SF Mono', 'Monaco', 'Cascadia Code', monospace;
                        font-size: 0.875em;
                        font-weight: 600;
                        color: #374151;
                        box-shadow: 
                            0 1px 3px rgba(0,0,0,0.1),
                            inset 0 1px 0 rgba(255,255,255,0.7);
                        transition: transform 0.2s ease;
                    }

                    kbd:hover {
                        transform: translateY(-1px);
                    }
                  
                

Para modo oscuro:

                  
                    @media (prefers-color-scheme: dark) {
                        kbd {
                            background: linear-gradient(145deg, #374151, #1f2937);
                            border-color: #6b7280;
                            color: #f9fafb;
                            box-shadow: 
                                0 1px 3px rgba(0,0,0,0.3),
                                inset 0 1px 0 rgba(255,255,255,0.1);
                        }
                    }
                  
                

Etiquetas HTML <samp> Salida de un programa

Definición <samp>

El elemento HTML <samp>, derivado de sample output (salida de muestra), se utiliza para marcar texto en línea que representa una muestra o un ejemplo de salida generada por un programa, script o sistema informático. Por defecto, su contenido se muestra en una fuente monoespaciada, lo que permite distinguirlo visualmente del resto del texto, facilitando la identificación de resultados o ejemplos de código en una página web.

Cuándo usar <samp>

Se debe utilizar <samp> cuando se desea mostrar al usuario un resultado generado por un programa, un mensaje de error o cualquier tipo de salida de un sistema o script. Por ejemplo:

  • Mostrar la salida de comandos de terminal o consola.
  • Ejemplificar mensajes de error o confirmación de sistemas.
  • Mostrar resultados de una simulación o proceso automáticos.
  • Representar resultados de APIs o respuestas de servicios web.
  • Mostrar logs o registros de aplicaciones.
  • Ejemplos de datos generados por programas.

No debe usarse para resaltar texto común, ni para mostrar código fuente (para eso es preferible <code>), ni para entradas de teclado (para eso es <kbd>)

Accesibilidad y lectores de pantalla <samp>

El empleo adecuado del elemento <samp> optimiza la semántica del documento, permitiendo que lectores de pantalla y otras tecnologías de asistencia identifiquen con precisión el contenido como salida de un programa. Aunque no incluye atributos de accesibilidad específicos, su uso semántico mejora la claridad y organización, favoreciendo la comprensión para personas con discapacidades visuales. Resumen:

Para mejores prácticas, combine el elemento <samp> con aria-label para ofrecer mayor contexto, úselo junto con <code> al mostrar código y su salida, y proporcione descripciones adicionales para salidas complejas.

Configuración CSS por Defecto <samp>

De manera predeterminada, el navegador suele aplicar al elemento <samp> un estilo similar al de <code>, es decir:

                  
                    samp {
                        font-family: monospace;
                        font-size: 1em;
                        white-space: pre;
                        display: inline;
                    }
                  
                

Ejemplos de código <samp>

<div class="example">
 <h3>Salida básica de terminal</h3>
 <p>Cuando se ejecuta el comando <code>ls -la</code>, se obtiene:</p>
 <samp> total 24 drwxr-xr-x 3 usuario staff 96 Jun 6 10:30 . drwxr-xr-x 15 usuario staff 480 Jun 6 10:29 .. -rw-r--r-- 1 usuario staff 1024 Jun 6 10:30 archivo.txt </samp>
</div>

<div class="example">
 <h3>Mensajes de error del sistema</h3>
 <p>Error típico de permisos:</p>
 <samp class="error-output">Permission denied: cannot access '/root/protected_file'</samp>
 <p>Error de archivo no encontrado:</p>
 <samp class="error-output">bash: comando_inexistente: command not found</samp>
</div>

<div class="example">
<h3>Salida de compilador</h3>
<p>Mensaje de compilación exitosa:</p>
<samp class="success-output">Build successful! ✓ Compiled successfully in 2.34s ✓ Assets optimized ✓ Ready for production</samp>
<p>Errores de compilación:</p>
<samp class="error-output">Error: Syntax error in main.js:15:7 Expected ';' but found 'const' Warning: Unused variable 'unusedVar' in utils.js:42</samp>
</div>

<div class="example">
 <h3>Combinación con  <code></h3>
 <p>Para mostrar código y su salida:</p>
 <p>Ejecuta: <code>node --version</code></p>
 <p>Salida: <samp>v18.17.0</samp></p>
 <div class="code-block">
  <code>console.log("Hola mundo");</code>
 </div>
 <p>Resultado:</p>
 <samp class="custom-samp">Hola mundo</samp>
</div>

<div class="example">
 <h3>Con atributos ARIA para accesibilidad</h3>
 <p>Salida de consulta a base de datos:</p>
 <samp aria-label="Resultado de consulta SQL con 3 registros encontrados"> Query executed successfully Rows affected: 3 Execution time: 0.045s </samp>
</div>
.example {
 background: white;
 padding: 20px;
 margin: 20px 0;
 border-radius: 8px;
 box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.example h3 {
 color: #2563eb;
 margin-top: 0;
 border-bottom: 2px solid #e5e7eb;
 padding-bottom: 10px;
}

.error-output {
 background-color: #fef2f2;
 color: #dc2626;
 border-left: 3px solid #dc2626;
}

Salida básica de terminal

Cuando se ejecuta el comando ls -la, se obtiene:

total 24 drwxr-xr-x 3 usuario staff 96 Jun 6 10:30 . drwxr-xr-x 15 usuario staff 480 Jun 6 10:29 .. -rw-r--r-- 1 usuario staff 1024 Jun 6 10:30 archivo.txt

Mensajes de error del sistema

Error típico de permisos:

Permission denied: cannot access '/root/protected_file'

Error de archivo no encontrado:

bash: comando_inexistente: command not found

Salida de compilador

Mensaje de compilación exitosa:

Build successful! ✓ Compiled successfully in 2.34s ✓ Assets optimized ✓ Ready for production

Errores de compilación:

Error: Syntax error in main.js:15:7 Expected ';' but found 'const' Warning: Unused variable 'unusedVar' in utils.js:42

Combinación con <code>

Para mostrar código y su salida:

Ejecuta: node --version

Salida: v18.17.0

console.log("Hola mundo");

Resultado:

Hola mundo

Con atributos ARIA para accesibilidad

Salida de consulta a base de datos:

Query executed successfully Rows affected: 3 Execution time: 0.045s

Buenas prácticas modernas <samp>

Aunque <samp> es una etiqueta antigua, sigue siendo relevante por su significado semántico. Las buenas prácticas incluyen:

  • Usar <samp> solo para salidas de programas, no para estilos o código fuente (usa <code> para esto último).
  • Usar <samp> con <pre> o la propiedad CSS white-space: pre; para conservar el formato de salidas multilínea de programas.
  • Personalizar <samp> con CSS para ajustar su estilo al diseño de tu sitio.
  • Usar <kbd>, no <samp>, para mostrar entradas de usuario, como "Presiona <kbd>Enter</kbd>".
  • Dar siempre un contexto:
                          
                            <!-- Correcto: contexto claro -->
                            <p>El script devolvió el siguiente error:</p>
                            <samp>FileNotFoundError: No such file or directory</samp>
    
                            <!-- Incorrecto: sin contexto -->
                            <samp>FileNotFoundError: No such file or directory</samp>
                          
                        

Alternativas CSS recomendadas <samp>

                  
                    /* Clase utilitaria para texto monoespaciado */
                    .mono-text {
                        font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 
                                    Consolas, 'Courier New', monospace;
                        font-size: 0.9em;
                        background-color: #f6f8fa;
                        padding: 2px 4px;
                        border-radius: 3px;
                    }

                    /* Para bloques de código más complejos */
                    .code-output {
                        font-family: 'JetBrains Mono', 'Fira Code', monospace;
                        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                        color: white;
                        padding: 16px;
                        border-radius: 8px;
                        white-space: pre-wrap;
                        line-height: 1.4;
                    }

                    /* Estilo tipo terminal */
                    .terminal-output {
                        background: #1a1a1a;
                        color: #00ff41;
                        font-family: 'Ubuntu Mono', monospace;
                        padding: 20px;
                        border-radius: 10px;
                        box-shadow: inset 0 0 20px rgba(0,255,65,0.1);
                    }
                  
                

Cuándo usar alternativas CSS:

  • Cuando necesites estilos muy específicos que van más allá de la salida de programa.
  • Para elementos puramente decorativos.
  • En casos donde la semántica de <samp> no sea apropiada.
  • Para sistemas de diseño que requieren clases utilitarias específicas.

Recomendación: Siempre priorizar la semántica correcta con <samp> y usar CSS para personalizar la apariencia, reservando las alternativas CSS solo para casos donde <samp> no sea semánticamente apropiado.

Etiquetas HTML <var> Variable

Definición <var>

La etiqueta HTML <var> se usa para identificar variables en programas, ecuaciones matemáticas o expresiones similares. Su propósito es principalmente semántico, destacando el texto como una variable, con una distinción visual (normalmente en cursiva) y semántica, sin añadir énfasis como <em> ni peso como <strong>.

Cuándo usar <var>

Se Debe usar <var> cuando estés explicando:

  • En programación: Las variables, como contador o nombreUsuario, se utilizan para representar valores en lenguajes como JavaScript, por ejemplo, en tutoriales o documentación técnica.
  • En expresiones matemáticas: El elemento <var> puede usarse para destacar la variable r en la fórmula del área de un círculo (A = πr²).
  • Argumentos de funciones: Al describir una función y sus parámetros, los nombres de estos, como los argumentos, pueden resaltarse usando el elemento <var>.
  • Cualquier tipo de marcador de posición: Para marcadores de posición, como <var>nombre</var> en una plantilla de correo electrónico, se pueden emplear elementos <var> para indicar valores que serán reemplazados.

El propósito principal es dotar al texto de un significado semántico, es decir, no solo modificar su presentación, sino enriquecer la información con un sentido adicional que facilite su interpretación por parte de navegadores y otras herramientas.

Accesibilidad y lectores de pantalla <var>

La etiqueta <var> es importante para la accesibilidad porque ayuda a los lectores de pantalla a interpretar el contenido de forma más precisa. Cuando un lector de pantalla encuentra la etiqueta <var>, puede vocalizar el contenido de una manera que indique que se trata de una variable, lo que mejora la comprensión para usuarios con discapacidades visuales.

  • Se recomienda acompañar <var> con texto descriptivo o etiquetas ARIA si se requiere un significado más claro para las personas que utilizan lectores de pantalla.
  • Se sugiere no usar <var> únicamente para estilos visuales, sino para marcar variables de manera semántica y consistente.

Configuración CSS por Defecto <var>

De manera predeterminada, la etiqueta <var> suele heredar las siguientes propiedades CSS:

                  
                  var {
                    font-style: italic;
                    font-family: inherit;
                    font-size: inherit;
                    font-weight: inherit;
                    display: inline;
                  }
                  
                

Esto significa que, por defecto, las variables se muestran en cursiva, pero mantienen las demás características de la fuente del elemento contenedor.

Ejemplos de código <var>

<div class="example">
 <div class="formula">
  <var>x</var> = (-<var>b</var> ± √(<var>b</var>² - 4<var>ac</var>)) / (2<var>a</var>)
 </div>
</div>

<div class="example">
 <h3>Variables de Programación</h3>
 <p>Para declarar una variable en JavaScript:</p>
 <code>let <var class="code-var">nombreUsuario</var> = prompt("Ingresa tu nombre"); console.log("Hola, " + <var class="code-var">nombreUsuario</var>);</code>
 <p>La función recibe el parámetro <var class="code-var">edad</var> y retorna un valor booleano.</p>
</div>

<div class="example">
 <h3>Constantes Físicas</h3>
 <p>La velocidad de la luz <var class="physics-var">c</var> = 3 × 10⁸ m/s es fundamental en la ecuación <var class="physics-var">E</var> = <var class="physics-var">mc²</var>.</p>  <p>En la ley de Ohm: <var class="physics-var">V</var> = <var class="physics-var">I</var> × <var class="physics-var">R</var>, donde:</p>
 <ul>
  <li><var class="physics-var">V</var> es el voltaje</li>
  <li><var class="physics-var">I</var> es la corriente</li>
  <li><var class="physics-var">R</var> es la resistencia</li>
 </ul>
</div>

<div class="example">
 <h3>Variables en Documentación de API</h3>
 <p>Endpoint: <code>GET /users/<var>{userId}</var>/posts/<var>{postId}</var></code></p>
 <p>Donde <var>userId</var> es el identificador único del usuario y <var>postId</var> es el identificador de la publicación.</p>
</div>

<div class="example">
 <h3>Variables de Configuración</h3>
 <p>Edita el archivo <var>config.env</var> y modifica la variable  <var>DATABASE_URL</var> con tu cadena de conexión.</p>
 <code>export <var>PORT</var>=3000 export <var>NODE_ENV</var>=production</code>
</div>

<div class="example">
 <h3>Ejemplo con Accesibilidad</h3>
 <p>Para mejorar la accesibilidad, puedes usar:</p>
 <code><var aria-label="variable equis">x</var> = <var aria-label="variable ye">y</var> +5</code> <p>Resultado: <var aria-label="variable equis">x</var> = <var aria-label="variable ye">y</var> + 5</p>
</div>
.math-var {
 color: #d63384;
 font-weight: 500;
}

.code-var {
 background: #fff3cd;
 padding: 2px 4px;
 border-radius: 3px;
 font-family: "Consolas", "Monaco", monospace;
}

.physics-var {
 color: #198754;
 font-size: 1.1em;
}

.code {
 background: #f1f3f4;
 padding: 12px;
 border-radius: 4px;
 display: block;
 margin: 10px 0;
 font-family: "Consolas", "Monaco", monospace;
}
.formula {
 background: #e3f2fd;
 padding: 15px;
 border-left: 4px
solid #2196f3;
 margin: 15px 0; font-size: 1.1em;
}

Variables Matemáticas

En la ecuación cuadrática ax² + bx + c = 0, las variables a, b, y c son coeficientes.

x = (-b ± √(b² - 4ac)) / (2a)

Variables de Programación

Para declarar una variable en JavaScript:

let nombreUsuario = prompt("Ingresa tu nombre"); console.log("Hola, " + nombreUsuario);

La función recibe el parámetro edad y retorna un valor booleano.

Constantes Físicas

La velocidad de la luz c = 3 × 10⁸ m/s es fundamental en la ecuación E = mc².

En la ley de Ohm: V = I × R, donde:

  • V es el voltaje
  • I es la corriente
  • R es la resistencia

Variables en Documentación de API

Endpoint: GET /users/{userId}/posts/{postId}

Donde userId es el identificador único del usuario y postId es el identificador de la publicación.

Variables de Configuración

Edita el archivo config.env y modifica la variable DATABASE_URL con tu cadena de conexión.

export PORT=3000 export NODE_ENV=production

Ejemplo con Accesibilidad

Para mejorar la accesibilidad, puedes usar:

<var aria-label="variable equis">x</var> = <var aria-label="variable ye">y</var> + 5

Resultado: x = y + 5

Buenas prácticas modernas <var>

  • Utilizar <var> exclusivamente para representar variables reales, no como elemento decorativo.
  • Integrar <var> con elementos como <code>, <kbd> o <samp> según el contexto semántico.
  • Asegurar un uso coherente de <var> en todo el documento.
  • Incluir contexto claro y suficiente alrededor de las variables para facilitar su comprensión.
  • Emplear aria-label para describir variables que contengan símbolos especiales.
  • Evitar basarse únicamente en el estilo visual para transmitir el significado de las variables.
  • Los estilos predeterminados de <var> son minimalistas y eficientes.
  • Evitar aplicar CSS excesivo o innecesario a las variables.

Alternativas CSS recomendadas <var>

En lugar de usar <var> incorrectamente para estilo, considera estas alternativas:

Para énfasis semántico:

                  
                    .emphasis { font-style: italic; }
                    .highlight { background: yellow; }
                  
                

Para variables en documentación técnica:

                  
                    .api-param {
                        font-style: italic;
                        color: #e83e8c;
                        font-weight: 500;
                    }

                    .code-snippet var {
                        background: rgba(255, 193, 7, 0.2);
                        padding: 2px 4px;
                        border-radius: 3px;
                    }
                  
                

Para fórmulas matemáticas:

                  
                    .math-expression var {
                        color: #dc3545;
                        font-family: 'Times New Roman', serif;
                        font-size: 1.1em;
                    }
                  
                

El elemento <var> es una herramienta semántica poderosa cuando se usa correctamente, mejorando tanto la accesibilidad como la estructura del contenido técnico y científico.

Etiquetas HTML <pre> Texto Preformateado

Definición <pre>

La etiqueta <pre> se utiliza para definir texto preformateado. El texto que se encuentra dentro de esta etiqueta aparecerá exactamente como fue escrito, lo que significa que respeta los espacios en blanco y los retornos de carro, sin colapsarlos como harían otros elementos HTML. Por defecto, los navegadores suelen mostrar el contenido de <pre> con una fuente de espaciado fijo (monoespaciada), como tipo Courier.

Cuándo usar <pre>

La etiqueta <pre> es especialmente útil en los siguientes escenarios:

  • Se necesita mostrar código de programación o fragmentos de scripts.
  • Se quiere presentar archivos de configuración, logs, o cualquier texto donde los espacios y saltos de línea sean relevantes.
  • Se quiere mostrar arte ASCII, poesía, estructuras de árbol o tablas simples en texto plano.
  • El formato original del texto debe mantenerse para la correcta interpretación o comprensión del contenido

Accesibilidad y lectores de pantalla <pre>

Desde el punto de vista de la accesibilidad, la etiqueta <pre> es generalmente bien interpretada por los lectores de pantalla. Estos dispositivos leen el contenido de <pre> de forma lineal, respetando los saltos de línea. Sin embargo, es importante considerar:

  • Cuando el bloque de código o texto preformateado es extenso, puede resultar tedioso para los usuarios de lectores de pantalla escucharlo en su totalidad, ya que estos interpretan las etiquetas <pre> como texto preformateado, leyendo cada carácter, incluidos los espacios; por ello, se recomienda incluir una opción para copiar el contenido o proporcionar un resumen y para código es recomendable:
                          
                            <pre role="img" aria-label="Ejemplo de código JavaScript">
                            function saludo() {
                                console.log("Hola mundo");
                            }
                            </pre>
                          
                        
    O mejor aún, usar la combinación semántica:
                          
                            <pre class="line-numbers" data-src-status="loaded" tabindex="0">
                              <code class="language-css" data-prismjs-copy="Copy">
                                h2 {
                                  font-size: 24px;
                                  color: navy;
                                }
                              </code>
                            </pre>
                          
                        
  • Siempre es una buena práctica proporcionar un contexto claro antes del bloque <pre> para que el usuario sepa qué tipo de información se presentará.
  • Usar etiquetas <code>, <samp> o <kbd> dentro de <pre> para mejorar la semántica y la comprensión.

Configuración CSS por Defecto <pre>

Por defecto, la etiqueta <pre> en la mayoría de los navegadores aplica:

                  
                    pre {
                        display: block;
                        font-family: monospace;
                        white-space: pre;
                        margin: 1em 0;
                    }
                  
                

Ejemplos de código <pre>

<div class="example">
 <h3>Ejemplo básico</h3>
 <pre>
Línea 1
    Línea con sangría
        Línea con más sangría
Línea final
 </pre>
</div>

<div class="example">
 <h3>Para código con sintaxis</h3>
 <pre><code class="language-javascript">
const usuarios = [
{ nombre: "Ana", edad: 25 },
{ nombre: "Luis", edad: 30 }
];
usuarios.forEach(user => {
console.log(`${user.nombre}: ${user.edad} años`);
});
 </code></pre>
</div>

<div class="example">
 <h3>Ejemplo de ASCII Art</h3>
 <pre>
|\_|\
| o.o |
> ^ <
 </pre>
</div>
.example {
 background: white;
 padding: 20px;
 margin: 20px 0;
 border-radius: 8px;
 box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.example h3 {
 color: #2563eb;
 margin-top: 0;
 border-bottom: 2px solid #e5e7eb;
 padding-bottom: 10px;
}

Ejemplo básico

Línea 1
    Línea con sangría
        Línea con más sangría
Línea final
                          

Para código con sintaxis


const usuarios = [
    { nombre: "Ana", edad: 25 },
    { nombre: "Luis", edad: 30 }
];

usuarios.forEach(user => {
    console.log(`${user.nombre}: ${user.edad} años`);
});

Ejemplo de ASCII Art

  |\_|\
  | o.o |
   > ^ <
    

Buenas prácticas modernas <pre>

Alternativas CSS recomendadas <pre>

COMENTARIOS

Si tiene alguna inquietud, duda o ha encontrado algún error, por favor infórmelo a través del formulario disponible para este propósito.

La política de privacidad, y los términos y condiciones están disponibles en el formulario de contacto.