jueves, 21 de febrero de 2008

CSS: Clases con acento?

Todos los días se descubren cosas nuevas e interesantes. En el tiempo que llevo haciendo código CSS, nunca me había topado con la posibilidad de nombrar a una clase o ID con una palabra acentuada o con eñe. Bueno, tampoco se me ocurrió preguntar, ya que en el mundo de la programación no existen los acentos o las eñes y demás caracteres propios del idioma. El tema es que el otro día revisando código CSS no lograba encontrar un nombre de ID, y habiéndolo reescrito tampoco obedecía a sus nuevos atributos. Nos fijamos entre varios y luego de explorar con el Firebug, nos dimos cuenta que el nombre de la clase... ¡tenía un acento! "Pero, ¿eso se puede?" pensé yo, y me puse a reproducir el supuesto error, que como verán en el ejemplo de abajo, funciona en FireFox y los IE's:


Y a continuación, las líneas de código HTML y CSS donde consta lo que vimos arriba:


Igualmente, el consejo es NO usar estos caracteres especiales para nombrar clases o IDs. Pero por qué? Porque los navegadores interpretan los acentos y eñes y demás como "caracteres especiales" y los convierten en entidades con porcentajes (por ejemplo, un espacio en blanco pasa a ser %20); si se incluyen scripts dentro de la página, ahí se arma el merengue: el script se confunde, lee esa entidad con porcentajes e interpreta que es una instrucción. Incluso me recomendaron no hacer abuso de los guiones medios y bajos. Yo suelo poner nombres simples, pero cuando son más de dos palabras uso la inicial en mayúscula, como por ejemplo div.RecuadroPrincipal ó div.ColumnaMenuIzq. Vale nombrar las clases en el idioma que prefieran, español, inglés, ruso o quechua, pero sin caracteres especiales. Y siempre traten de simplificar y comentar, no olviden que el código que generamos hoy en unos meses será revisado por otro programador o por nosotros mismos; de esta forma nos ahorramos horas de buscar y rebuscar, o que el que lo haga se acuerde mal de nuestra madre.

Y ahora los dejo para seguir generando código, sean felices y la Ñ se la bancaaa!

-·*’°§ PörTeña §°’*·-.
_

No hay comentarios.: