Cómo estructurar una hoja de estilos
El propósito de este artículo es mostrar cómo estructurar de una forma sencilla y ordenada nuestras Hojas de Estilo (CSS).
Las Hojas de Estilo en Cascada (CSS) son el recubrimiento gráfico de tu documento HTML. Cuando estamos creando una web tenemos presentes en todo momento tanto la estructura de nuestro código HTML como del propio CSS.
Y sabemos siempre en qué línea del archivo buscar la información que necesitamos para modificar nuestros selectores y clases.
Pero cuando ha pasado un tiempo desde que terminamos el desarrollo de este código, y deseamos retomarlo porque queremos rediseñarlo partiendo del CSS ya escrito, o simplemente porque queremos hacer algunos ajustes, seguramente no nos acordaremos de la mitad de la información que antes teníamos tan clara.
Por ésto es esencial haber estructurado y documentado mínimamente nuestra Hoja de Estilo desde un principio para evitar estos sobresaltos posteriores.Como todo, las orientaciones que dejo escritas no son más que eso: orientaciones.
Deberás buscar para tus Hojas de Estilo la estructura que mejor se adapte a tu forma de escribir el código y te sea más fácil de manejar. No obstante, este podría ser un buen punto de partida.
Partiendo el código: CSS únicos y múltiples
Nuestra primera pregunta deberá ser necesariamente si deseamos trabajar con un solo archivo CSS que contenga toda la información o si por el contrario queremos dividirla por cualquier motivo (comodidad a la hora de localizar los estilos, coexistencia de diseñadores o programadores que se encargan exclusivamente de una parte del código, etc.).
Ya que ésto va a condicionar nuestros pasos siguientes.
Para el primero de los casos, esto es, un CSS único, nuestro archivo podría tomar el nombre, por ejemplo de estilos.css.
En realidad, para un CSS único, ésto no tiene excesiva importancia.
Pero si por el contrario vamos a manejar varios archivos, es muy recomendable que el nombre que le demos sea descriptivo del contenido, y que a todos los ‘unamos’ en otro único archivo, a fin de realizar una única llamada desde nuestro HTML.
También podríamos hacer sucesivas llamadas desde nuestro HTML, pero con el sistema que yo propongo, nunca modificaríamos nuestro HTML, sino únicamente un archivo CSS que contendrá un listado de las hojas de estilo que van a ser llamadas cada vez.
Veámoslo con un ejemplo:
Hemos decidido dividir nuestro CSS en tres partes, a saber, maquetación, formularios y colores.
Lo que haremos en primer lugar será crear un archivo al que llamaremos estilos.css. Este archivo importará las diferentes partes de nuestro CSS.
Por otro lado, y separadamente, crearemos tres archivos que contengan cada una de las partes en que hemos decidido dividir nuestro estilo, es decir, maquetacion.css, formularios.css y colores.css. Así pues, el contenido del archivo estilos.css será éste:
@import "maquetacion.css"; @import "formularios.css"; @import "colores.css";
Así, con una sola llamada desde nuestro HTML al CSS raíz (estilos.css), obtendremos la inclusión de todas las partes que forman nuestra hoja de estilos, y para añadir nuevas o eliminar las que hayan caído en desuso sólo tenemos que modificar estilos.css sin preocuparnos de nada más.
Información sobre el contenido: uso de comentarios
Como primer paso para una estructuración sensata de nuestro CSS, hemos aprendido ya a separar los estilos en varios archivos (si fuera necesario), y a llamarlos todos desde uno solo.
Ahora bien, aunque los nombres sean muy descriptivos cuando los veamos en una lista de archivos, a la hora de editarlos es frecuente que los abramos todos a la vez, y a los diez minutos de estar cambiando constantemente de uno a otro, es probable que lleguemos a desorientarnos y no saber muy bien cuál estamos modificando.
Por eso, mi segunda recomendación es iniciar cada archivo dejando escrito un comentario que nos ubique. Como apuntaba al principio, documentar mínimamente nuestro CSS va a ser de gran ayuda a la hora de realizar tareas sobre él con posterioridad.
Pero esta documentación no la haremos sólo sobre el inicio del código, sino que la iremos extendiendo a las diferentes partes, como veremos después.
La forma en que escribimos un comentario en CSS es iniciándolo con /* y finalizándolo con */ .Por ejemplo, /* Comentario a la hoja de estilos */.
De este modo, y retomando estilos.css, mi sugerencia es dejar un par de líneas nada más iniciar el archivo que describan el proyecto, la autoría, la licencia de uso en su caso, y el contenido del mismo, tal que así:
/* * CSS para el sitio www.misitio.com * Importación de las distintas hojas de estilo * Autor: Pepito Pérez */ @import "maquetacion.css"; @import "formularios.css"; @import "colores.css";
En los demás archivos, dejaríamos una indicación parecida a ésta:
/* * CSS para el sitio www.misitio.com * MAQUETACIÓN >> Estructura del sitio (encabezado, cuerpo, columna(s) y pie) * Autor: Pepito Pérez */
Seccionando el contenido de nuestra hoja
Independientemente del hecho de haber dividido nuestro estilo en varios archivos o no, mi tercera recomendación pasa por separar físicamente los diferentes estilos que van a formar nuestra hoja mediante el uso de comentarios.
De una manera bastante básica, y pensando en una página con una estructura de encabezado, contenido, barra lateral y pie, y un solo archivo css, podríamos dividir nuestra hoja en algunas secciones que englobarían varios estilos. Me atrevo a apuntar siete:
- Elementos Comunes
- Estructura
- Encabezado
- Contenido
- Barra Lateral
- Pie
- Formularios
En cada una de ella incluiremos la información relativa a la misma.
En ‘Elementos Comunes’ definiríamos selectores, encabezados, pseudo-selectores, pseudo-clases, pseudo-elementos, pequeños “fixes”, comportamiento en los enlaces y en definitiva, todo aquello que queremos que se aplique por igual a nuestro HTML.
En ‘Estructura’ daríamos forma a las diferentes partes que van a formar nuestra web, esto es, determinaríamos las dimensiones y ubicación de nuestro encabezado, pie, barra lateral, etc.
En las demás secciones escribiríamos el diseño específico de cada selector que se aplique exclusivamente a cada una de ellas.
Como podéis ver hemos intentado ir de lo más general a lo más específico.
Comentar, comentar, comentar. Estructura y nominación
No, no es una obsesión. Comentar el código es la base de todo ésto. Debemos tomarnos la molestia de comentar cada paso que demos al escribir nuestro css.
Por ejemplo, antes de comenzar una sección nueva, indiquémosla. Por ejemplo:
/**************************************** * ELEMENTOS COMUNES * body, a, h1, h2, h3, h4, h5, img, div *****************************************/
/***************************************************** * ESTRUCTURA * #header, #content, #sidebar1, #sidebar2, #footer ******************************************************/
Pero no sólo debemos comentar la estructura. Debemos comentar también los elementos que van a formar nuestra hoja, siempre que puedan llevarnos a una duda posterior, a fin de evitar esto.
Por ejemplo:
#contenedor{ width: 780px; margin: auto; /*Esta propiedad deja el id centrado en la pantalla. */ }
Pero también:
a, a:link, a:active, a:visited{ color: #004080; /* Azul Oscuro paraen los enlaces */ text-decoration none; /*El enlace no aparecerá subrayado */ } a:hover{ color: #0066cc /* Azul Claro al pasar el ratón por encima de los enlaces*/ text-decoration: underline; /* Subrayado del enlace al pasar el ratón */ }
Un buen consejo para ésto comienza no en nuestro CSS sino en nuestro HTML. Cuando demos nombre a nuestras clases (class) e identificadores (id), debemos tratar de ser lo más descriptivos posible.
Por ejemplo, no debemos llamar a una clase .verdegrande sólo porque su formato inicial vaya a ser color verde y tipografía con tamaño grande, porque si posteriormente deseamos que la clase no sea verde sino roja, además de perder todo sentido, es posible que nos cueste buscarla en el código por una simple cuestión de asociación mental.
Lo recomendable, por ejemplo, es aludir a su función para nominar, esto es, .copyright, o .comentario, o .datos.
Claridad o ligereza. Pros y contras
Como cuestión final me gustaría poner en una balanza, aun cuando brevemente, la cuestión de la claridad versus la ligereza en la Hoja de Estilos. Muchas veces encontraremos opiniones enfrentadas acerca de la conveniencia o no de la agrupación de selectores, el uso de herencias, la minimización de redundancias, la eliminación de comentarios.
El objetivo de todas estas técnicas es hacer más ligeras (disminuir el tamaño) las hojas de estilo, porque supone una ralentización en los tiempos de carga de la página. Mi opinión a este respecto es simple: dependerá de dos factores, a saber, la complejidad del diseño y las expectativas de modificación posterior .
Si mi diseño tiene un CSS de 500 líneas, o preveo tener que modificarlo muy a la larga, yo prefiero que el archivo sea comprensible y manejable, aun a costa de que resulte unos cuantos kb más pesado. Pero para gustos, colores. Debes ser tú quien, ante cada caso concreto, decida qué es lo más conveniente, claridad o ligereza.
Excelente artículo, no sabía que se pudían incluir archivos.
Gracias y barbaro.
Sin duda muy buenos consejos para organizar tus CSS.
El tema de los comentarios es importantísimo aquí y en cualquier otro código que estes trabajando.
Y con respecto a los nombres de los archivos, si acaso los incluyes en tu carpeta principal recomendaría ponerles algún prefijo similar para que se mantengan juntos.
estilo-encabezado.css
estilo-pie.css
estilo-principal.css
También y aunque no lo mencione en el artículo, cabría incluir todos nuestros archivos .css en un directorio y hacer llamadas de la misma forma que expuse anteriormente.
// http://www.excesomedia.com //
excelente articulo Raul
Excelente articulo que me saca de unas cuantas dudas, sobre todo en eso de usar 1 o mas hojas de estilos, pero que tan fieble puede ser importar los estilos, funciona con todos los navegadores ???
Me gusta el articulo, yo no se mucho sobre estas cosas pero me parece interesante; nunca lo he trabajado, voy a tratar de hacerlo, he aprendido algo nuevo gracias Raul.
// http://carlrob.wordpress.com //
Muy buenas recomendaciones, es cierto que comentar las líneas es muy buena idea, pero tampoco hay que obsecionarse demasiado y evitar colocar comentarios en partes donde es demaciado obvio la explicación
/* incialización a cero del acumulador XYZ*/
XYX = 0;
Lo que yo hago muy frecuente es a parte de colocar comentarios a casi todo (sin obseción) es ser muy breve en la explicación “directo al punto”; eso evita el tener un archivo muy grande (en Kb) y menos cansante al escribirlo.
Atentamente,
Ken Torrealba
El Callao – Venezuela
Me parece una exelente forma de trabajar. Vaya explicación, muy pero muy buena, felicitaciones!…
Muy bueno tomare en cuenta lo que lei aqui
Creo que lo mejor es ponerle nombres descriptivos a las clases, donde se pueda, para no poner descripciones tan largas como en el ejemplo, y una sola descripción por clase no a cada propiedad del estilo.
Hola! estoy comenzando a trabajar bajo el ambiente dreamweaver, diseñe una pagina informativa de una escuela, y ahora me piden una consulta de boletas de calificaciones, el problema es que desconosco como asignarles el usuario y pasword y de esta manera entren a checar sus califas. consegui información referente al tema pero no es sufuciente, en esa información se menciona la creación de hojas de estilo. me puedes ayudar?
Disculpen mi intromisión, no soy experto en programación, pero estoy tratando de elaborar una página web en geocities, y tengo un problema que agradecería que me resolvieran. La página que estoy elaborando (por cierto es de mi equipo favorito de fútbol), la diseñe en Front Page, pero cuando la subo a la red el tema del sitio (el fondo, los botones y las barras de exploración) no se visualizan en el explorador, agradecería mucho si alguno de ustedes me puede ayudar a solucionar este problema o me puede decir donde buscar soluciones.
Siempre puedes tener una version del archivo CSS en desarrollo y otro de publicación final pasada por cleancss.com
Lo del cleancss yo lo desaconsejo. Pero bueno, es otra opción a tener presente.
muy bueno esto che! te felicito flaco!
Muy bueno el articulo. ¡¡Te felicito!!
Por cierto joel ruva mira las direcciones de las imagenes por si te estan apuntando a tu PC, cambialo por una ruta relativa. 😉
Excelente articulo 😀
Me parece muy bueno que compartas tus conocimientos
Muy bueno te felicito
9 su 10! Ottenerlo! Siete buoni!
Justo lo que andaba buscando, muchas gracias por compartirlo
Saludos 😉
Sí, como la mayoría de los artículos
Gracias por el aporte.. la verdad muy bueno.
Bueno solo quiero decir que son muy buenos los consejos que dejas…suerte.
Hola! necesito de su ayuda urgentemente, pues estoy creando un manual de usuario en html con css, y tengo un pequeño gran problema los enlaces no me los muestra con el subrayado y estoy intentando hacerlo y no lo he logrado aun.
Ayúdenme por favor!!!
Además de lo planteado anteriormente necesito crear un css para el encabezado y pie de pagina y tampoco me lo muestra.
Hola! soy yo de nuevo ya solucione mi pequeño gran problema con los link´s, aquí les escribo cual era la etiqueta que me estaba causando el problema:
“3.1 Nomenclatura”
yo la redifini en mi css y por tal motivo no es compatible con el link y me estaba ocultando el subrayado de los hipervinculos
Hola! soy yo de nuevo ya solucione mi pequeño gran problema con los link´s, aquí les escribo cual era la etiqueta que me estaba causando el problema:
3.1 Nomenclatura"
yo la redifini en mi css y por tal motivo no es compatible con el link y me estaba ocultando el subrayado de los hipervinculos
Excelente articulo, muy bueno!!