Desde el punto de vista del mantenimiento del sitio web la separación del contenido y la presentación y la presentación del comportamiento es una buena práctica. Ahora si queremos cambiar los colores de nuestro sitio web solamente debemos editar un simple archivo CSS y nos ahorramos el tener que editar a veces hasta miles de docuementos HTML. Si utilizamos CSS dentro del HTML dentro de cada etiqueta por ejemplo <p style="background:#d1d1d1; color: #333333; line-height: 16px;"> vamos a tener que editar cada una de esas etiquetas cuando hagamos un rediseño de nuestro sitio en lugar de una simple hoja de estilos.

También existe otro problema, en CSS y en JavaScript a menudo se utilizan caracteres que tienen un significado especial en HTML, lo que hace que sea necesario escapar estos caracteres, pero que sucede cuando incrustamos JavaScript y utilizamos la práctica arcairca de ocultar el código del script con comentarios SGML cómo (<!--...-->), ahi no vamos a poder utilizar el operador (--), porque un doble signo de menos va a hacer que el código comentado sea finalizado.