Formatear HTML

Ordena HTML minificado o mal indentado con dos espacios por nivel. Mantiene los elementos en línea junto a su texto y formatea también los bloques script, style y JSON-LD.

El resultado aparecerá aquí.

Cómo funciona Formatear HTML

Ordena HTML minificado o mal indentado con dos espacios por nivel. Mantiene los elementos en línea junto a su texto y formatea también los bloques script, style y JSON-LD.

Entrada HTML
Salida HTML legible
Trabajos realizados 2.507

Herramientas relacionadas

Guía de uso

Con esta herramienta puedes formatear HTML minificado o mal indentado y convertirlo en un árbol limpio, con dos espacios por nivel. Los elementos de bloque empiezan en su propia línea y los elementos en línea, como enlaces, strong o span, se quedan dentro de la frase a la que pertenecen, así que el aspecto de la página no cambia. Los bloques <script> y <style> también se ordenan.

Cómo formatear HTML

  1. Pega el código: una página completa, una plantilla de correo o un único componente.
  2. Dale formato con el botón de ejecutar; también sirve el atajo Ctrl + Enter.
  3. Recorre la sangría para entender la estructura y localizar cierres fuera de sitio.
  4. Copia el resultado a tu editor o descárgalo como archivo de texto.

Reglas de sangría que aplica

  • Bloques en su línea: div, section, ul, table y similares abren línea y su contenido baja un nivel.
  • Elementos en línea junto al texto: un enlace o una negrita nunca se separan de la frase, para no introducir espacios nuevos.
  • Bloques cortos en una sola línea: si un bloque solo contiene texto y elementos en línea y no supera los 100 caracteres, se queda entero, como <li><a href="/">Inicio</a></li>. Los párrafos largos se dividen en apertura, texto y cierre.
  • Código incrustado: el contenido de script se formatea como JavaScript, el de style como CSS y el JSON-LD como JSON indentado.
  • pre y textarea intactos: sus espacios se ven en pantalla, por eso se respetan al carácter.
  • Etiquetas ordenadas: los espacios de sobra dentro de una etiqueta desaparecen, pero los valores entre comillas no se tocan.

Ejemplo: la cabecera de una tienda

Partimos de una sola línea: <header><h1>Mi tienda</h1><nav><a href="/">Inicio</a> <a href="/ofertas">Ofertas</a></nav></header>. El resultado tiene cuatro líneas:

SangríaLínea
0<header>
2 espacios<h1>Mi tienda</h1>
2 espacios<nav><a href="/">Inicio</a> <a href="/ofertas">Ofertas</a></nav>
0</header>

Fíjate en la tercera fila: los dos enlaces siguen juntos y con el espacio que los separa, porque son elementos en línea y el bloque es corto. Las etiquetas de cierre opcional, como li, p o td, se consideran cerradas cuando se abre un hermano, de modo que una lista escrita sin </li> no va desplazándose hacia la derecha.

Detectar etiquetas sin cerrar

La herramienta no añade cierres que falten, pero los delata. Si formateas <main><article><h2>Título</h2><div class="cuerpo"><p>Texto</article></main>, verás que </article> aparece justo después de "Texto" y la sangría retrocede tres niveles de golpe, sin ninguna línea </p> o </div> entre medias. Ese hueco indica que el div nunca se cerró. Regla práctica: si la sangría retrocede más de un nivel en un solo paso y los elementos saltados no son de cierre opcional, como li, p o td, hay una etiqueta sin cerrar justo encima.

Otra ventaja: si formateas dos versiones de una plantilla con las mismas reglas y las pasas por comparar textos, las diferencias de sangría desaparecen y solo ves los cambios reales.

Lo que la herramienta no hace

  • No valida el HTML ni corrige anidaciones incorrectas.
  • No corta las líneas largas a un ancho fijo.
  • No reordena atributos ni cambia mayúsculas y minúsculas en las etiquetas.
  • No permite elegir otra sangría: siempre son dos espacios.

Privacidad y herramientas relacionadas

El formateo se ejecuta con JavaScript en tu navegador; el código no se envía al servidor y la página solo suma un contador de uso anónimo. Cuando quieras publicar, haz el camino inverso con minificar HTML. Para hojas de estilo y scripts sueltos tienes formatear CSS y formatear JavaScript, y el resto en herramientas para desarrolladores.

Preguntas frecuentes

No debería. Los elementos en línea y el texto se mantienen en la misma línea, así que no aparecen espacios nuevos entre palabras, y los saltos de línea y la sangría que se añaden alrededor de los bloques los ignora el navegador. El contenido de pre y textarea no se modifica. Solo podrían notarse diferencias en diseños poco habituales que dependen de los espacios del código fuente entre elementos inline-block.

No añade ni elimina etiquetas: se limita a indentar lo que recibe. Su utilidad está en hacer visibles los errores, porque un div sin cerrar o unas etiquetas cerradas en orden incorrecto provocan un salto inesperado de la sangría hacia la izquierda. Revisa las líneas justo encima del salto para encontrar el problema y, si necesitas una validación formal, pasa después el resultado por un validador de HTML.

Cuando un bloque contiene solo texto y elementos en línea y no supera los 100 caracteres, se deja en una línea para que estructuras cortas, como un elemento de menú o un título, se lean de un vistazo. Si el bloque contiene otros bloques o es más largo, se divide en una línea de apertura, el contenido sangrado y una línea de cierre.

La herramienta usa siempre dos espacios por nivel y no ofrece una opción para cambiarlo. Si tu proyecto trabaja con cuatro espacios o con tabulaciones, pega el resultado en tu editor y usa su función de conversión de sangría, que la mayoría de editores de código incluye. Dos espacios es una elección habitual en HTML porque el anidamiento suele ser profundo y así las líneas caben mejor en pantalla.