Al principio HTML era todo. Despues se creo CSS.
HTML es un lenguaje que pueden escribir los humanos y que puede ser interpretado por los browsers mostrando cosas.
Al mostar esas cosas muestran informacion (que pueden ser palabras, imagenes) y estilos (esas palabras estan escritas en cierto tipo de letra o color, o tienen alineacion izquierda o derecha o centrada)
Y aun asi… esa info puede ser mostrada de diferente manera en diferents dispositivos.
Hoy HTML sigue pudiendo mostrar todo eso.
Pero se definio CSS para tener un lugar donde solo aparezca lo que es estilo… es decir el formato de la letra, el color, la alineacion, el tamaño. la relacion entre una imagen y el texto… que pasa si la ventana del browser es mas chica que la imagen (la corta, la achica?) y cosas asi.
Sin embargo HTML deberia encargarse solo del contenido y tambien de la estructura.
En HTML se define si algo es un titulo o un parrafo…. y en css se define por ejemplo que los titulos seran azules y de tamaño 15 y los parrafos seran negros y de tamaño de letra 9
Esa separacion hace que tal vez podamos aplicar el mismo CSS a varias paginas de un sitio web… de manera que todo el sitio tenga una coherencia.
Por otra parte, cuando un ser humano lee el HTML ve mas limpia la informacion y la estructura de este… al igual que cuando mira el CSS ve mas claro y mas nitido los formatos que van a ser presentados en el titulo.
Un ejemplo muy interesante de esto puesto en practica es el sitio
mezzoblue § css Zen Garden Design List
Este sitio te presenta el mismo html y como se ve con distintos CSS
En este caso el css define los estilos tambien utilizando ciertas imagenes para los bordes, los subrayados y mucho de la presentacion.
Pero en TODOS los ejemplos por mas diferente que se vea … el HTML es el mismo.