Dynamische HTML is een verzamelnaam voor een combinatie van Hypertext Markup Language (HTML)-tags en opties die webpagina's meer geanimeerd en interactief kunnen maken dan eerdere versies van HTML. Veel van dynamische HTML is gespecificeerd in HTML 4.0. Eenvoudige voorbeelden van dynamische HTML-mogelijkheden zijn het laten veranderen van de kleur van een tekstkop wanneer een gebruiker er met de muis overheen gaat en de mogelijkheid voor een gebruiker om een afbeelding naar een andere plaats op een webpagina te "slepen". Dynamische HTML kan ervoor zorgen dat webdocumenten eruit zien en werken als desktoptoepassingen of multimediaproducties.
De concepten en functies in dynamische HTML
- Een objectgeoriënteerde kijk op een webpagina en de elementen ervan
- Cascading style sheets en de gelaagdheid van inhoud
- Programmering die alle of de meeste pagina-elementen kan aanpakken
- Dynamische lettertypen
Een objectgeoriënteerde kijk op pagina-elementen
Elk pagina-element (divisie of sectie, kop, paragraaf, afbeelding, lijst, enzovoort) wordt gezien als een "object." (Microsoft noemt dit het "Dynamic HTML Object Model." Netscape noemt het het "HTML Object Model". W3C noemt het het "Document Object Model"). Elke koptekst op een pagina kan bijvoorbeeld een naam krijgen, attributen voor tekststijl en -kleur, en bij naam worden geadresseerd in een klein programma of "script" dat op de pagina is opgenomen. Deze koptekst of een ander element op de pagina kan worden gewijzigd als gevolg van een bepaalde gebeurtenis, zoals het passeren van de muis of het klikken daarop, of het verstrijken van een bepaalde tijd. Of een afbeelding kan van de ene plaats naar de andere worden verplaatst door het "slepen en neerzetten" van het afbeeldingsobject met de muis. (Deze event-mogelijkheden kunnen worden gezien als de reactiemogelijkheden van het element of object). Elke verandering vindt onmiddellijk plaats (aangezien alle variaties van alle elementen of objecten als onderdeel van dezelfde pagina zijn verzonden door de webserver die de pagina heeft verzonden). Variaties kunnen dus worden gezien als verschillende eigenschappen van het object.
Niet alleen kunnen elementvariaties de tekstformulering of kleur veranderen, maar alles binnen een koptekstobject kan worden vervangen door nieuwe inhoud die andere of extra HTML en ook andere tekst bevat. Microsoft noemt dit de "Text Range technology."
Hoewel JavaScript, Java applet, en ActiveX controls al aanwezig waren in eerdere niveaus van Web pagina's, impliceert dynamische HTML een grotere hoeveelheid programmering in Web pagina's omdat meer elementen van een pagina kunnen worden aangepakt door een programma.
Een functie genaamd dynamische fonts stelt Web pagina ontwerpers in staat font bestanden met specifieke font stijlen, groottes, en kleuren op te nemen als onderdeel van een Web pagina en de fonts te laten downloaden met de pagina. Dat wil zeggen dat de lettertypekeuze niet langer afhankelijk is van wat de browser van de gebruiker biedt.
Style Sheets en Layering
Een stijlblad beschrijft de standaard stijlkenmerken (waaronder de paginaopmaak en de lettertypestijl en -grootte voor tekstelementen zoals koppen en hoofdtekst) van een document of een deel van een document. Voor webpagina's beschrijft een stijlblad ook de standaard achtergrondkleur of afbeelding, hypertext link kleuren, en mogelijk de inhoud van de pagina. Stijlbladen zorgen voor consistentie tussen alle of een groep pagina's in een document of een website.
Dynamische HTML bevat de mogelijkheid om stijlbladen te specificeren op een "cascading style sheet"-manier (dat wil zeggen, linken naar of specificeren van verschillende stijlbladen of stijlverklaringen met vooraf gedefinieerde voorrangsniveaus binnen dezelfde of een set verwante pagina's). Als gevolg van interactie van de gebruiker kan een nieuw stijlblad van toepassing worden verklaard en resulteren in een verandering van het uiterlijk van de webpagina. U kunt meerdere lagen van stijlbladen binnen een pagina hebben, een stijlblad binnen een stijlblad binnen een stijlblad. Een nieuw stijlblad mag slechts één element van het stijlblad erboven variëren.
Layering is het gebruik van alternatieve stijlbladen of andere benaderingen om de inhoud van een pagina te variëren door inhoudslagen te bieden die bestaande inhoudsgedeelten kunnen overlappen (en vervangen of over elkaar leggen). Lagen kunnen worden geprogrammeerd om te verschijnen als onderdeel van een getimede presentatie of als resultaat van gebruikersinteractie.