El HTML dinámico, más conocido como scripting DOM o DHTML, es un conjunto de herramientas que se pueden utilizar para crear elementos interactivos en un sitio web. Normalmente, el HTML dinámico combina HTML estándar, que es el lenguaje de marcado de la web, con un lenguaje de secuencias de comandos. Esto permite que el diseñador del sitio web incluya elementos variables en una página web que el usuario puede cambiar después de que se haya cargado la página. Un ejemplo de HTML dinámico es un menú que se despliega cuando el usuario pasa el mouse sobre él. Los juegos DHTML también se están volviendo más populares.
Los sitios web creados a partir de HTML estático no pueden ser modificados ni editados por el usuario una vez cargados. Para los sitios web básicos, esto no es un problema, pero la falta de interactividad es un problema para muchos sitios web y aplicaciones. El HTML dinámico combina HTML normal con JavaScript, un lenguaje de scripting simple, para brindar mucha más libertad al diseñador web a través de elementos interactivos.
El HTML estándar no tiene «variables» que se puedan cambiar, pero el HTML dinámico sí. Una vez que se ha cargado un sitio web con DHTML, el lenguaje de secuencias de comandos se puede utilizar para cambiar ciertos elementos de la página. Sin embargo, no puede crear páginas con contenido generado dinámicamente. Para ello, el diseñador web debe utilizar lenguajes de programación del lado del servidor como PHP y Perl.
Originalmente, el HTML dinámico se conocía como DHTML. Debido a los problemas iniciales para hacer que la tecnología funcione en todos los navegadores de Internet, esta etiqueta ha pasado de moda. En cambio, la tecnología ahora se conoce como scripting DOM, que significa scripting del modelo de objetos de documento. Esto proporciona un conjunto de convenciones que funcionan en todos los navegadores y facilita mucho el desarrollo de páginas web animadas dinámicamente.
Hay varios ejemplos comunes de HTML dinámico en acción. Aparte de los menús desplegables, los formularios que pueden devolver información sin necesidad de enviarlos a un servidor y actualizar el contenido automáticamente son otros dos ejemplos. Esto sería muy difícil, o imposible, de lograr usando HTML estándar y un lenguaje de scripting del lado del servidor. Ocultar el contenido de un usuario hasta que se lleve a cabo una acción específica es otro uso común de la tecnología.
El desarrollo de juegos HTML dinámicos se está volviendo menos difícil ahora que los problemas entre navegadores comienzan a ser menos raros. Los juegos de secuencias de comandos DOM todavía son relativamente raros, pero la tecnología funciona bien para juegos pequeños basados en navegador. Una ventaja de los juegos DHTML es que también se pueden ejecutar en sistemas operativos populares como widgets.