2009-01-30 11 views
20

Me pregunto lo que otros hacen en este sentido:CSS - La separación de color y la posición

¿Trata de mantener CSS posicional (layout) separado de colores/CSS sabor (color, color de fondo, fondo -imágenes, tamaño de letra y familia)?

¿Usa dos hojas de estilo? ¿Combina dos hojas de estilo del servidor? Capa de abstracción para el CSS? o no lo intentas?

Sé que a veces, después de trabajar en el mismo proyecto web durante seis meses, generalmente puedo vivir con CSS posicional, pero al final quiero cambiar los colores/imágenes.

+0

Una pregunta interesante. Realmente no había considerado esto ... Estoy deseando ver las respuestas :) +1 –

+0

¿Qué proyecto vi que te permitió poner variables en tu CSS? ¿Te gusta nombrar tu propio color? ¿Eso salió del mundo de Ruby? Tal vez un Rubyista puede iluminarme. – BuddyJoe

+0

@Bruno: creo que estás hablando de SASS, que es la contraparte de CSS de HAML, un lenguaje de plantilla de Ruby. Tiene soporte básico para macros y variables CSS. http://haml.hamptoncatlin.com/ –

Respuesta

11

Tiendo a mantener todas las CSS juntas, sin separar "estilos de color" de "estilos posicionales" o "estilos de diseño". Encuentro que cuando trato de depurar un "módulo" específico, es más fácil tener todas las reglas de CSS aplicadas a un selector, y no extenderlas sobre la hoja de estilos.

Sin embargo, sugiero que lea Creating Sexy Stylesheets en thinkvitamin.com. Una cosa que hago es enumerar las reglas en un cierto orden cada vez, así que sé dentro del bloque de declaración dónde encontrar lo que quiero.

Más información en Jina Bolton de http://creatingsexystylesheets.com/

+0

Ah, y como postdata, en Scripps (http://foodnetwork.com, http://hgtv.com), guardamos varios archivos CSS separados en función de lo que son para (es decir, header.css, footer.css, search.css) y concatenarlos en un servidor de desarrollo antes de empujarlos a la producción. –

+0

@Mark W: ¿Alguna forma especial de hacerlo? He estado pensando en hacer eso, y luego pasarlo a través de un minificador después. ¿Estás usando un simple script o un paquete para eso? – Ross

+0

Mark, Scripps es en realidad uno de nuestros clientes :) ¡Pequeño mundo! –

0

guardo todo en un solo archivo y sólo proporcionan diferentes archivos de estilos alternativos (por ejemplo, para imprimir).

Dentro de ese archivo que mantienen el diseño general (columnas, headeer & pie de página) separada de los contenidos reales (párrafos, encabezados, listas ...)

estoy acostumbrado a pensar orientado a objetos, por lo que el grupo estilos para diferentes objetos (menús, entradas de blog) juntos. Desde esa perspectiva, el color y la posición pertenecen al mismo objeto y, por lo tanto, se mantienen juntos.

estoy deseando que la capacidad de definir los colores una vez en una hoja de estilo, asignarles un nombre declarativa (por ejemplo, 'HeadingColour') y luego utilizar el nombre al asignar el color a un selector ...

+0

Me gusta este estilo también. Quizás es solo que los archivos CSS pueden volverse tan grandes y difíciles de mantener. Creo que muchos de los mejores temas de WordPress creo que utilizan este estilo CSS. (+1) – BuddyJoe

2

I mantener todo junto en un solo archivo y utilizar la función de carpetas en CSSEdit para mantenerlo organizado. La empresa de diseño web Viget tiene una publicación en el blog sobre esta técnica here.

+0

+1 - Hago algo así con secciones comentadas, aunque no tengo un editor que haga nada con esta información. Soy un chico de Windows/Linux, algo así como CSSEdit para esas plataformas? – BuddyJoe

5

Encontrará que en los proyectos a gran escala, el diseño y el color/sabor de CSS (si es inteligente al respecto), por lo general, sucede que están separados. En primer lugar, si te ves a ti mismo estableciendo reglas de estilo de color/tamaño de fuente/estilo de fuente una y otra vez, estás perdiendo el tiempo. Normalmente, debe definir sus fuentes en un solo lugar: la etiqueta de cuerpo. Las fuentes adicionales deben definirse en sus respectivas etiquetas ... h1, h2, p, etc. En mi opinión, no es una buena práctica darles a estas etiquetas directivas posicionales; deben colocarse dentro de un div que será responsable de su diseño. Lo mismo aplica para el color y el tamaño de fuente. Creo que la única excepción a la regla suele ser el fondo, lo que es especialmente cierto si tienes muchos degradados y cosas así.

Realmente lo que se trata es la planificación; un proyecto bien planificado necesita muy pocas reglas de estilo/color de sabor. Entonces, para responder a su pregunta, sí, generalmente tengo un archivo "Global.css" que define todas mis fuentes y colores para h1-h5, a, p y cualquier otra etiqueta que contenga texto.

Editar:

Por lo general, ya que los proyectos en los que trabajo son bastante gran escala y tienen un número de diferentes módulos, separamos los estilos con una especie de jerarquía; esto tiene sentido por la forma en que funciona CSS: siempre que no modifiques las reglas de estilo establecidas en la "base" (o en nuestro caso, global.css) en algún lugar de la línea, los estilos palo. Esto ayuda porque cuando queremos modificar la fuente de nuestro sitio, simplemente cambiamos la regla de la familia de fuentes en la etiqueta "cuerpo", y se propagará por todo el sitio.

Por lo tanto, nuestro diseño de estilo funciona algo como esto:

Global.css (Fonts/Text/Primary font colors) 
--> genericBase.css (basic page structures such as columns that are used throughout the site) 
--> nav.css (left-hand nav and/or top nav bar) 
--> formLayout.css (labels, inputs, fieldsets, any other form stuff) 
-----> forums.css (individual modules' styles that may deviate a bit from the usual structures, or simply things specific to those pages) 
-----> blogs.css 
-----> messages.css (etc etc etc) 

Las flechas aquí se pretende dar a entender el "orden" de los archivos en la jerarquía. Cuanto más larga es la flecha, más abajo en la hoja de estilo, las reglas que contienen estos archivos serían, si hubiéramos puesto todos los estilos en un solo archivo.

Como ve, la idea es comenzar con estilos muy generales y trabajar hasta llegar a los más específicos. Recuerde que el orden en que cargan sus archivos CSS es importante para el navegador. Puedes usar esto a tu favor. Lo interesante es que, cuando llegamos a los archivos css de nuestros módulos específicos, tenemos muy pocos estilos para escribir porque la mayoría de las otras cosas importantes se han resuelto en el camino.

Así que, como dije, la planificación es de vital importancia. Descubrí que esta metodología hace que sea más fácil "depurar" mis estilos, y casi no utilizo ningún tipo de pirateo, por lo general solo para tonterías ie6.

Avíseme si necesita más información. Me alegra que esto sea útil para ti.

+0

Esto ayuda. ¿Puedes actualizar tu respuesta para incluir algunos otros detalles? como si no entra en global.css, ¿a dónde va? ¿Cuáles son algunas de las convenciones de nombres para archivos? – BuddyJoe

1

que separa mi disposición y estilos de color recientemente, y ahora tengo varios archivos CSS, que importo de la siguiente manera:

<link rel="stylesheet" type="text/css" href="style.css" media="screen" /> 
<link rel="stylesheet" type="text/css" href="style-default.css" title="Default Style" media="screen" /> 
<link rel="alternate stylesheet" type="text/css" href="style-bw.css" title="Black and White" media="screen" /> 

Todo el diseño está en style.css, a continuación, los colores son de estilo predeterminada. css. De esta manera tengo un estilo estándar, pero los usuarios también tienen la opción de cambiar los colores. Esto no solo ofrece opciones para el usuario, sino que facilita los cambios de color sin tocar el diseño (tiendo a cambiar mis colores con mucha más frecuencia).

En Firefox, mis opciones de color aparecen en el menú de visualización en "Estilo de página".

+0

+1 - No había visto esta cosa de "hoja de estilo alternativa" antes. ¿Solo funciona en Firefox? He visto algunos blogs/sitios donde ellos (los desarrolladores) cambian la referencia de la hoja de estilo del servidor para permitir al usuario seleccionar su propio esquema de color. – BuddyJoe

+0

Esto tiene una explicación bastante buena de hojas de estilo alternativas. http://www.alistapart.com/articles/alternate/ – chills42

+0

Hojas de estilo alternativas también funcionan en Opera (sí, no es el navegador más común, pero es el que uso ;-) – Treb

3

Solía ​​separarlos, pero era más difícil de mantener. El problema es que muchas propiedades de "formateo" tendrán un efecto en el diseño y muchas de las propiedades de "diseño" en realidad pueden ser de diseño.

Algunos ejemplos:

Mientras "frontera" pueden ser considerados como un "formateo" propiedad, lo hacen tomar una cierta cantidad de espacio por lo que tendrá que ajustar su diseño al establecer o eliminar las fronteras.

"altura de línea" está relacionado con el tamaño de fuente y se puede considerar una propiedad de "formateo", pero tiene una gran influencia en el tamaño de los elementos y la alineación vertical entre ellos.

Los márgenes y los rellenos a veces se necesitan para el diseño y, en ocasiones, se utilizan solo para formatear.

Si lo piensas bien, hay muy pocas propiedades que en realidad son puramente de formato o puramente de diseño.

A menudo es más fácil simplemente mantener todo en el mismo archivo y tratar de mantenerlo limpio por tener órdenes de sus declaraciones, las propiedades relacionadas agrupan, etc.

1

he caído en el patrón de separación de mi CSS hacia lo siguiente:

  • Layout (cabeceras, pies de página, logotipos - cromo general)
  • tipografía (fuentes, tamaños reutilizables estilos de fuente en línea)
  • Reproductores

La última categoría se compone generalmente de código CSS I re-uso entre los proyectos, y por lo general recibe dividido por sí mismo en:

  • Formas (alineado a la izquierda, alineado a la derecha, estilos para los campos requeridos, etc)
  • Rejillas (2-col, 4-col, etc, etc, etc - alrededor de 20 o menos variedades)
  • hacks (IE/otros hacks CSS)
  • otras cosas (widgets AJAX, barras de herramientas, cajas de comentarios, etc. - Cualquier cosa reutilizable)

Para los colores, solo guardo un archivo de texto de hoja de referencia. Mantenerlos en una hoja de estilos separada probablemente solo funcione si eres muy, muy disciplinado.

1

Empecé a usar clases para manejar los colores específicamente.

.element {margin, padding, cosas layout}

.ourcolor {} #Some de color

Se alarga el atributo de clase sin embargo: clase < div = "elemento ourcolor">

Sin embargo, puedo reutilizar el color: < span class = "ourcolor"> Un poco de texto

Hasta ahora lo prefiero porque ajustar los colores es mucho más fácil.

1

Como Mark W señaló, Creating Sexy Stylesheets es una lectura fantástica. Una cosa que hacen es defensor de la separación de las preocupaciones de estilo a través de un marco:

  • screen.css - Un archivo CSS pantalla puede tener todos los estilos que desea utilizar para la pantalla, y/o puede importar estilos adicionales, como los siguientes:
    • reset.css - Un archivo CSS de restablecimiento se puede utilizar para "restablecer" todo el estilo predeterminado del navegador, lo que puede ayudar a facilitar la compatibilidad entre navegadores.
    • typography.css - Un archivo CSS de tipografía puede definir sus tipos de letra, tamaños, interlineado, interletraje y posiblemente incluso color.
    • grid.css - Un archivo CSS de cuadrícula puede tener su estructura de disposición (y actuar como estructura alámbrica de su sitio, definiendo el encabezado básico, el pie de página y la configuración de la columna).
  • imprimir.css: un archivo CSS de impresión incluiría los estilos que desea utilizar cuando se imprima la página.

Si usted sigue este patrón, los colores se van en su typography.css, y el diseño sería en su grid.css.

+0

Dejé un comentario sobre mi respuesta sobre cómo mi La compañía concatena nuestras hojas de estilo juntas. Le sugiero que realice una práctica similar en sus sitios de producción, ya que cada @import es una solicitud HTTP adicional que puede ralentizar el tiempo de carga de la página. –

+0

+1. Me gustan estas ideas No he comenzado a usar el reset.css todavía. Visto antes. Sin embargo, podría intentarlo en mi próximo proyecto. – BuddyJoe

Cuestiones relacionadas