dominios y alojamiento web en hostalia

Trucos CSS para no enloquecer

05 de junio de 2007
Valoración del artículo:
Algunas soluciones a los problemas tipicos que te puedes encontrar con CSS.
Licencia Copyleft.
Puedes reproducirlo citando al autor y enlazando su página web.
Tranquilo! Todavía no tires el monitor contra la pared!! te aseguro que con un poco de investigación y algunos consejos podrás encontrar la solución a tu problema.

Aquí encontrarás los principales trucos CSS para hacer frente a los típicos problemas que se enfrentan los diseñadores web cuando maquetan con CSS. Podrán existir discrepancias entre los lectores, pero aclaro que estas son técnicas que a mi personalmente me han dado resultado, después de muchas pruebas e intentos aprendí esto...

Usa un contenedor global para todas las cajas (cuando las cosas se disparan)

De esta forma estas prefijando globalmente el orden de todas las demás cajas. En referencia a este contenedor ordena el resto de las cosas interiores. Es como si haces una cerca o valla para que nada es escape. Obviamente estamos hablando de sitios “fijos” no elásticos.
A veces es bueno usar un contenedor hasta el cuerpo del sitio, luego dejar el pié afuera.

Ejemplo para un contenedor de 900px centrado:
#contenedor {
margin-top: 0px;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
width: 900px;
}

Que flote a la izquierda (cuando las cajas se superponen)

Esta es una muy buena forma de evitar incompatibilidades entre navegadores. El uso de hacks de CSS se debía en gran parte porque se trabajaba “centrando” las cajas. Si por ejemplo precisas poner tres cajas de 300px en un contenedor de 900px puedes hacer lo siguiente.

Ejemplo:
#caja {
float: left;
width: 300px;
}

Calcular bien los paddings o rellenos (cuando las cajas se van abajo)

Casi todos los dolores de cabeza y maldiciones hechadas sobre el CSS se deben al mal uso o a la mala interpretación que se hace del padding. Pero es más simple de lo que parece.
¿Para que sirven los paddings o rellenos? Bueno, lo que hace es generar un “relleno” de determinada medida para dar por ejemplo como un margen a los elementos, pero lo hace sobre el ancho en píxeles que esté prefijado. Por ejemplo: si tenemos una caja de 300px y le aplicamos un padding de 10px en la izquierda, ahora tendremos una caja de 310px. Esto hará desbordar al resto de las cajas y las desplazarán para abajo. Ahí es cuando el diseñador principiante se vuelve loco. El tema es que si hay una diferencia de hasta un 1px se producirán estos desbordes, sino fíjate cuando le incluyes bordes a tu caja, se producirán difrencias.
Lo que se debe hacer es simple, calcular bien y recordar cada ajuste que se haga de los rellenos. Ahora tendremos que hacer una caja de 290px con paddings de 10px a la izquierda.

Ejemplo:
#caja {
float: left;
width: 290px;
padding-left: 10px;
background-color: #FFE6DD;
}

El pié de página con ancho fijo (cuando el pié de página enloquece):

Para entender mejor como funciona el uso de cajas en CSS se puede pensar en un grupo de objetos de diferentes formas que luchan por adaptarse y ocupar el espacio que se ha prefijado. Sucede muchas veces que los pié de página son los más problemas traen cuando se maqueta un sitio. O se va para arriba, se alinea a la izquierda, o se desborda, etc. Muchos resolvíamos este tema prefijando valores fijos a las alturas de cajas, pero no tiene sentido. Lo que se debe hacer es de nuevo establecer un valor de ancho fijo. De esta forma el pié se va a hacer su lugar del resto e irá a parar donde tiene que ir.

Ejemplo:
#pie {
width: 900px;
background-color: #666666;
}

No todo es 1+1=2 en CSS (cuando los anchos no cierran)
Un problema común en css es pensar que todos los anchos entre cajas cierran perfectamente. A veces es necesario jugar con los valores de los contenedores, a veces contrario a la lógica hay que añadir algunos px a los contenedores.

Otros trucos rápidos

Trucos sencillos, de los que no hace falta explicar mucho pero que son muy prácticos y te harán más fácil el trabajo y evitarán posibles errores.

- Usa colores diferentes para distinguir las cajas
- Pon una palabra descriptiva en cada caja
- Comenta el código fuente y señala los finales de los contenedores grandes
- No mezquines espacios entre los divs
- No seas un fundamentalista y no quieras escribir tu CSS con dos o tres líneas. Si no quieres errores escribe lo necesario.
- Cuidado con el tamaño de las imágenes que insertas, estas cambian el ancho de los contenedores.
- Elige bien los nombres de cada div y trata de ser ordenado en el código.
- Si vas a trabajar con varias cajas, trata de agruparlas de a grupo, esto es muy importante. Por ejemplo un contenedor que agrupe tres o cuatro cajas.

Conclusión

Todas estos párrafos son simplemente algunas sugerencias o comentarios de lo que me ha dado resultado a mi. Existen otras muchas “ataduras” de este tipo, si tienes alguna no dudes en comentarlas en este mismo artículo.

Que pasa cuando no puedes resolver un problema con CSS o similar? A mi me ha dado resultado levantarme un rato, hacer cualquier otra cosa y luego volver e intentar de nuevo.

Dejar de renegar y no enloquecer con CSS dependerá de la cantidad de tiempo, trabajo y esfuerzo que le metas a tu trabajo. No lo dudes.

Compartir en redes sociales

Comentarios
Fueron enviados 8 comentarios al artículo
2 comentarios no revisados
6 comentarios revisados:
Por: richard
18/6/2007
Está interesante y algunas cosas me han servido para darme cuenta de fallos que puedo cometer y volverme loco.

Y no estaría mal que esto se extendiera y que otros desarrolladores experimentados realizasen artículos parecidos.
Por: Javi
18/6/2007
Me parecen fantásticos los truquillos del artículo.
Os quiero comentar un truco que utizo para las cabeceras gráficas de las páginas. De toda la vida estamos muy a merced de la resolución de pantalla que utilice el visitante. Lo que he empezado a hacer yo es situar una caja del alto deseado y ancho total con top:0px
Luego la imagen que quiero como cabecera la pongo de fondo de esa caja con posición de imagen de fondo centrada y sin repetición.Por ejemplo:
#cabecera {
position:absolute;
margin-left:0px;
top:0px;
width:100%;
height:99px;
z-index:2;
background-image:url(../imagenes/fondocab.jpg);
background-repeat:no-repeat;
background-position:center;
}

********************+
Este mismo principio lo utizo para centrar una imagen en una caja donde por ejemplo pueda variar dicha imagen dinámicamente (siempre que no tenga otro fondo de imagen dicha caja.

No sé si he aportado algo que os valga. La verdad es que soy novatillo en esto del css y cuanto más voy avanzando más me gusta el tema.

Un Saludo.

- Javi -
Por: Final 2.0
09/9/2007
Otro truco cuando haces un layout con 2 o 3 columnas que por lo general son capas flotantes es agregar una linea con la propiedad clear al final ya que las demas capas que le sigan a estas flotantes quedaran bajo estas ^^ ademas de que en caso de estar en un contenedor estas no ampliaran el tamaño de dicho contenedor en todos los exploradores algo muy molesto cuando se tiene un color o imagen de fondo ejemplo:
<html>
<head><title> Ejemplo </title>
<style type="text/css" media="screen">
.contenedor {
width: 900px
}
.flotante {
width: 290px;
float: left
}
.clear {
clear: both;
}
<style>
</head>
<body>
<div class="contenedor">
<div class="flotante">Flotante 1 ^^</div>
<div class="flotante">Flotante 2 ^^</div>
<div class="flotante">flotante 3 ^^</div>
</div>
<div class="clear"></div>
<div>otra capa que de otro modo seria cubierta por las flotantes</div>
</body>
</html>

Espero les sea de ayuda ^^

FerCbaA...
2 o más columnas.
01/9/2009
Una duda que tengo cuando hago un esquema de 2 o más columnas que están dentro de un contenedor y cada columna tiene un fondo distinto, que truco puedo utilizar para hacer que todas las columnas tengan el alto de la columna que tiene el contenido más extenso? Ya que de lo contrario en las columnas con menor contenido se ve al final el fondo del contenedor y no es lo que estoy queriendo obtener.

sefo262
Problema css
25/9/2010
Hola a todos! tengo un problema que no logro solucionar.
Quiero un div que se adapte al contenido (Imagino que es con height:auto;) y que la imagen de fondo se repita verticalmente (repeat-y) a medida que se expande el div.
Cuando intento esto no me muestra la imagen de fondo a menos que defina un valor en pixeles para el height del div.
Podrian ayudarme?
Gracias!!

Obo
¿Ya no queda nadie aprendiendo?
02/1/2012
Hola.
Perdonadme si alguien se ofende porque no es mi intención.
Estoy aprendiendo ahora y siempre que miro esta página veo comentarios superantiguos, pero ninguno actual (que ya estamos en 2012). También echo en falta el poder contestar a algunos comentarios que la gente hace y que yo ya he resuelto, con lo que podría aportar mi experiencia, pues hay veces que la contestación la veo un poco corta o yo creo que la podría ampliar.
Creo que se podía plantear como un foro donde los socios podemos contestarnos unos a otros, y así poder compartir nuestras experiencias.
Y, por último, a todos aquellos que ya han aprendido y, posiblemente, se ganen la vida con esto, recordarles que también ellos un día necesitaron ayuda. Por favor, no os olvidéis ahora de los que empiezan y tratad de ayudar ahora vosotros.
Gracias a todos.

Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...