Cómo flotar imágenes en un post

Un lector me preguntó como hago para ubicar las imágenes hacia un costado en cada post. Es un proceso simple que hago con ayuda de CSS. Esto servirá a todo aquel que quiera tener fotos flotadas hacia un costado en su weblog.

Ingredientes: una hoja de estilos + un poquito de XHTML.

En la hoja de estilos que utilizamos para nuestro blog, escribir esto:

img.right {
    float: right;
    margin: 3px 0px 20px 20px;
    display: block;
    }

Este comandillo de CSS permite que todas las imágenes que tengan una clase .right se posicionen hacia la derecha. En vez de usar right puedes poner derecha o el nombre que quieras, siempre y cuando en el XHTML pongas eso, claro. Comenzando por la primera propiedad float, que permite a un elemento flotar sobre el contenido que tenga a sus costados, así que, con conocimiento de causa se pueden hacer maravillas con esta propiedad, eso sí, sin abusar que luego vienen los dilemillas. Cualquier elemento que utilice una propiedad float se convertirá en un elemento reemplazado con propiedades de bloque. Esto es un poco engañoso pero ya lo expliqué una vez en el punto número 10 de la entrada 13 reglas de oro para dar el gran paso. Hay tres estados para esta propiedad: left, right y none, en este caso me haré amigo del estado right.

Luego podrán observar otras propiedades más que he agregado. La siguiente sirve para alejar otros elementos de la imagen. Usando margin, me doy el lujo de posicionar la imagen entre los límites top, left, right, bottom de la misma. Puedo hacer que la imagen se ubique 3 o 4 píxeles más abajo, que el texto no llegue a tocar la imagen flotada tanto para la parte izquierda de la imagen como para la inferior.

Luego queda la propiedad display, que sirve para cambiar la naturaleza del elemento, también explicado en el paso diez de la entrada 13 reglas de oro para dar el gran paso.

Escrita esta regla de CSS, en nuestro post tenemos que poner la imagen de esta forma:

<p><img src="/images/macosx.png" alt="Captura de pantalla" title="Mac OS X" class="right" /> El Mac OS X
es un sistema operativo…

Como podrán observar, la imagen va dentro de la etiqueta <p> ya que me interesa que sea parte del tema que se está hablando, como es un elemento de linea tiene que ir encerrado sí o sí dentro de uno de bloque. Si lo pongo fuera, algunos navegadores me darán dolores de cabeza, mejor lo pongo dentro para tomar como margen al párrafo.

Luego se pueden hacer extensiones de esto. Por ejemplo, si tengo una imagen, podría agregar otra clase más y combinar dos clases de CSS en una etiqueta <img> y de esta forma darle otras propiedades más a las imágenes que no tengan espacios negativos. Por ejemplo, a veces suelo poner un borde de 1 pixel de ancho alrededor de la misma imagen. También para que no quede tan soso le pongo un padding (almuadilla) entre el borde y la imagen, dejando como resultado un lindo marco. Esto va a gusto de cada uno, pero a la hoja de estilos que tenemos agregamos otra clase más:

img.borderimg {
    padding: 1px;
    border: 1px solid #ccc;
    }

Luego resta poner en la clase de la imagen un espacio y borderimg. Combinada con la anterior que flota la imagen a la izquierda quedaría así:

<img src="/images/alt.png" class="right borderimg" alt="alt" />

Este método te permite tener varios modos de presentación para imágenes. Por ejemplo, si uno tiene ya una clase para flotar todo a la izquierda, puede tener otra clase para agregarle a las imágenes que necesiten marcos, pueden agregar un fondo para aquellas imágenes que necesiten fondo y un montón de cosas más.

Espero que les haya servido de ayuda.

16 Comentarios en “Cómo flotar imágenes en un post”

Gravatar de Marc

Marc
29 de Julio de 2005 a las 6:39 am    

:) Infinitas gracias Diego!
Ahora mismo voy a ponerme manos a la obra.

Un abrazo!

Gravatar de mini-d

mini-d
29 de Julio de 2005 a las 7:15 am    

Bon profit.

Gravatar de javipas

javipas
29 de Julio de 2005 a las 7:56 am    

Muy bien explicadito, a ver si lo pongo en mi blog :-) ¡Gracias!

Gravatar de torresburriel

torresburriel
29 de Julio de 2005 a las 7:59 am    

Yo matizaría, para que no haya ‘peros’ que si le ponemos a la clase un nombre que sea independiente de consideraciones de presentación, la cosa quedará perfecta.

En lugar de llamar a la clase ‘right’ o ‘derecha’, le podemos poner un nombre como ‘imagen’, ‘ilustracion’, etc., para de ese modo el día que las alineemos a la izquierda, por poner un ejemplo, no nos compliquemos teniendo una imagen flotada a la izquierda, manejada por una clase llamada ‘right’ ;-)

Gravatar de superporcel

superporcel
29 de Julio de 2005 a las 8:08 am    

Yo ya utilizo esto desde hace tiempo, pero esta muy bien para cuando uno empieza. Se echan en falta, minitutos asi.

Gravatar de javipas

javipas
29 de Julio de 2005 a las 8:15 am    

Pues no consigo que funcione… Publico con Wordpress, he añadido los estilos tal como los tienes y pruebo a meter la imagen en el texto con este código:

img src=”/wp-content/thumb-tuc.jpg” class=”right borderimg” width=”200″ height=”199″ alt=”" /

(con los símbolos < y > al principio y final, si los pongo en el comentario no lo coge)

Pero no me respeta los márgenes… ¿Alguna idea?

Gravatar de javipas

javipas
29 de Julio de 2005 a las 8:23 am    

Resuelto. Por alguna razón la nueva clase no la pillaba, pero he añadido esas características en otra clase ya definida y tira. Chulis :-)

Gravatar de mini-d

mini-d
29 de Julio de 2005 a las 8:34 am    

Yo uso right para ubicar las imágenes a la derecha. Tengo inclinación por ubicar ciertas imágenes a la izquierda. Si hago una clase genérica, entonces el día que mueva a la derecha muchas imágenes que no quedan bien a la derecha se tendrán que mover ahí, por eso tengo separado todo en right, left, center.

Luego combino con otras cosillas.

Gravatar de Marc

Marc
29 de Julio de 2005 a las 8:43 am    

Ya esta! Probado y funcionando a la mil maravillas.
Gracias de nuevo, Diego. :)

Salut!

Gravatar de max

max
29 de Julio de 2005 a las 8:44 am    

Mil gracias Diego. Ya sólo queda explicar como haces para que la cabecera ocupe todo el ancho de la pantalla XD

Gravatar de José de la Serna

José de la Serna
29 de Julio de 2005 a las 12:39 pm    

Pues tío, que en España de verdad sois lentillos, joder!.
¿No se avisparon nunca de usar “Ver código fuente” para aprender?. Si hay algo estúpido de aprender, eso es xhtml y css! ¿Precisais que alguien les explique tamaña gilipollez?.
Valgame Dios, es como decir “correrse del medio de la calle que los atropellaran” y que al unísono respondan “ahhhh, es verdaaaad, gracias, tu sí que sabes eeeeeeeh!!”. Gran L de loser!

Gravatar de Libertinus

Libertinus
29 de Julio de 2005 a las 1:49 pm    

¿y como hago cuando el parrafo tiene un color de fondo y la imagen sale para afuera?

hay formas de que el fondo se estire tomando la foto?

Gravatar de borromeo

borromeo
29 de Julio de 2005 a las 2:57 pm    

de la serna, hay que ser tonto pa perder el tiempo insultándonos, no te vale con dejarnos en paz?

Gravatar de damonmx

damonmx
29 de Julio de 2005 a las 8:15 pm    

Gracias por el dato y la explicacion Diego se agradece :)

ahh y disculpe Sr. de la Serna por no ser tan inteligente como usted, espero sepa perdonarme ¬.¬

Gravatar de ggarfield

ggarfield
30 de Julio de 2005 a las 8:31 pm    

No sé si es por un plugin para WordPress que tengo instalado que puede que haga el trabajo sucio por mi pero yo en mi blog utilizo simplemente img src=”…” alt=”…” align=”right/left/baseline/…”

y me funciona, ¿puede ser?

Gravatar de Elí

Elí
31 de Julio de 2005 a las 5:42 pm    

ggarfield eso del align que mencionas es un método cavernario, es mejor utilizar hojas de estilo.
Excelente post minid, ya estoy poniendo en práctica tus consejos.

Más entradas en Minid.net