Formateador HTML
Embellece, minifica y revisa tu marcado
Este formateador HTML ordena tu marcado como lo lee un navegador, así que un elemento de lista sin cerrar o una celda que falta se completan en lugar de rechazarse. Además, corrige la sangría, pone comillas a los atributos y cierra las etiquetas que dejaste implícitas, y luego anota cada cambio en su propia línea. Como todo el trabajo ocurre en esta pestaña, nada de lo que pegas se sube ni se ejecuta.
- GratisPrecio
- Embellecer + minificarModos
- En su líneaRevisiones
- NingunaSubidas
HTML Formatter
Beautify, minify and check HTML in your browser, with every issue on its line
- Elementos
- 0
- Profundidad
- 0
- Tamaño
- 0 B
Ready. Paste your HTML, open a file or try the sample.
| Resultado | Comprobación | Detalles |
|---|
Qué hace un formateador HTML
Un navegador nunca rechaza una página. Por eso, un párrafo sin cerrar, un elemento de lista sin etiqueta final y una celda abierta se muestran igual, porque el analizador rellena los huecos en silencio mientras lee. Así que el marcado de un sitio en vivo suele ser más desordenado que el código con el que alguien querría trabajar.
Ese hueco es la razón de ser de este formateador HTML. Como lee tu marcado con las mismas reglas que un navegador, cierra las etiquetas que dejaste implícitas, corrige la sangría, alinea los atributos y te devuelve algo que de verdad puedes leer.
Junto con el orden, guarda una nota de cada decisión. Por ejemplo, el cierre implícito de una lista, un elemento vacío escrito con barra de cierre o una etiqueta suelta sin pareja aparecen en una tabla de revisiones, con la línea y la columna donde están.
No construye ninguna página ni ejecuta ningún script, así que un bloque de marcado copiado de un sitio de cliente se lee igual que el tuyo. Además, un bloque <script> o <style> se copia sin tocar, porque su contenido no es HTML y darle formato lo rompería.
Tampoco sale nada de esta pestaña. Por lo tanto, una plantilla bajo un acuerdo de confidencialidad, un componente a medio hacer o una página que nunca publicarías se pueden pegar con total seguridad.
Cómo lee tu marcado un formateador HTML
La primera pasada convierte el texto en tokens. Una etiqueta de apertura, una de cierre, un tramo de texto, un comentario y el doctype son cosas distintas, y el lector decide cuál tiene delante carácter a carácter.
La segunda pasada ordena esos tokens en un árbol, y ahí es donde se revisa la forma. El reglamento es la especificación de análisis HTML de WHATWG, el mismo documento que siguen todos los navegadores.
Ese orden explica casi todo lo que dice la tabla de revisiones. Como algunas etiquetas pueden quedar abiertas a propósito, un nuevo <li> cierra el anterior y una nueva fila cierra la última celda. Así que el árbol que construye el lector es más ordenado que el texto que le diste.
Tres tipos de elemento reciben un trato especial. Primero, un elemento vacío como <br> o <img> nunca lleva etiqueta de cierre. Segundo, un elemento de texto sin procesar como <script>, <style> o <textarea> conserva su contenido literal. Tercero, <pre> conserva sus espacios, porque en ese elemento los espacios son contenido.
Las mayúsculas son una decisión, no una regla. Por defecto, el formateador deja los nombres de etiqueta y atributo tal cual, así que un <svg> en línea mantiene viewBox y linearGradient escritos como exige SVG. Aun así, un solo interruptor lo pasa todo a minúsculas cuando quieres el estilo HTML más simple.
Por qué embellecer y minificar usan el mismo lector
Los dos modos leen el marcado igual y construyen el mismo árbol. Luego, un modo imprime ese árbol en muchas líneas con sangría, y el otro lo imprime sin los huecos entre etiquetas.

Así que la diferencia está solo en el último paso. Como minificar reduce las series de espacios en lugar de borrarlas, se conserva el espacio entre dos etiquetas en línea, ya que quitarlo pegaría dos palabras en la página.
Ese lector compartido es la razón de que las revisiones sean iguales en ambos modos. Una etiqueta de cierre que falta se completa tanto si embelleces como si minificas, y la nota aparece en los dos casos.
En resumen, embellece cuando quieras leer o editar el marcado, y minifica cuando quieras publicarlo. Para una página que vas a servir, el minificador HTML dedicado hace la misma compresión con algunas opciones más.
Las revisiones que hace y qué significa cada nota
La primera nota es una etiqueta de cierre implícita. Como un <li>, un <p> o una fila de tabla pueden cerrarse solos, el formateador completa la etiqueta de cierre y te dice dónde, así que el árbol queda explícito aunque tu código no lo fuera.

La segunda es un elemento vacío escrito con etiqueta de cierre. Un </br> o una etiqueta de cierre en un <img> no significan nada, así que el lector la elimina y anota el sitio en lugar de dejar una pareja confusa.
La tercera es una etiqueta de cierre sin pareja. Cuando una etiqueta final no coincide con nada en la pila, el lector no puede emparejarla, así que marca la línea en lugar de adivinar qué etiqueta abierta querías decir.
La cuarta es un elemento que nunca se cierra. Si un <div> o un <span> llega abierto al final del archivo, la nota nombra la etiqueta que lo empezó, porque esa es la que tienes que encontrar.
La quinta es un atributo duplicado. Dos valores class en una etiqueta hacen que el navegador conserve el primero e ignore el segundo, así que el lector señala la pareja antes de que cambie tu estilo en silencio.
La sexta lo detiene todo, y es la única que lo hace. Un comentario, un doctype o un bloque <script> sin cierre se salen del final del archivo, así que el lector no puede terminar y no se imprime nada hasta que lo cierres.
Lo que este formateador HTML no hace
No muestra tu página. Aquí nada carga una imagen, ejecuta un script o aplica una hoja de estilos, así que el marcado no puede actuar sobre la pestaña mientras lo lees.

No valida el marcado por completo. Un formateador revisa la forma, no el reglamento, así que un <div> dentro de un <span> o un salto de encabezado de dos a cuatro sale con buena sangría y sigue estando mal. Ordenado no es lo mismo que válido.
No corrige tu código más allá de la forma. Una etiqueta de cierre deducida se completa y se anota, porque leer el árbol lo exige, pero el formateador nunca reescribe tus atributos ni reordena tu contenido.
No toca lo que no es HTML. El contenido de un <script>, un <style> o un <pre> se copia tal cual, así que pásalo por el validador de JavaScript o el validador de CSS cuando también quieras revisarlo.
Cómo usar el formateador HTML
Cuatro pasos, y ninguno necesita cuenta.
- 1
Pega o suelta el marcado
Pega una página entera o un componente, o suelta un archivo en el cuadro. Como el lector trabaja con texto, un fragmento sirve y un documento completo también.
- 2
Elige la sangría o minifica
Luego elige dos espacios, cuatro espacios o tabuladores para embellecer, o una línea para minificar. Como el mismo lector mueve ambos modos, puedes cambiar sin volver a pegar.
- 3
Lee las revisiones
Después, revisa la tabla bajo el resultado. Como cada fila lleva línea y columna, una etiqueta de cierre implícita o un cierre vacío eliminado están a un clic y no a una búsqueda.
- 4
Copia, descarga o sigue
Por último, copia el resultado, descárgalo como archivo o salta al primer problema y corrígelo. Después de eso, el marcado está listo para tu editor o para la página.
Por qué usar este formateador HTML
Cinco razones, y cada una ahorra unos minutos de mirar con lupa.
Siempre te da un resultado
Como HTML es tolerante por diseño, el lector ordena el marcado imperfecto en lugar de rechazarlo. Así que obtienes un resultado ordenado y una lista de notas, no un error y un panel vacío.
Muestra la línea y la columna
Cada nota lleva ambas, y un botón salta directo al lugar. Por lo tanto, una plantilla larga se convierte en una lectura corta y no en una búsqueda.
Conserva tus bloques script y style
Como el contenido de un elemento de texto sin procesar no es HTML, el formateador lo copia sin tocar. Así la página sale ordenada sin que su JavaScript se estropee.
No se sube nada
Todo el trabajo ocurre en esta pestaña del navegador. Por eso, una página de un repositorio privado o de un proyecto de cliente se puede pegar y leer aquí con seguridad.
Embellecer y minificar en un solo lugar
Como un solo lector mueve los dos modos, formateas mientras trabajas y minificas al publicar, sin una segunda herramienta ni un segundo pegado.
Hábitos que mantienen ordenado el marcado
Seis hábitos que hacen que una página sea fácil de leer y rápida de formatear.
- Cierra una etiqueta al abrirla Así la pareja ya está ahí cuando rellenas el medio. Es un hábito pequeño, pero elimina casi todas las notas de elementos sin cerrar antes de que aparezcan.
- Pon comillas a cada valor de atributo Un valor sin comillas funciona hasta que encuentra un espacio o una barra, y entonces se traga lo que sigue. Como las comillas acaban con las dudas, el formateador nunca tiene que añadirlas por ti.
- Sangra por anidamiento, no a ojo Una etiqueta hija va siempre un nivel más adentro que su madre. Por lo tanto, un formateador puede confirmar la forma que querías, en lugar de heredar los espacios que se colaron.
- Deja un elemento de bloque por línea Las etiquetas en línea pueden compartir línea, pero una sección, una lista o una tabla se leen mejor apiladas. Así el árbol de la página coincide con el árbol de tu cabeza.
- Valida antes de minificar Un minificador confía en lo que recibe, así que una etiqueta abierta sale abierta y más difícil de ver. Por eso, embellece primero, lee las revisiones y solo después reduce el archivo.
- Deja los bloques sin procesar a sus herramientas Un script o una hoja de estilos dentro de la página no son HTML. Así que revísalos con un validador hecho para ellos en lugar de esperar que un formateador los lea.
Seis formas en que el marcado engaña
Ninguna detiene a un navegador, y precisamente por eso es fácil publicarlas sin querer.
Un elemento de lista sin etiqueta de cierre
Ojo aquí. Un
<li>se cierra solo cuando empieza el siguiente, así que la página se ve bien y el código oculta lo profundo que es el anidamiento.Un elemento vacío con etiqueta de cierre
Un
</br>o un<img>cerrado no significan nada para un navegador, así que se descartan en silencio. Como nada se rompe, la etiqueta suelta sobrevive revisión tras revisión.Dos atributos con el mismo nombre
Un navegador conserva el primer
classe ignora el segundo. Por eso, un estilo que no se aplica suele ser un atributo duplicado y no un mal selector.Un elemento de bloque dentro de uno en línea
Un
<div>dentro de un<span>se muestra, pero no es válido y confunde la maquetación. Así que el marcado puede tener una sangría perfecta y seguir estando mal.Un comentario que nunca se cierra
Un comentario sin marca de cierre se traga el resto del archivo. Por eso todo lo que viene después desaparece de la página, y es el único caso en que el formateador no imprime nada.
Una comilla perdida dentro de un atributo
Si falta la comilla de cierre, el valor invade el siguiente atributo. Como la etiqueta se lee entonces como un valor largo, el error aparece lejos de donde lo cometiste.
Preguntas sobre el formateador HTML
¿Este formateador HTML es gratis?
Sí. No hay cuenta, ni límite, ni plan de pago. Así que puedes formatear tantas páginas como quieras.
¿Sube mi marcado a algún servidor?
No. Todo el trabajo ocurre en esta pestaña del navegador y no se envía nada. Por eso, una página bajo un acuerdo de confidencialidad se queda donde está.
¿Qué diferencia hay entre embellecer y minificar?
Los dos leen el marcado de la misma forma. Embellecer imprime el árbol en líneas con sangría para que puedas leerlo, mientras que minificar lo imprime sin huecos para que pese menos.
¿Mantiene los espacios entre mis etiquetas en línea al minificar?
Sí. Minificar reduce las series de espacios en lugar de borrarlas, porque un espacio entre dos elementos en línea se ve en la página y quitarlo uniría dos palabras.
¿Toca mis bloques script y style?
No. El contenido de un elemento script, style o pre se copia tal cual, porque no es HTML y darle formato lo rompería.
¿Por qué añadió etiquetas de cierre que nunca escribí?
Porque algunas etiquetas, como un elemento de lista o una fila de tabla, pueden quedar abiertas a propósito. Así que el lector completa la etiqueta de cierre implícita y lo anota, de modo que el árbol queda explícito.
¿Por qué quitó la etiqueta de cierre de mi imagen?
Un elemento vacío, como una imagen o un salto de línea, nunca lleva etiqueta de cierre. Por lo tanto, una etiqueta de cierre en él no significa nada, y el lector la elimina e indica la línea.
¿Valida mi HTML?
No. Revisa la forma, no el reglamento completo, así que una página puede quedar ordenada y aun así no ser válida. Ordenado y válido son dos preguntas distintas.
¿Puede formatear un documento entero y no solo un fragmento?
Sí. Una página completa con doctype, head y body se formatea, y también un solo componente. Además, los números de línea se refieren a lo que pegaste.
¿Mantiene las mayúsculas de mis atributos SVG?
Sí, por defecto. Un SVG en línea conserva viewBox y linearGradient tal cual, porque SVG distingue mayúsculas y HTML no. Aun así, un interruptor lo pasa todo a minúsculas si lo prefieres.
¿Se negará alguna vez a formatear?
Casi nunca. Solo un comentario, un doctype o un bloque script sin cierre detienen al lector, porque no encuentra dónde debía terminar ese bloque.
¿Funciona con archivos de Vue, Svelte o plantillas?
En gran parte. Los atributos de los frameworks, como un valor enlazado o una directiva, se conservan, porque el lector es flexible con los nombres de atributo. Sin embargo, la sintaxis de plantilla compleja se lee como texto.
¿Puedo pasar a minúsculas mis etiquetas y atributos?
Sí. Un interruptor convierte cada nombre de etiqueta y de atributo a minúsculas, que es el estilo HTML habitual, y deja tu texto y tus valores intactos.
¿Cómo salto a un problema?
Cada nota lleva una línea y una columna, y un botón desplaza la entrada hasta la primera. Así llegas al carácter exacto y no solo a la zona.
¿Puedo dividir listas largas de atributos?
Sí. Un interruptor reparte una etiqueta con muchos atributos en varias líneas cuando la línea se alarga demasiado, lo que mantiene legible un componente ancho.
¿Minificar aquí es lo mismo que en la página del minificador HTML?
El resultado es la misma compresión. No obstante, el minificador HTML dedicado añade algunas opciones para una página que vas a publicar, así que úsalo cuando vayas a producción.
¿Cuenta algo?
Sí. Muestra el número de elementos, el anidamiento más profundo y el tamaño del resultado, lo que ayuda a comprobar si se perdió algo al pegar.
¿Necesita una cuenta o una extensión?
No. No hay registro, ni plugin, ni extensión. Así que cierras la pestaña en cuanto el marcado está ordenado.
¿Funciona en el móvil?
Sí. Los paneles se apilan y las notas se ajustan, de modo que un formateo rápido funciona en el móvil, aunque un archivo largo es más cómodo con teclado.
¿Y mi privacidad?
Todo ocurre en el navegador, así que no se guarda ni se envía ningún marcado. Por supuesto, puedes comprobarlo tú mismo abriendo la página con la pestaña de red a la vista.
Herramientas que van con esta
Cuatro páginas a las que suele llevar este mismo trabajo.
Cuando la página esté ordenada, redúcela para producción. Como el navegador descarga cada byte, minifica el marcado que vas a servir.
Abrir herramienta →Codificador y decodificador de entidades HTML
Un formateador no toca tu texto, así que convierte aquí un símbolo de ángulo suelto en una entidad cuando quieras mostrar marcado en lugar de mostrarlo como página.
Abrir herramienta →El primo más estricto, donde una etiqueta de cierre que falta es un error y no algo que completar. Así que formatea un feed o un archivo de configuración con el lector adecuado.
Abrir herramienta →Cuando el marcado se lea bien, coloréalo para una entrada o una diapositiva. Como los colores siguen a los tokens, una página ordenada se resalta limpiamente.
Abrir herramienta →
Ordena el marcado y publícalo
Pega la página, elige una sangría o la minificación y lee las notas bajo el resultado. Nada se ejecuta y nada se sube. Además, casi todos los archivos quedan listos en segundos, y la tabla de revisiones nombra cada etiqueta que el lector tuvo que cerrar por ti.