Al aumentar la diversidad en los tamaños de monitores, no es práctico diseñar bloques de texto individuales que ocupen todo el ancho de la pantalla. La solución tradicional es dividir el texto en columnas manualmente, lo cual requiere mucho tiempo; o dividir el texto dinámicamente con JavaScript, que no funciona universalmente. Además, este es un problema de presentación, deberíamos poder diseñarlo con CSS sin el uso de sistemas de grillas o flotadores, ¿no?
CSS3 realmente proporciona una manera para que el estilo de su texto en varias columnas, incluso le da la posibilidad de establecer un canal - el espacio entre esas columnas - de esta manera tiene el control total en lugar del marco o sistema de cuadrícula configurando esas lagunas para usted .
Lo mejor de todo es que CSS3 se degrada graciosamente, por lo que si alguien navega en Netscape Navigator, su sitio no se romperá.
Es importante tener en cuenta que, si bien todos los navegadores actuales admiten columnas múltiples en CSS3, incluso IE10, muchas versiones recientes, IE9 por ejemplo, no. Aunque el soporte es bueno, querrá incluir prefijos de navegador para webkit (-webkit-) y mozilla (-moz-). No es necesario incluir -ms- o -o- para IE y Opera, ya que admiten la función en su totalidad o no la incluyen.
Esta característica de CSS realmente le da un puñado de propiedades para darle control total sobre cómo se imprime su contenido en el navegador y esas propiedades son:
Con todas estas propiedades, no creo que realmente necesitemos algo más para tener un control total sobre nuestras columnas. Por supuesto, no todas estas propiedades son necesarias para que el diseño de múltiples columnas funcione, en realidad solo es necesario el conteo de columnas, pero siempre debe usar el espacio entre columnas para darle al texto un poco de espacio y no tener todas las columnas activadas. uno encima del otro.
Para poner esto en práctica solo toma dos líneas de código:
/* This will produce a 3 column layout with a gap of 20px between each column */.cols3 {column-count: 3;column-gap: 20px;}
Si también desea aplicar una regla a las columnas, solo necesita agregar las propiedades adicionales:
/* This will produce a 3 column layout and a gap of 20px between each column and a rule of 1px solid black */.cols3 {column-count: 3;column-gap: 20px;column-rule-width: 1px;column-rule-style: solid;column-rule-color: #000;}
Al igual que la propiedad de borde más común, también puede apilar el color, el estilo y el ancho en la misma línea, así:
.cols3 {column-count: 3;column-gap: 20px;column-rule: 1px solid #000;}
Si tiene un encabezado y desea que ese encabezado abarque todas las columnas, solo debe agregar una línea:
/*This h1 will take up the space of the 3 columns*/.cols3 h1{column-span: all;}
Puede aplicar esto a prácticamente cualquier HTML, de un solo párrafo a múltiples
Saltar a columnas CSS tiene muchas ventajas en mi opinión, no es necesario usar muchas matemáticas, flotantes o romper el contenido cuando el usuario cambia el tamaño del navegador. También puedes escribir tu código de una manera mucho más semántica y, dado que son compatibles con todos los principales navegadores, deberías considerar usar columnas a partir de ahora.
¿Estilo columnas con CSS3, o se adhieren a carrozas y posicionamiento? ¿Qué consejos tienes para manejar navegadores antiguos? Háganos saber en los comentarios.
Imagen / miniatura destacada, imagen de columnas a través de Shutterstock.