¿Cuál es la mejor manera de organizar archivos CSS?

En LayerVault, escribimos nuestro CSS muy específicamente. Después de un largo tiempo en las trincheras de CSS y otras bondades de front-end, creo que tenemos la mejor manera de hacerlo.

Usamos la biblioteca Sprockets, que está basada en Ruby, pero podría ser modificada en el idioma que elija. La idea de canalización CSS se ve de la siguiente manera:

Archivos de nivel superior

Define algunos archivos a nivel de aplicación. Estos podrían ser external.css e internal.css por ejemplo. Todos los demás archivos están incluidos por estos dos archivos.

Archivos incluidos

A medida que escribe su HTML y su información de estilo, comienza a escribir su CSS lo más específico posible. Cada elemento principal (botón, lista de la barra lateral) obtiene su propio archivo css. Tenemos archivos CSS con solo 2 reglas muy específicas a veces. En general, cada plantilla HTML obtiene su propio archivo CSS.

A medida que se encuentra copiando y pegando código de archivos CSS, mueve esa regla un nivel hacia arriba. Por ejemplo, si button.css define una clase CSS que se usa en otro lugar, muévala a su padre, internal.css .

Boom, tus problemas de CSS se han ido. Encontrar reglas específicas es fácil ahora. Su CSS tiene la misma separación lógica que (con suerte) su JS y el código de la aplicación.

Despliegue

En la implementación, obviamente querrás concatenar y minificar tus archivos CSS.

Voila, CSS sin dolor de cabeza.

como dijo Josh Pigford antes, lo mejor es relativo, así que aquí también están mis 2 centavos.

Yo uso CSSEdit ( http://macrabbit.com/ )
nota: Supongo que son el último lanzamiento de CSSEdit 3 incluido con Espresso.

CSSEdit le permite agrupar estilos en carpetas a través de Comentarios. También tiene una impresionante interfaz de vista previa para seleccionar elementos en una página y descubrir sus ID de elementos CSS. Esto es realmente útil si eres nuevo en CSS, en mi humilde opinión.

Dicho esto, es mucho más fácil dividir las cosas en elementos de diseño global (Encabezado, Pie de página, Fondo, Navegación superior, Navegación izquierda, Envoltorio de página principal, etc.) cuando tiene carpetas para organizar las piezas.

La mayoría de las veces trato de mantener el CSS en una estructura similar a la estructura general de la página HTML. Por ejemplo, un div que contiene la navegación superior suele ser su propia carpeta en CSSEdit cuando estoy desarrollando el CSS.

Además, después de los elementos de página de nivel superior, me muevo a secciones del sitio y luego a personalizaciones de página individuales (si es necesario).

Espero que esto ayude.

Aclamaciones,
JR

“Lo mejor” es obviamente relativo, pero esto es lo que hago …

Inicialmente agrupo por elementos globales (es decir, encabezado, pie de página, contenedor, etc.).

Luego, agrupo por áreas del sitio (es decir, artículos, foros, fotos, videos) … esas áreas generalmente abarcan varias páginas, pero el CSS que está asociado con esas áreas está agrupado.

Ocasionalmente, esas áreas comparten algún código, y si ese es el caso, a veces crearé una nueva agrupación de código para los elementos compartidos.

En la práctica, en realidad uso SASS / Compass para hacer que mi CSS esté mucho más orientado a objetos y es mucho más fácil mantener mi código organizado y no duplicar lo que escribo tanto, así que una vez que se sienta cómodo con los conceptos básicos de CSS, es posible que desee para comprobar eso.