Le HTML et sa variante plus stricte XHTML sont des langages de balisage des pages Web. Il n’y a pas si longtemps, le HTML servait à définir aussi bien la structure des pages que leur présentation visuelle. Aujourd'hui, ces deux aspects doivent être bien distincts et le X/HTML est destiné uniquement à représenter la structure d’une page : titres, sous-titres, paragraphes, images, formulaires de saisie, liens hypertextes, etc.
C’est la base d’une page Web, parfois la seule considérée et utilisée par le logiciel qui visite cette page, comme les moteurs de recherche ou les navigateurs textuels.
Le code CSS (Cascading Style Sheets, ou feuilles de styles en cascade) permet de modifier la présentation des éléments X/HTML : couleur, taille, police de caractères, mais aussi position sur la page, largeur, hauteur, empilement, bref tout ce qui touche à la mise en page d’un document X/HTML.
Ainsi, un même document X/HTML pourra changer d’apparence sans changer de structure, grâce uniquement à la modification des règles CSS qui lui sont appliquées.
La séparation de la structure et de la présentation facilite ainsi la construction, mais aussi la maintenance et l’évolution des pages Web.