Hay cuatro casos básicos:
- style = atributo. Este es el menos sostenible pero más fácil de codificar. Personalmente considero el uso de style = ser un error.
- <estilo> elemento en la parte superior de la página. Esto es un poco mejor que style = porque mantiene el marcado limpio, sin embargo, desperdicia ancho de banda y hace que sea más difícil hacer cambios de CSS, porque no se puede ver la (s) hoja (s) de estilo y saber qué reglas existen.
- page-specifc css: Esto le permite tener el HTML limpio y limpiar el archivo CSS principal. Sin embargo, significa que su cliente debe descargar muchos pequeños archivos CSS, lo que aumenta el ancho de banda y la latencia de carga de la página. Sin embargo, es muy fácil de mantener.
- un CSS grande para todo el sitio: la principal ventaja de un archivo grande es que es una sola cosa para descargar. Esto es mucho más eficiente en términos de ancho de banda y latencia.
Si tiene alguna programación del lado del servidor en marcha, que podría ser capaz de simplemente combinar dinámicamente varias hojas # 3 para obtener el efecto de # 4.
Recomendaría un archivo grande, ya sea que lo mantenga como un archivo o genere el archivo a través de un proceso de compilación o dinámicamente en el servidor. Puede especificar sus selectores utilizando ID específicos de la página (siempre incluya uno, por las dudas).
En cuanto al answer that was accepted when I wrote this, no estoy de acuerdo con la búsqueda de una "combinación de clases que le brinde el resultado que desea". Esto me parece que las clases identifican un estilo visual en lugar de un concepto lógico. Tus clases deberían ser algo así como "caja de título" y no "rojo". Entonces, si es necesario cambiar el color del texto en la página de información del usuario, se puede decir
#userInfoPage .titlebox h1 { color : red; }
No inicie la aplicación de las clases por todo el lugar, porque una clase actualmente tiene una cierta apariencia que desea. Debería poner conceptos de alto nivel en su página, representados por HTML con clases, y luego diseñar esos conceptos, y no al revés.
Ojalá pudiera haber dado la respuesta a todas, pero la tuya fue la más detallada, así que la entiendes. Terminé ideando una clase que podría ser lo suficientemente genérica como para ir en el archivo css principal sin saturar las cosas. Gracias por la consideración sobre el almacenamiento en caché y el tamaño de página, me había olvidado de considerar eso también. – Chris
Gran respuesta. Esto articula mejor los puntos en mi publicación. Bien hecho. –