En este tutorial les voy a enseñar a trabajar con columnas de texto en CSS3(algo así como las de un periódico) , que les podrá ahorrar varios problemas y dolores de cabeza que podrían tener a futuro. Es bastante simple, y no necesitan saber mucho para poder trabajar con esta función. Ahora, sin más preámbulos, vamos con el tutorial.
Antes que nada, les voy a dejar un par de ejemplos de sitios web donde usan o deberían usar las funciones que les voy a mostrar, para que se vayan armando una idea de cómo se usa, cuándo se usa y para qué sirve.
Ejemplos de columnas en CSS3
Este ejemplo es de un sitio web cualquiera, donde en su portada tienen una sección de noticias. Entonces para ahorrar espacio tienen 2 columnas con noticias. Es importante notar que no sólo sirve para texto, si no también para elementos (como <div>, <span>, <li>, etc).
En este ejemplo se muestra claramente el uso de varias columnas con el texto genérico Lorem Ipsum. Este es un ejemplo claro de cómo quedaría una web con un sistema de multicolumnas vía CSS3.
Cómo hacer columnas de texto en CSS3
Luego de que hayan visto cómo se usa el sistema de columnas en disitintas webs y las distintas formas en las que pueden trabajar esta función, ahora vamos al código en bruto.
Primero que nada, estamos en CSS3, y nuestros navegadores todavía no aceptan varias propiedades de este lenguaje, así que para que las reconozca, tenemos que agregar los prefijos -moz- (en caso de Firefox) y -webkit- (en caso de Google Chrome y todos los navegadores que usen webkit). Por un tema de responsabilidad al diseño, debes poner los dos prefijos por respeto al usuario, ya que no todos usan Google Chorme, o no todos usan Firefox.
Luego de haber aclarado el tema de poner los prefijos de compatibilidad, ahora vamos a ver las propiedades que se usan para el uso de columnas en CSS3.
Las propiedades para generar columnas de texto son:
Código :
column-count: número de columnas ; column-gap: espacio entre columnas ; column-rule: decoración de las columnas ;
En donde:
- column-count: es la cantidad de columnas que vas a usar.
- column-gap: es la cantidad de espacio que dejas entre las columnas.
- column-rule: es la decoración que vas a usar para las columnas (se usa la misma semántica que para la decoración de un border {} ).
Un ejemplo de uso sería:
Código :
#columna { column-count: 3; column-gap: 20px; column-rule: 1px solid #fff ; }
¡Recuerden poner los prefijos!
El resultado del ejemplo anterior sería el siguiente:
Y claro, el HTML (no se si es necesario ponerlo, pero si a alguno le sirve se lo dejo):
Código :
<div id ="columna"> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sed orci enim, at vulputate nulla. Quisque vehicula tincidunt eros sed rutrum. Aenean molestie feugiat dolor, ut aliquet tortor mollis sit amet. Morbi volutpat, odio sit amet scelerisque venenatis, eros turpis tristique nisi, sed feugiat massa ligula sed magna. Praesent sed sem odio. In vitae mi risus, a cursus justo. Quisque in lectus massa, eget porttitor velit. Sed feugiat libero at mi rutrum feugiat. Nulla felis justo, accumsan ut accumsan nec, consequat nec est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla facilisi. Praesent quis nisi leo, vel accumsan turpis. Pellentesque a orci a purus tincidunt scelerisque. Ut mattis leo quis mauris lobortis lobortis. Mauris dolor purus, placerat et cursus ut, molestie ac diam. In eleifend porttitor libero eget fringilla. Cras velit metus, feugiat sit amet tempus eu, venenatis in lacus. Nunc vitae nunc sem. Sed non leo nunc. Nam metus velit, posuere nec tristique vel, viverra in lacus. Aliquam erat volutpat. </p> </div>
Recuerden que ahí falta toda la estructura base del HTML, ese solo sería el div y pueden poner imágenes vía <img src =""/> y quedan auto posicionadas, no les debería dar problemas.
Bueno comunidad, eso ha sido todo lo que les traigo por hoy, es un tutorial simple, pero espero seguir aportando a la comunidad, a medida que pueda. Si les interesa lo que escribo, me pueden seguir en Twitter, que siempre trato de aportar cosas respecto al mundo web, informática, tecnología y todos esos temas que a muchos nos apasiona: @semasad. También en Taringa si tienes cuenta: @Shai.
Eso sería todo, y gracias por llegar hasta abajo.
Cualquier duda o consulta me la pueden preguntar de cualquier modo que se les ocurra (mensaje, comentario, redes sociales, etc) siempre estoy abierto a responder todo.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Mariux el 17 de Septiembre de 2012
gracias.
saludos
Por semasad el 17 de Septiembre de 2012
Mariux :
gracias.
saludos
Esos pixeles fueron para no mostrar el contenido, pero si molesta, les dejo la imagen sin los pixeles:
Por Shake el 18 de Septiembre de 2012
"tenemos que agregar los prefijos -moz- (en caso de Firefox) y -webkit- (en caso de Google Chrome y todos los navegadores que usen webkit)"
¿Cómo es eso? o ¿cómo se aplica? ¿Dónde se pone? Ahí me perdí.
Te agradezco.
Por lopezchr el 18 de Septiembre de 2012
Por Leonard Cuenca el 18 de Septiembre de 2012
Por semasad el 18 de Septiembre de 2012
Shake :
"tenemos que agregar los prefijos -moz- (en caso de Firefox) y -webkit- (en caso de Google Chrome y todos los navegadores que usen webkit)"
¿Cómo es eso? o ¿cómo se aplica? ¿Dónde se pone? Ahí me perdí.
Te agradezco.
Mira, te explico. No todos los navegadores tienen todas las funciones que tiene CSS3 por defecto, por eso, para que el navegador reconozca estas funciones, se lo debemos indicar en el CSS. Estas funciones no las reconoce el navegador, asi por defecto, entonecs le debemos agregar estos prefijos a las lineas de código para que el navegador las reconozca.
Entonces, para que todos los navegadores reconozcan estas lineas de código le ponemos el prefijo -webkit-, -o- y -moz- y te deberia quedar así:
Código :
* En el post se me olvidó poner -o- (que es para Opera)
Entonces ahora en todos los navegadores se va a ver con el CSS3 (si todos esos navegadores soportan CSS3).
En resúmen, es un simple prefijo que para que el navegador reconozca el uso de CSS3 y lo lea. Entonces, cuando trabajes cono sentencias de CSS3, recuerda ponerle los prefijos de todos los navegadores a esas lineas para que funcione bien tu página. Si no te queda claro o cualquier duda más me avisas por aquí o por Twitter: @semasad.
Por pedro-vk el 19 de Septiembre de 2012
http://xitrus.es/blog/23/Multicolumnas_con_CSS3
Por semasad el 19 de Septiembre de 2012
pedro-vk :
http://xitrus.es/blog/23/Multicolumnas_con_CSS3
Mira, te cuento. No me basé en tu publicación para postearlo. La vi, y un par de días después publiqué este post. También me base en varios otros sitios web para complementar la información, es verdad que en tu sitio web está ese post y lo vi y estaba muy completo, pero mi fuente no fue solo tu sitio web, si no muchos más. Por otro lado, el texto de prueba, como ya debes saber, es un simple Lorem Ipsum, que lo encontré en la página que genera estos textos. No fue solo tu sitio mi fuente, si no muchos más, como por ejemplo Desarrolladores del Web. Y por lo demás el orden del artículo no fue sacado de tu web, simplemente así lo puse, es un orden pedagogico. Si aún te molesta, solicito poder editar el post para poner tu sitio web. Espero que no te moleste.
Por Shake el 27 de Septiembre de 2012
Por Shake el 27 de Septiembre de 2012
Por semasad el 29 de Septiembre de 2012
Shake :
Se puede hacer con distintos divs, no de forma automática con CSS3 para que funcione en IE. Creo que también se puede hacer con Javascript, pero es más complicado. Aquí te dejo un sitio web donde hay más información sobre esta sintaxis: http://www.w3schools.com/css3/css3_multiple_columns.asp/
Espero que te sirva, cualquier duda, ya sabes, me preguntas por aquí o por Twitter: @semasad.
Por daniela el 16 de Abril de 2013
Por fernada el 11 de Mayo de 2013
Por AndiJoc el 24 de Junio de 2013
Podrias explicar como colocar imagenes para que queden en un lado de la columna y al otro el texto?
gracias =)
Por el 25 de Noviembre de 2013