Contenido

Útiles pautas para conseguir un CSS mantenible

19 Nov

+ 16

La gente de Woork ha escrito un interesante artículo en el que nos cuentan unas pautas con las que conseguir un CSS más fácil de mantener. A simple vista son unas pautas lógicas y que con un poco de experiencia consigues aplicarlas y optimizas sustancialmente el tiempo de mantenimiento de tu código.

Intentaré hacer una pequeña traducción de las mias, aportando mi visión del tema.

1) ¿Uno o multiples ficheros?

Muchos son los desarrolladores que usan multiples ficheros CSS para tener el código separado y quizas así consigan un poco más de control sobre el código, por otro lado he visto larguísimos ficheros CSS con miles y miles de líneas para evitar esto, lo que supone otro problema.

@import "file1.css";
@import "file2.css";
@import "file3.css";

Mi opinión? Pues depende mucho del proyecto, la complejidad del mismo y de la optimización que deseemos aplicar a cada una de las páginas. Si estamos desarrollando un theme para Wordpress quizas la opción más apropiada se la de usar un solo CSS ya que este no va a crecer exageradamente, pero si por contra estamos desarrollando una página con una cantidad considerable de secciones/opciones sería conveniente dividir y pensar en optimizar la carga de cada una de las secciones/opciones.

2) Tabla de contenidos, ¿Sirven para algo?

Hace poco más de un año debatimos sobre el tema de los comentarios en el CSS, y la opinión general sobre el tema fué que había que encontrar un término médio y no crear una página CSS con más comentarios que código CSS.

En Woork explican que en alguna ocasión las han usado para los casos en los que se ha usado un único fichero CSS y de esa forma consiguen un poco de claridad del código insertado despues. Por contra en el caso de múltiples ficheros te ves obligado a ir actualizando varios ficheros cada vez que realizas un cambio en la estructura. 

/**
* @style       Standard Layout
* @media       screen
* @version     1.0
* @author      Franky
* @copyright   Franky’s pwn comp-a-ni
* @licensor    da customa
* @layout      in pixels:
*              |            788            |
*              | 10  |      768       | 10 |
*              | 10  | 27 |    741    | 10 |
*/

Mi opinión? El documentar es bueno, hay que documentar nuestro código en medida que sea fácilmente comprensible por una persona ajena a lo que estás haciendo pero nada más. Osea hay que decir lo justo, ni más ni menos, pero hay que decir algo. Usando un sistema jerarquico lógico bastaría para clarificar nuestro código.

3) Crear secciones para agrupar atributos similares

Una técnica que tambien te encuentras mucho por Internet es la de separar en secciones el CSS. Estas separaciones tienen un sentido y es el de agrupar atributos similares. Por ejemplo los que definen el tamaño, posición y aspecto.

#content {
	height:200px;
	width:760px;
	margin:0 auto;

	background-color:red;
	color:#000;
}

Mi opinión? Implica un reciclaje para los que no lo hacen, pero ayuda. El ver a simple vista todos los atributos que hacen un elemento esté en esa posición o tenga ese tamaño es un ahorro de tiempo considerable para futuras actualizaciones del código.

4) Tabular el código

Una técnica que da una calidad estética a los ficheros CSS es el tabular los valores de los atributos frente a los atributos. Esto muestra muy claramente el código de nuestro fichero.

#content {
	height:		    200px;
	width:		    760px;
	margin:		    0 auto;

	background-color:   red;
	color:		    #000;
}

Mi opinión? Pese a no hacerlo nunca, reconozco que más que una mejora visual es una ayuda a la comprensión del código para alguien ajeno a él.

Crea tu propio iGoogle con jQuery

19 Nov

+ 8

Como nos tienen acostumbrados, los chicos de NETTUTS nos enseñan a montar desde 0 nuestra propio iGoogle. Podemos ver el resultado y descargar el código fuente para probarlo y usarlo en nuestras aplicaciones web.

Actualización

He estado haciendo alguna prueba y he montado una pequeña función en jQuery para crear widgets dinámicamente desde nuestras aplicaciones.

function insertWidget(where, opt) {
    var selectorOld = iNettuts.settings.widgetSelector;
    iNettuts.settings.widgetSelector = '.new';
    salida = '<li class="new widget color-'+opt.color+'"><div class="widget-head"><h3>'+opt.title+'</h3></div><div class="widget-content"><p>'+opt.content+'</p></div></li>';
    $(where).append(salida);
    iNettuts.addWidgetControls();
    iNettuts.makeSortable();
    iNettuts.settings.widgetSelector = selectorOld;
}
//Ejemplo 
insertWidget("#column1", {
    color: "blue",
    title: "Prueba",
    content: "ESTO ES UNA PRUEBA"
});

Emastic beta3, framework CSS

13 Nov

+ 1

Emastic es un framework CSS con el que podremos facilitarnos el trabajo a la hora de maquetar nuestras aplicaciones web. Actualmente está en fase beta (concretamente la 3) y ya podemos ver las maravillas que con él podemos hacer.[ % ejemplo / absolute ejemplo]

12 principios para mantener tu código limpio

13 Nov

+ 17

Durante la evolución de un proyecto tendemos, sin darnos cuenta, a ensuciar nuestro código. Ya sea aplicando parches a los fallos encontrados o añadiendo nuevas funcionalidades no pensadas previamente. Por ese motivo conocer algunos principios básicos nos pueden ayudar a crear un código que se mantenga en el tiempo igual que el primer día.

1) Doctype STRICT

Si ya tienes algo de soltura deberías apostar por STRICT para definir en el doctype de tu web. De esta forma estarás asegurándote un poco más de tiempo con un doctype válido.

2) Cuidado con el carácter & (&amp;) y demás carácteres especiales

Los carácteres especiales en el texto deben ir siempre codificados según el estandard, así conseguimos que nuestro código sea limpio y evitamos producir errores innecesarios y fáciles de solventar en el validador de la W3C.

3) Indentación, Indentación … indentación

Por encima de la eficiencia del código, la mayoría de proyectos deben ser claros y fáciles de interpretar por cualquiera. Piensa que no sabes si dentro de 3 meses o 5 años, vas a tener que volver a tocar el código. Así que dedícate un tiempo para indentar el código y dejarlo claro.

4) Separa el contenido de la funcionalidad y el diseño

No me cansaré de decir que la separación de capas es algo primordial, al igual que la identación ayuda a la comprensión del código, la separación de las diferentes capas ayuda a conocer donde está ubicada cada parte de la web. Sin contar que conseguir idependizarlas, lo que nos permite modificar cualquiera de ellas afectando a las demás sin necesidad de modificar las demás.

5) Usa los tags correctamente

Conocer las propiedades de los tags HTML permitirá que hagamos un código más semántico y sobretodo estandar. Es importante usar los tags correctamente ya que aunque el navegador permita mostrar el contenido como nosotros queremos mostrarlo, la estructura correcta nos ayudaría en terminos de SEO…

6) Elimina elementos innecesarios

Por desgracia al pasar del diseño en tablas al diseño con divs, podemos caer en una etapa de “divitis” que nos hace usar div’s para todo. No debemos usar elementos innecesarios para conseguir lo mismo que conseguiríamos con menos elementos. Este punto hace refecia directa al punto 5.

7) Piensa bien los nombres que usas

En muchos casos tendemos a usar nombres poco descriptivos a demasiado descriptivos. Este ejemplo muestra ua muestra clara de lo que quiero decir:

cleancode-7

8 ) Deja la tipografía a los CSS

Debemos pensar que el diseño lo controla el CSS, y por ello todo lo relacionado con él debe ir reflejado en los ficheros CSS. Por ejemplo, el texto en mayusculas podemos solventarlo con text-transform: uppercase;

9) Class/ID en el <body />

Una forma de conseguir mayor flexibilidad en nuestros CSS es usar id/class en nuestros elementos <body />. De esta forma podemos variar el diseño de ciertos elementos dependiendo dle tipo de body que especifiquemos.

10) Validación

La validación de nuestro código es más que poner un icono en la parte inferior. La validación nos ayuda a completar unos aspectos básicos que los diseños web deben cumplir. No implica que un desarrollo esté mejor o peor hecho, sinó que nos ayuda a conguir un mínimo imprescindible para diferenciarnos del código generado por un programa (Frontpage,…).

11) Aplícale lógica a la estructura

Hemos de pensar que el código se ha de leer de arriba hacia abajo y que siguiendo esta premisa debemos generar una estructura colocando elementos seguidos unos a otros de una forma lógica. Hemos de pensar 2 veces si colocamos un elemento en esa posición o lo ponemos en otra.

cleancode-11

12) Haz lo que puedas

El esfuerzo se nota y aunque no sea a la primera, ni a la segunda, llega un momento en el que ese esfuerzo se acaba recompensando. Simplemente hemos de ser pacientes y esperar a que ese momento llegue.

Drawter, programa páginas web con el ratón

10 Nov

+ 9

Drawter es una de esas aplicaciones curiosas que van saliendo cada X tiempo para mostrarnos una forma alternativa y cómoda de crear estructuras HTML para nuestras páginas web. Con Drawter, podemos crear estructuras HTML basadas en recuadros que compondrán la página que al final codificaremos.

drawter

Mediante el uso del ratón vamos creando las secciones de la página web y le vamos dando nombre a cada uno de ellos, especificando ciertos parámetros CSS que la aplicación nos deja modificar. Una vez creada la estructura podremos obtener el código CSS y HTML necesario para conseguir esa estructura

BlueTripCSS, lo mejor de los CSS frameworks en uno

10 Nov

+ 0

BlueTripCSS es un framework CSS que recoge las mejores ideas e implementaciones de los frameworks CSS más importantes y reconocidos. La idea era compactar todas estas grandes ideas dispersas en varios frameworks y crear uno con lo mejorcito de cada uno de ellos. A simple vista, parece que lo han conseguido, pero habrá que ponerle las manos encima para verificarlo.

CSS Clock, experimento CSS/JS

6 Nov

+ 3

En Sohtanaka han hecho un experimento con CSS y Javascript que como resultado nos ofrece un curioso reloj CSS que vale la pena observar.

CSS en la vida real gracias a Flickr

24 Oct

+ 11

CSS es más que un lenguaje de programaciónmarcado enfocado en la maquetación web, es una forma de traer al mundo web aspectos gráficos de la vida cotidiana, y gracias a imagenes de Flickr la gente de Webstandard ha recopilado una serie de ejemplos de algunas de sus propiedades.

Max-width

css-max-width

Visibility (hidden)

css-visibility

Ver más

Tecnicas experimentales e innovadoras con CSS

24 Oct

+ 4

SixRevisions ha recopilado un listado de nuevas técnicas CSS realmente innovadoras que nos muestran ejemplos de lo que la imaginación aliada a este lenguaje de maquetación puede llegar.

  1. Transparent CSS Menu Drop-down
  2. Return of the image maps
  3. CSS 3D puzzle
  4. CSS scrolling image map
  5. CSS Decorative Gallery
  6. Playing Cards with CSS
  7. Homer CSS
  8. CSS House
  9. “Secret Message” with CSS Positioning and Transparency
  10. How to create light-weight drop shadows
  11. Multi-position shadow boxing
  12. Complexspiral
  13. DVD Recorder Remote
  14. Drawing the line
  15. CSS Text Shadows
  16. CSS Flashy Links
  17. Map Pop
  18. Pure CSS Popups
  19. CSS Sticky Footer
  20. Scalable Star
  21. CSS: Menu Descriptions
  22. CSS Gradients Demo
  23. Scaled Background Image
  24. CSS Vertical Bar Graphs
  25. CSS Gradient Text Effect

CSSHttpRequest, ajax cross-domain con CSS

24 Oct

+ 3

El Ajax entre diferentes dominios es algo que veremos dentro de unos meses en las nuevas versiones de los navegadores actuales. Mientras tanto los desarrolladores están dando soluciones a esta necesidad y ahora, usando la manipulación del CSS desde Javascript solventan el problema

CSSHttpRequest.get(
        "http://www.nb.io/hacks/csshttprequest/hello-world/",
        function(response) { alert(response); }
    );

Si revisamos el código, vemos la magia de esta técnica:

var s = chr.getStyleSheet();

    // IE
    if(s.addImport) {
        index = s.addImport(url);
        item = s.imports(index);
    }

    // W3C
    else if(s.insertRule) {
        index = s.insertRule("@import url(" + url + ");", 0);
        item = s.cssRules[index];
    }

Me encanta ver como la necesidad despierta estas maravillas entre los desarrolladores.