Dynamic HTML, more commonly known as DOM scripting or DHTML, is a set of tools that can be used to create interactive elements on a website. Typically, dynamic HTML combines standard HTML, which is the markup language of the web, with a scripting language. This allows the website designer to include variable elements to a webpage that can be changed by the user after the page has loaded. An example of dynamic HTML is a menu that drops down when the user hovers over it. DHTML games are also becoming more popular.
Standard HTML doesn't have “variables” which can be changed, but dynamic HTML does. Once a website with DHTML has loaded, the scripting language can be used to change certain elements of the page. It cannot, however, create pages with dynamically generated content. For this, the web designer must use server side scripting languages such as PHP and Perl.
Originally, dynamic HTML was known as DHTML. Due to initial problems with getting the technology to work on all internet browsers, this label has fallen out of fashion. Instead, the technology is now usually referred to as DOM scripting which stands for Document Object Model scripting. This provides a set of conventions that work across all browsers, and makes developing dynamically animated web pages much easier.
There are a number of common examples of dynamic HTML in action. Aside from drop down menus, forms which can return information without needing to be sent to a server and automatically updating content are two other examples. These would be very difficult, or impossible, to achieve using standard HTML and a server side scripting language. Hiding content from a user until a specific action has taken place is another common use of the technology.
The development of dynamic HTML games is becoming less difficult now that cross-browser issues are starting to pose less of rare. DOM scripting games are still relatively rare, but the technology works well for small browser based games. An advantage to DHTML games is that they can also be run popular operating systems as widgets.