Alejandra Lunes, 5 de Mayo de 2008 a las 16.00
   Imprimir artículo
elWebmaster.com

Mejorando la lectura de c贸digo CSS

CSS Cascade Style Sheet - Hojas de Estilo en CascadaUna vez que terminaste tu 煤ltimo proyecto es muy probable que olvides la estructura, sus numerosas clases, combinaciones de colores y estilos tipogr谩ficos. Para entender el c贸digo a帽os despu茅s de haberlo escrito necesitas crear una estructura de c贸digo sensible.

La estructura de c贸digo sensible reducir谩 dram谩ticamente la complejidad, mejorar谩 el manejo del c贸digo y simplificar谩 su mantenimiento 驴C贸mo puedes lograr una estructura sensible? Aqu铆 te ofrecemos 5 t茅cnicas para que tu c贸digo se vea bien.

Hay varias opciones para crear una estructura sensible y una de ellas es comentar. Los desarrolladores han ideado formas muy creativas de usar comentarios para mejorar la lectura y el mantenimiento de c贸digo CSS. Este tipo de comentarios se combinan generalmente con gu铆as de estilo CSS, partes de c贸digo CSS que se supone dar谩n a los desarrolladores algunas claves para el entendimiento de la estructura del c贸digo e informaci贸n de fondo relacionada con 茅l.

Este art铆culo presenta 5 t茅cnicas de codificaci贸n que pueden mejorar mucho el manejo y simplicar el mantenimiento de tu c贸digo. Puedes aplicarlas a CSS, otras hojas de estilo o cualquier lenguaje de programaci贸n que uses:

1. Divide y conquista tu c贸digo

Primero ten en cuenta la estructura e identifica los m贸dulos m谩s importantes de tu c贸digo CSS. En la mayor铆a de los casos es 煤til seleccionar el orden de los selectores CSS dependiendo del orden de los divisores (div鈥檚) y las clases. Antes de empezar a escribir el c贸digo, agrupa elementos comunes en secciones separadas y nombra cada grupo con un t铆tulo. Por ejemplo, puedes seleccionar Estilo Globales (body, p谩rrafos, listados, etc.), Layout, Cabeceras, Estilos de Texto, Navegaci贸n, Formularios, Comentarios y Extras.

Para separar los fragmentos de c贸digo claramente, utiliza banderas o comentarios apropiados (cuantos m谩s s铆mbolos *- tengas en tu c贸digo, m谩s destacado ser谩 el encabezado). En la hoja de estilos servir谩n como un encabezado para cada grupo. Antes de aplicar una bandera a tu c贸digo, aseg煤rate de que puedes reconocer los bloques individuales de inmediato al escanear el c贸digo. De esta manera sabr谩s si este recurso sirve o no.

Sin embargo, esto puede no ser suficiente para grandes proyectos cuando un m贸dulo solo es muy largo. Si este es el caso, es probable que necesites dividir el c贸digo en archivos m煤ltiples para mantener una visi贸n general de grupos individuales de fragmentos de c贸digo. En estas situaciones las hojas de estilo maestras son usadas para importar grupos. Al usar hojas de estilo maestras generar谩s consultas innecesarias al servidor, pero producir谩s un c贸digo limpio y elegante muy f谩cil de reutilizar, f谩cil de entender y f谩cil de mantener. Y s贸lo necesitas incluir la hoja de estilo maestra en tus documentos.

/*-------------------------------[Master Stylesheet]
Project:	Smashing Magazine

Version:	1.1

Last change:	05/02/08 [fixed Float bug, vf]

Assigned to:	Vitaly Friedman (vf), Sven Lennartz (sl)

Primary use:	Magazine

-------------------------------------------------------------------*/

@import "reset.css";

@import "layout.css";

@import "colors.css";

@import "typography.css";

@import "flash.css";

/* @import "debugging.css"; */

Para proyectos importantes o grandes equipos de desarrollo tambi茅n es bueno tener un breve registro de actualizaciones y alguna informaci贸n adicional sobre el proyecto. Por ejemplo, puedes agregar informaci贸n de a qui茅n le ha sido asignado este archivo CSS y cu谩l es su uso principal.

2. Define una tabla de contenidos

Para tener una visi贸n general de la estructura del c贸digo podr铆as considerar definir una tabla de contenidos al principio de tu archivo CSS. Una posibilidad de integrar la tabla de contenidos es mostrar una visi贸n de 谩rbol de tu diagramaci贸n, con los IDs y clases en cada rama del 谩rbol. Seguramente usar谩s palabras clave como 鈥渆ncabezado de secci贸n鈥 o 鈥済rupo de contenido鈥 para poder ir a un c贸digo espec铆fico r谩pidamente.

Tambi茅n seleccionar谩s algunos elementos que vayas a cambiar con frecuencia cuando el proyecto se haya terminado. Estas clases y IDs podr铆an aparecer tambi茅n en tu tabla de contenidos para que las encuentres f谩cilmente cuando sea necesario sin necesidad de escanear todo el c贸digo o recordar cu谩les fueron las clases y IDs que hab铆as usado.

    /*----------------------[Layout]* body+ Header / #header

+ Content / #content

- Left column / #leftcolumn

- Right column / #rightcolumn

- Sidebar / #sidebar

- RSS / #rss

- Search / #search

- Boxes / .box

- Sideblog / #sideblog

+ Footer / #footer

Navigation	  #navbar

Advertisements	  .ads

Content header	  h2

鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺-*/

..o algo as铆:

/*------------------------------------------------------------------

[Table of contents]1. Body

 2. Header / #header

 	2.1. Navigation / #navbar

 3. Content / #content

 	3.1. Left column / #leftcolumn

 	3.2. Right column / #rightcolumn

 	3.3. Sidebar / #sidebar

 		3.3.1. RSS / #rss

 		3.3.2. Search / #search

 		3.3.3. Boxes / .box

 		3.3.4. Sideblog / #sideblog

 		3.3.5. Advertisements / .ads

 4. Footer / #footer

-------------------------------------------------------------------*/

Otra posibilidad es usar numeraci贸n simple sin indentaci贸n. En el ejemplo de abajo, una vez que necesites saltar a la secci贸n RSS, s贸lo deber谩s usar la herramienta de b煤squeda para encontrar en tu c贸digo 8. RSS. Es f谩cil, r谩pido y efectivo.

    /*------------------------------------------------------------------

[Table of contents]1. Body

2. Header / #header

3. Navigation / #navbar

4. Content / #content

5. Left column / #leftcolumn

6. Right column / #rightcolumn

7. Sidebar / #sidebar

8. RSS / #rss

9. Search / #search

10. Boxes / .box

11. Sideblog / #sideblog

12. Advertisements / .ads

13. Footer / #footer

-------------------------------------------------------------------*/

<!-- some CSS-code -->

    /*------------------------------------------------------------------

[8. RSS / #rss]

*/

#rss { ... }

#rss img { ... }

Definir una tabla de contenidos permite a otras personas una lectura y entendimiento mucho mayor de tu c贸digo. Para grandes proyectos podr谩s incluso imprimir la tabla y tenerla a mano para leer el c贸digo. Cuando trabajas en equipo no deber铆as subestimar esta ventaja.

3. Define tus colores y tipograf铆a

Como todav铆a no trabajamos con constantes CSS necesitamos darnos cuenta r谩pido de cu谩les son las 鈥渧ariables鈥 que estamos usando. En desarrollo web, los colores y la tipograf铆a son considerados muchas veces como 鈥渃onstantes鈥, valores que se repiten muchas veces a lo largo del c贸digo.

Como alguna vez declar贸 Rachel Andrew, 鈥渦na forma de manejar la falta de constantes en archivos CSS es crear algunas definiciones al inicio del documento a trav茅s de comentarios, para definir esas 鈥渃onstantes鈥. Una forma com煤n de hacerlo es crear un glosario de color. Esto significa que tendr谩s una breve referencia de los colores utilizados en el sitio para evitar usar colores alternativos por error y, si necesitas cambiar los colores, todo estar谩 a mano para hacer los reemplazos que necesites.鈥

    /*------------------------------------------------------------------

# [Color codes]# Dark grey (text): #333333

# Dark Blue (headings, links) #000066

# Mid Blue (header) #333399

# Light blue (top navigation) #CCCCFF

# Mid grey: #666666

# */

De manera alternativa puedes describir estos colores. Para un color determinado, podr谩s mostrar las secciones de ese sitio que usan esos colores. O viceversa, para una secci贸n determinada puedes describir los elementos de dise帽o y color que se usan鈥

    /*------------------------------------------------------------------

[Color codes]Background:	#ffffff (white)

Content:	#1e1e1e (light black)

Header h1:	#9caa3b (green)

Header h2:	#ee4117 (red)

Footer:		#b5cede (dark black)

a (standard):	#0040b6 (dark blue)

a (visited):	#5999de (light blue)

a (active):	#cc0000 (pink)

-------------------------------------------------------------------*/

Lo mismo con la tipograf铆a. Agrega notas para entender el 鈥渟istema鈥 detr谩s de las definiciones.

    /*-------------------------------------------------------

[Typography]Body copy:	1.2em/1.6em Verdana, Helvetica, Arial, Geneva,
sans-serif;

Headers:		2.7em/1.3em Helvetica, Arial, "Lucida Sans Unicode",
Verdana, sans-serif;

Input, textarea:	1.1em Helvetica, Verdana, Geneva, Arial, sans-serif;

Sidebar heading:	1.5em Helvetica, Trebuchet MS, Arial, sans-serif;

Notes:	decreasing heading by 0.4em with every subsequent heading level

-------------------------------------------------------------------*/

4. Ordena las propiedades CSS

Cuando escribes c贸digo a veces es 煤til aplicar cierto tipo de formateo para ordenar las propiedades CSS, para hacer que el c贸digo sea m谩s legible, m谩s estructurado y m谩s intuitivo. Algunos desarrolladores tienden a poner los colores y fuentes primero, otros prefieren poner primero las asignaciones 鈥渕谩s importantes鈥 como las relacionadas con la posici贸n. Con esta misma idea, los elementos tambi茅n se ubican seg煤n la tipolog铆a de un sitio y la estructura de su diagramaci贸n. Y esto puede aplicarse tambi茅n a los selectores CSS:

        body,

 h1, h2, h3,

 p, ul, li,

 form {

 	border: 0;

 	margin: 0;

 	padding: 0;

 }

Algunos desarrolladores usan algo muy interesante: agrupan propiedades en orden alfab茅tico.

body {

 background: #fdfdfd;

 color: #333;

 font-size: 1em;

 line-height: 1.4;

 margin: 0;

 padding: 0;

}

No importa el formato de agrupaci贸n que uses, aseg煤rate de definir claramente el formato y el objetivo que quieres alcanzar. Tus colegas agradecer谩n tu esfuerzo. Y t煤 estar谩s agradecido de que mantengan tu formato.

5. 隆La indentaci贸n es tu amiga!

Para una mejor vista general de tu c贸digo es bueno que consideres el uso de las l铆neas para peque帽os fragmentos de c贸digo. Este tipo de estilo puede producir resultados desordenados cuando defines m谩s de 3 atributos para un selector dado. De todos modos, usado con moderaci贸n, puedes hacer resaltar la relaci贸n entre los elementos de una misma clase. Esta t茅cnica mejorar谩 la legibilidad de tu c贸digo cuando debes buscar un elemento espec铆fico en tu hoja de estilos.

#main-column { display: inline; float: left; width: 30em; }

 	#main-column h1 { font-family: Georgia, "Times New Roman", Times,
serif;
margin-bottom: 20px; }

 	#main-column p { color: #333; }

Cuando recuerdas exactamente lo que has hecho, podr谩s arreglarlo f谩cilmente. 驴Pero qu茅 sucede cuando has hecho muchos cambios en un d铆a y no puedes acordar exactamente qu茅? Chris Coyier sugiere una soluci贸n interesante para resaltar cambios recientes en tu c贸digo CSS. Simplemente indentando las l铆neas nuevas o modificadas. Tambi茅n puedes usar comentarios.

#sidebar ul li a {

     display: block;

     background-color: #ccc;

          border-bottom: 1px solid #999; /* @new */

     margin: 3px 0 3px 0;

          padding: 3px; /* @new */

}

Conclusi贸n

Las hojas de estilo CSS son de gran ayuda siempre y cuando se usen bien. Ten en mente la posibilidad de eliminar cualquier hoja de estilo que no te ayude a mejorar el entendimiento del c贸digo o que no tenga una buena estructura. Evita muchas hojas de estilo para muchos elementos. Tu meta es lograr un c贸digo legible y f谩cil de mantener. Ap茅gate a 茅l y te ahorrar谩s muchos problemas.

Fuente: Smashing Magazine

Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (1)

  1. Juanu dice:

    Ustedes son unos grosos me parece :)

Deja tu opinión