Corregir bugs de CSS
Carlos — Mar, 12/08/2008 - 18:02
Si eres diseñador web o más concretamente maquetador web habrás tenido que lidiar con un buen montón de errores (o bugs) de CSS que te habrán costado un buen rato solucionarlos. A veces (muchas) es por nuestra culpa, normalmente por un error tonto, otras por que lo que queremos hacer se ha de enfocar de otra manera y algunas veces pero las más frustrantes por un bug de un navegador (normalmente IE).
Estas son algunas pautas que uso para poder solucionar más rápidamente estas cosas:
- Maquetar primero con un navegador con buen soporte de estándares, por ejemplo Firefox
- Usar Firebug. Firebug te permite saber la posición que ocupa un elemento, su tamaño, margen, padding, etc y te dice exactamente las propiedades de css que tiene. Además puedes variarlas o desactivarlas directamente sin tener que actualizar. Otro buen plugin es el webdeveloper pero Firebug es mucho más potente. Para IE existe un addon que puede ayudar un poco pero no es para nada similar. También puedes usar Firebug en otros navegadores insertándolo cómo un fichero javascript.
- Asegúrate de que estás modificando atributos de la etiqueta que quieres: Es algo muy obvio pero a veces no funciona lo que estamos buscando simplemente por que no se lo estamos poniendo al sitio adecuado. Además de mirarlo con firebug (y mirar si ese elemento tiene las propiedades adecuadas) también puedes hacer algo muy fácil: añadir una propiedad fácil de ver como un font-size: 3em o un background red. Si hacemos eso y no vemos ningún cambio es que no estamos aplicando las propiedades sobre el elemento deseado. Tal vez esté mal escrito o sea una clase en lugar de un id (o viceversa). Si todo está bien podría ser que la propiedad esté perdiendo frente a otra (siguiente punto)
- CSS wars: Hay definiciones de propiedades que tienen preferencia a otras. Por ejemplo, si defines una propiedad y luego la vuelves a definir tiene preferencia la última. Si le añades !important al final a la primera tendrá preferencia esta. Puedes ver un bonito y divertido PDF sobre esto.
- Cache: Comprueba que el css que está usando tu navegador es el último que has subido, podrías estar mirando la cache. Para que no use la cache y recargue el último css en Firefox has de utilizar shift+F5 y en IE control+F5. Para asegurarte con Firebug puedes ver el css que se está usando, comprueba que los últimos cambios estén ahí.
- El dominio correcto: Tenemos que comprobar que realmente estemos en la web correcta. A veces tenemos la web en local, la web de desarrollo en el servidor y la web final. Es obvio pero a veces me ha pasado tener en el navegador un dominio diferente a la que estoy realmente modificando.
- Comentarios condicionales IE: Usa comentarios condicionales para IE en los que sólo has de poner las correcciones para IE, no todo el css completo. Eso hace que sea más fácil de mantener. Y hazlo al final, una vez ya esté todo hecho para los otros navegadores. Una vez hayas llegado a este paso verás algunos bugs de IE muy divertidos.
- Bugs de IE (o de otros navegadores): IE tiene un montón de bugs aunque no es sólo de IE, los otros navegadores también tienen bugs pero IE gana por goleada.
- Busca en los buscadores: Mira lo que te pasa, intenta describirlo (mejor en inglés) y ves a tu buscador preferido y por "lo que me pasa" IE bug. Normalmente lo mismo que te pasa le habrá pasado antes a otras personas y cómo suelen ser otros desarrolladores lo habrán publicado en internet. Aunque a veces es complicado describir el error igual que el que publicó.
- Divide y vencerás (divide and conquer): El bug suele tener un trigger (un disparador) que hace que ocurra pero no sabemos que es. Para poder encontrarlo si no tenemos la más remota idea un buen método es seleccionar la mitad del css, borrarlo y subirlo. Si el bug todavía está allí es que el trigger está en la parte que no hemos borrado, si desaparece está en la parte borrada. Luego volvemos a hacer lo mismo en la parte que sabemos que está el trigger y seguimos así hasta llegar al trigger en sí. Una vez descubierto podemos intentarlo hacer de otra manera o podemos volver a buscar en google teniendo más datos.
- Ovillo: Por último si ya lo has mirado solicita ayuda en alguna lista de correo o foro de CSS. La lista de correo Ovillo es la mejor para esto en castellano.
¿Vosotros que trucos usáis?
Actualización
En Ovillo Kemie de diseñorama me comenta que ella hizo un post parecido y al leerle me he dado cuenta que me he dejado una de las pautas más importantes: Validar el HTML y el CSS!
Actualización 2
También me olvidé de una pauta bastante útil: una vez que ya estés atascado suele ir muy bien pedir ayuda a otra persona sobretodo por que para que te ayude le tendrás que explicar paso a paso y de forma muy clara cual es el problema. Muchas veces con tan sólo plantear el problema he podido dar con la solución yo mismo con lo que la persona a la que le he pedido ayuda sólo ha tenido que decir "de nada".
Buenos consejos, sobretodo el
Jordi Bufí — Lun, 18/08/2008 - 11:16Buenos consejos, sobretodo el de asegurarse que estás mirando la web adecuada :D
Añado un consejo más: usar una guía de estilo
Yo creo que hay dos bandos
Ignacio Ricci (no verificado) — Lun, 18/08/2008 - 15:05Yo creo que hay dos bandos claros a la hora de maquetar webs.
Firefox + Opera + Safari vs IE6 + IE7 + IE8(Beta)
Yo lo que hago es maquetar en Firefox. Cuando lo termino, lo chequeo en Opera, y luego Safari. Realmente siempre en las webs que maquete desde Firefox, se ven perfecto en Opera y Safari también, pero por las dudas uno lo verifica.
Y después, uno se dedica a IE.
Con comentarios condicionales o star hacks y listo.
No creo que valga la pena usar el Dragonfly (Firebug de Opera), ya que es muy inprobable que algo se vea mal en Opera estando bien en Firefox. Safari también tiene su debugger, pero no lo he usado.
Lo que si creo que vale la pena es tener el IE Developer Toolbar. Que es una versión pobre de FireBug pero nos ayuda en ciertos casos.
Y por último, cuanto más respeten los estándares, menos bugs y hacks tendrán en sus sitios.
Nacho.
Muchas gracias Nacho por
Carlos — Lun, 18/08/2008 - 15:41Muchas gracias Nacho por aportar tus pautas :)
Gracias por estas pautas. La
Pipeio (no verificado) — Mié, 20/08/2008 - 18:00Gracias por estas pautas. La verdad es que como aficionado al diseño y maquetación web me sirven de mucho al aventurarme en mis primeras webs.
Pues de nada, me alegro que
admin — Mié, 20/08/2008 - 18:29Pues de nada, me alegro que te sirvan.
hola soy novato en esto y mi
nacho (no verificado) — Vie, 23/01/2009 - 06:13hola soy novato en esto y mi blogs se ve bien en firefox pero no en el explores como puedo saber como arreglar los errores del css
En esta página tienes un
admin — Vie, 23/01/2009 - 10:24En esta página tienes un montón de bugs de explorer: http://www.positioniseverything.net/explorer.html
Mira a ver si te afecta alguno y los corriges. Lo más normal es que te afecte el box model: http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug
gracias lo voy a
nacho (no verificado) — Sáb, 24/01/2009 - 01:17gracias lo voy a intentar
pero mira el problema principal es el de contenido que tengo
esto en el css
}
.general {
margin : 0 auto 0 auto;
width : 790px;
}
y en explores no me da las misma vision que firefox me hechas una mano
es que es un servidor gratuito idoo y no me deja usar granparte del htlm
y me coloca / al final de la llamada y en el verificador de htlm me danerror y otro es que para llamar a la ruta de una imagen usa un identificador y
tambien dan como error y son 235 mas o menos y no los puedo corregir unos
porque no los produzco yo y otros porque no tengo manera de llamar a la imagen nada mas que de esa y es un blogs para informar no voy a pagar
solo por informar estoy aprendiendo pero solo y cuesta me hechas una mano
y mi ingles regular si me das un ejemplo yo lo saco o por lo menos lo intento de todas formas gracias por contestar y darme un poco de tiempo un saludo,
Muy buenos consejos, en
SEO (no verificado) — Mar, 22/12/2009 - 03:12Muy buenos consejos, en realidad hay algunos tan sencillos que uno los ignora pensando en algo mas complejo para al final darse de tumbos en la pared al ver que la solucion tomaba menos de 15 segundos.
///SEO///