Ayer discutimos el futuro del diseño CSS y algunos de los nuevos módulos que CSS3 trae a la mesa en este campo. Uno de estos que mencionamos brevemente fue CSS3 Flexbox.
Hoy profundizaremos en este modelo y construiremos una página web completa con él. De ninguna manera estará listo para implementarse en sus proyectos, pero le brindará más información sobre una posible forma en que codificaremos los sitios web en los próximos años. Además, ¡esto es simplemente divertido para jugar!
Altamente Experimental: Solo Webkit
Mi objetivo para esta publicación era tener una página de trabajo en funcionamiento en varios navegadores, eso no sucedió. En este punto, la implementación es defectuosa e incoherente en todos los navegadores, incluso después de instalar Flexie.js, aún obtenía resultados muy diferentes entre Firefox y Safari (creo que tiene que ver con mezclar contenedores típicos centrados en los márgenes y Flexbox).
Por esta razón, el proyecto de hoy estará dirigido principalmente a Safari y Chrome porque, francamente, sigue siendo un desastre en otros navegadores! Definitivamente, te animo a que sigas y luego juegues con el producto terminado para ver si puedes ponerlo en funcionamiento en una implementación de varios navegadores. Si tienes sugerencias, me encantaría escucharlas en los comentarios!
Paso 1: Clases reutilizables
Ya que expliqué brevemente el concepto básico de Flexbox en la publicación de ayer, me centraré en la implementación aquí. Pero no te preocupes, deberías entender la esencia a medida que avanzamos.
Lo primero que queremos hacer es crear algunas clases básicas que ayudarán a definir nuestro diseño. Estos atributos se pueden aplicar a una ID según sea necesario, pero me parece útil y ordenado hacerlo de esta manera.
Vamos a discutir cómo funcionan estas clases. La primera clase, hasflex, se aplicará a un contenedor principal cuyos hijos queremos distribuir utilizando este nuevo sistema Flexbox. Una cosa que notará es que todo este diseño será completamente sin flotadores, por lo que le dará algunas buenas indicaciones sobre dónde implementaremos Flexbox en nuestro código.
A continuación, configuramos algunas clases más para aplicar varios box-flex valores. Flexbox distribuirá convenientemente nuestros elementos secundarios a través del contenedor y estos definirán las proporciones. yo creer que el valor por defecto es? 0? pero los resultados parecían un poco defectuosos con este supuesto, por lo que me resultó útil aplicar siempre un valor de forma manual.
Paso 2: HTML inicial y CSS
Para comenzar su documento HTML, cree un contenedor y un encabezado. En este punto, estos son elementos básicos que construiremos como siempre sin la ayuda de Flexbox.
Una vez que tenga eso en su lugar, agregue los estilos básicos a continuación. Básicamente, instalé un cuerpo oscuro con un contenedor ligero de 1.000 px de ancho que contendrá todo nuestro contenido. Agregue algunos márgenes al centro y algunos estilos de texto básicos, y estamos listos para pasar a lo divertido.
Nota: La fuente principal que usaré es Oswald, de Google Fonts.
Paso 3: Navegación
Ahora, para el área de navegación, normalmente creas una lista de enlaces y luego los flotas hacia la izquierda. Con Flexbox, el proceso es un poco diferente. Aquí simplemente aplicamos el hasflex clase que creamos anteriormente y luego usar caja0 para cada uno de los elementos de la lista. Aplicando caja0 Para los tres, el efecto es flotar los enlaces a la izquierda pero no los distribuirá en todo el ancho del contenedor.
Después de esto, simplemente aplicamos los mismos tipos de estilos que aplicaríamos a cualquier otra página web. El objetivo principal aquí es espaciar los enlaces un poco con algunos márgenes y asegurarse de que nuestros enlaces tengan el estilo adecuado.
Paso 4: La Imagen
Toda buena página web necesita una imagen. Para ilustrar con más detalle cómo aplica Flexbox de forma selectiva solo a los elementos que lo necesitan, lanzaremos una imagen de encabezado grande con el mismo código exacto que normalmente.