Prototipo de una plantilla de página de inicio estilo revista con el marco CSS Blueprint

Cuando Collis lanzó este sitio y solicitó a los lectores solicitudes de tutoriales, una de ellas era la de "temas de revistas" para plataformas de blogs. Este tutorial se centra en la primera parte del proceso: aplicar una cuadrícula CSS al diseño para crear un prototipo de una plantilla de página de inicio.

Demo y Fuente

Puede ver una demostración de este tutorial haciendo clic en el botón "Demo", a continuación. Para la fuente, la descarga del archivo ZIP no incluye el código Blueprint CSS.




Lo que estamos construyendo

El foco aquí está en un ejemplo de diseño de página web que utiliza el marco de cuadrícula de Blueprint CSS, basado en mi artículo anterior de qué marco de cuadrícula de CSS. Sin embargo, puede aplicar el mismo proceso a cualquier marco de cuadrícula CSS que prefiera. Si no le gusta usar marcos de cuadrícula en los sitios de producción, siempre puede reemplazar el código CSS y las clases HTML correspondientes por su propio.

El diseño de la página que se muestra a continuación está influenciado por numerosos temas de la revista WordPress, por lo que es posible que veas elementos de diseño conocidos, aunque no es un tutorial específico de WP..

Un proceso típico de diseño gráfico

Permítanme señalar que solo soy un "sillón", un diseñador autodidacta, y la naturaleza minimalista de mi diseño reflejará mi falta de capacitación adecuada. Esperemos que esto le permita centrarse en el diseño general de la cuadrícula y el proceso de codificación, que se basa en elementos geométricos, no en el estilo..

Un proceso de diseño típico para páginas web es comenzar con un boceto en papel, seguido de una maqueta gráfica en Photoshop o Fireworks, etc. Coloque todos los elementos de diseño, colocados aproximadamente donde los desee. Más adelante, en la fase de diseño basado en cuadrícula CSS, determinará las medidas exactas.

FilmPundits es un sitio propiedad de un amigo que estoy construyendo. La siguiente maqueta es uno de los varios diseños "FilmScenic" que he creado como prototipo. El tema de la película solo se presta a este ejemplo debido a las imágenes de estilo panorámico..

Si desea utilizar un diseño similar para temas que no sean películas, simplemente ajuste la altura de la imagen para que se vean menos en pantalla panorámica. Para mis necesidades de diseño, la imagen más grande debe tener el mayor impacto. Así que la composición se posiciona ligeramente descentrada, horizontalmente. Esto hace que toda la página sea un poco más dinámica y llama la atención sobre los elementos más importantes..

Veamos las líneas de "guía", a continuación, que forman la cuadrícula de diseño para la maqueta de arriba..

Use su software de gráficos favorito para convertir las líneas de guía en un mapa de "sección":

Si no está utilizando una cuadrícula de CSS, codificaría manualmente su página web y el archivo CSS en este punto, o permitiría que su software genere el código para usted..

Proceso de diseño basado en cuadrícula CSS

Ahora que tenemos una maqueta de diseño gráfico, necesitamos traducir eso a código HTML y CSS. Para reiterar, el uso de un marco de cuadrícula CSS acelera el proceso de creación de prototipos. Puede medir los elementos de diseño en anchos de píxel y afinar para adaptarse a la cuadrícula CSS que está utilizando. (No me estoy poniendo mucho en posición vertical porque tiendo a controlar eso con alturas de imagen y márgenes superior / inferior).

Este es el proceso que normalmente utilizo para aplicar cuadrículas CSS, que trata la maqueta de diseño gráfico como algo aparte. Tendrás que ajustar esto para satisfacer tus necesidades..

  1. En una hoja de papel, dibuje un rectángulo delimitante (horizontal o vertical) que represente la forma general del diseño de su página..
  2. Divida el rectángulo delimitador en secciones aproximadas: encabezado, pie de página, contenido principal, barra lateral.
  3. Partición de las secciones en bruto más, según sea necesario.
  4. Elija su marco de cuadrícula CSS, ya sea pre-construido o personalizado. Estoy usando Blueprint. Puede usar este documento PDF de una página como "hoja de trucos".
  5. Decidir sobre el ancho de página máximo. He utilizado el ancho de página predeterminado de Blueprint de 950 píxeles, que está formado por 24 columnas de 30 px de ancho cada una, y 10 canales de ancho de px entre columnas (24x30 - 10 = 950 px).
  6. Simule su diseño en el software de gráficos de trama (Photoshop, Fireworks, etc.) si lo desea. Tiendo a saltarme este paso porque. Tenga en cuenta que la mayoría de los marcos de cuadrícula CSS incluyen una cuadrícula PNG o JPG que puede superponer como guía. No utilicé esa cuadrícula en el proceso de diseño gráfico discutido anteriormente.
  7. Decide los anchos mínimos para tus diferentes secciones.
    1. Quería que la barra lateral tuviera al menos 190 px de ancho (5 columnas Blueprint), pero dejé esto hasta el final para asegurar que los tres pequeños bloques de características en la parte inferior izquierda tuvieran prioridad.
    2. El lado izquierdo del bloque de "características" debe tener un poco de espacio en blanco (> = 30 px, ya que es el ancho de una columna en Blueprint). Después de jugar con las secciones de mayor prioridad, me decidí por 3 columnas = 110 px de ancho.
    3. Los tres bloques de características pequeñas deben tener el mismo ancho. Cualquier cosa menor a 190 px de ancho no tendría el mismo impacto visual. Nada más que 190 px no dejaría espacio suficiente para el espacio en blanco a la izquierda. (Si tuviera el tiempo y la inclinación, podría haber creado un marco de Blueprint personalizado que brindaría un control más preciso, o utilizar una página de mayor ancho).
    4. El ancho de la imagen de la característica grande (590 px = 15 columnas) se decide automáticamente, ya que tiene que abarcar el ancho de los tres bloques de características más pequeños. Su relación altura / anchura es mayor que para las imágenes de características más pequeñas, para un impacto visual y, por lo tanto, significa que es "más importante" que otros elementos de la página. Todas estas imágenes dan un atractivo de pantalla ancha, a pesar de las diferentes relaciones de altura / anchura.
    5. En la sección "Publicaciones recientes" de la barra lateral, el ancho de la imagen se fuerza a 70 px (2 cols), en lugar de mis pulgares de 48x48 deseados, como resultado de lo que queda de la pantalla horizontal. (Aquí es donde un marco de cuadrícula CSS puede ser una responsabilidad: tamaños forzados). Sin embargo, al final, incluso las miniaturas pequeñas apuntan ligeramente al tema de "pantalla panorámica".
    6. Cualquier bloque de texto que sea demasiado ancho se puede arreglar fácilmente usando una fuente más pequeña, preferiblemente usando una familia de fuentes que aún pueda leerse en tamaño reducido.
  8. Determine las alturas de los elementos donde sea posible. Satisfacer las preferencias de altura me preocupa menos, pero minimicé la ubicación de los elementos de diseño verticalmente para que el diseño general de la página resulte una sensación de "pantalla panorámica". Al menos para esta plantilla de página de inicio, no quería que la altura de la página fuera tan grande que la mayoría de los lectores tendrían que desplazarse hacia abajo. Eso arruinaría el efecto "pantalla panorámica".
    1. El menú es solo un marcador de posición y no está cubierto aquí en el código. Abarca todo el ancho del "contenido" de 710 px (18 cols).
    2. La altura de la imagen de la característica grande fue decidida por el diseño. Sus proporciones deberían asemejarse a una "pantalla ancha"..
    3. Las imágenes de características pequeñas son una versión reducida de las que uso en otro sitio de películas. Los originales son 470 w x 175 h. Dado que solo hay 190 px de ancho para trabajar, al escalar una imagen original, la altura resultante es de 71 px, que he recortado aquí a 70 px. La proporción resultante aún da una sensación de pantalla panorámica, pero refleja el hecho de que estos bloques no son tan importantes como la imagen de gran tamaño..
    4. La altura del texto de cada sección de características pequeñas se define mediante cuatro secciones verticales: título de la película, fecha de publicación, autor de la publicación y descripción, así como varios "bordes inferiores". (Más adelante, en el código CSS, verás que la altura de línea predeterminada es 115%).
    5. La altura de los elementos en el bloque de Publicaciones recientes es un mínimo de 49 px, aunque son variables dependiendo de la longitud del título de una publicación..
    6. La parte superior de la sección Noticias no se alinea con la parte superior de las funciones pequeñas. Hay maneras de lograr esto, aunque no lo he cubierto aquí.
  9. Determine los anchos finales de cada elemento, teniendo en cuenta la configuración de su marco de cuadrícula. Puede utilizar su dibujo de papel o maqueta de gráficos como ayuda.
  10. Rebana tu maqueta gráfica, si estás usando una, y guarda segmentos en archivos de imagen.
  11. Agregue las etiquetas div Blueprint y los atributos de clase necesarios para respaldar su diseño.
  12. Prueba y modifica hasta que tengas un diseño final con el que estés satisfecho..
  13. Si lo desea, quite el marco Blueprint. Esto significa reemplazar el marco explícito (HTML, CSS) por uno implícito, lo que para mí me parece mucho trabajo innecesario (pero eso es solo para mí). Como mínimo, en producción, use la versión "comprimida" de los archivos Blueprint.
  14. Ir a vivir.

Si eres un diseñador real, a diferencia de mí, probablemente harás la mayor parte de la maqueta de diseño en tu paquete de edición de gráficos favorito. Por lo general, prefiero dibujar en papel y luego simularme sobre la marcha utilizando HTML y CSS (tanto Blueprint como clases personalizadas), como se explica a continuación..

Proceso de codificación basado en cuadrícula

Ahora que tiene una maqueta del diseño de su página, puede comenzar a codificar en HTML y CSS. Aquí hay un proceso aproximado de los pasos de codificación reales:

  1. Incluya las referencias necesarias de Blueprint CSS y el código condicional de IE en el cabeza elemento de tu pagina web.
  2. En la etiqueta del cuerpo, comience con una div cuyo clase atributo se establece en "contenedor". Este es un código de Blueprint para especificar un área de contenedor para elementos de diseño. Esta sección de la página completa. Si desea que la cuadrícula sea visible, para ayudarlo a colocar los elementos correctamente, también agregue el valor "showgrid" a la clase atributo de este div.
  3. Comience a refinar los bloques en secciones más pequeñas utilizando contenido HTML envuelto en div etiquetas, así como rectángulos controlados por CSS para las imágenes. Para especificar anchos, use las clases "span-x" de Blueprint. Agregue cualquier clase de CSS personalizada que necesite. Por lo general, coloco bloques personalizados redundantes (con un fondo gris), luego los elimino una vez que tengo el diseño real implementado en el código..
  4. Puede continuar refinando cada bloque aproximado o saltar al siguiente paso.
  5. Cree los logotipos, iconos o banners necesarios que no se hayan creado anteriormente.
  6. Reemplace los bloques en bruto con elementos de diseño real. Agregue el apropiado div Etiquetas, cualquier valor restante de la clase Blueprint.

Ejemplo de código HTML y CSS

Para que los procesos anteriores sean más claros, echemos un vistazo a algunos fragmentos de código HTML y CSS reales para el ejemplo de diseño de sitio de película que se muestra anteriormente. Tenga en cuenta que me he vuelto extremo con las etiquetas div que no son de Blueprint solo por claridad en este tutorial. Probablemente deseará eliminar cualquier clase en exceso, posiblemente fusionar etiquetas div anidadas.

Tenga en cuenta también que he usado algunos nombres de clase "feos" que no son de Blueprint para mayor claridad. Todos están precedidos por "fs-", seguidos por un nombre funcional, para dejar en claro para qué los estoy usando..

He codificado cinco etapas para este tutorial, para ilustrar el proceso de refinamiento en HTML y CSS. Normalmente, comprimiría la etapa 1-3.

  1. Plantilla en blanco con clase "contenedor" de planos y archivo CSS vacío.
  2. Bloqueo rugoso etapa 1.
  3. Bloqueo en bruto de la etapa 2. Refinar bloques en bruto de la etapa 1.
  4. Bloqueo brusco etapa 3. Refinamiento del bloque final en secciones necesarias.
  5. Página web final y CSS.

Estos pasos serán más claros en las siguientes secciones..

Paso 1: Código de plantilla en blanco

Para empezar, queremos configurar el archivo HTML:

   Plantilla FilmCenic        
El encabezado, el contenido, la barra lateral y el pie de página van aquí.
  1. Enlace a la "pantalla" de Blueprint e "imprima" archivos CSS. Si utiliza una estructura de directorio diferente, no olvide cambiar las URL en consecuencia. He colocado el directorio "modelo" debajo del archivo index.html, aunque en producción, probablemente debería ir "arriba" de su directorio de temas.
  2. Enlace al archivo CSS de "estilo" personalizado, que contendrá todas las clases de CSS que no sean Blueprint. En este paso, eso es style.css..
  3. Configure un div con las clases "contenedor" y "showgrid", ambas parte de Blueprint. El uso de la clase showgrid representará la cuadrícula que estamos usando, lo que facilita ver que los elementos de diseño se están colocando correctamente.

Paso 2: Bloqueo áspero Etapa 1

Ahora bloquee aproximadamente la página completa (contenedor) en tres secciones controladas por CSS: fs-mainblock, fs-sidebar y fs-footer. Puede ver esto en el código HTML a continuación, que llena algunos de los elementos div.container que introdujimos anteriormente:

 
Encabezado, aquí van los bloques de contenido.
barra lateral

(c) Copyright 2008-presente, este blog


Notará que los divs anteriores utilizan tanto clases personalizadas como Blueprint (span-18, colborder, span-5, last, span-24). La "última" clase es muy importante, de lo contrario, el margen derecho predeterminado de la sección fs-sidebar no se desactivará, y la sección se mostrará debajo de la sección fs-mainblock en lugar de al lado. El colborder dibuja una línea vertical entre fs-mainblock y fs-sidebar, y ocupa una columna por sí misma. Esto no se refleja en el valor "span-18". En teoría, el bloque principal en realidad ocupa 19 columnas (19 + 5 = 24 columnas, el valor predeterminado del Blueprint).

Ahora agregamos clases a la hoja de estilo personalizada para estos tres bloques (ver más abajo). Nota: algunos de estos son temporales, para mostrar los rectángulos de bloque en la pantalla mientras refinan el diseño. Consulte el archivo style.css final en lugar de usar exactamente las reglas presentadas en los fragmentos de código CSS a continuación..

 div.fs-content margin-bottom: 20px;  div.fs-mainblock altura: 700 px; fondo: #ccc;  div.fs-sidebar altura: 700 px; fondo: #ccc;  div.fs-footer margin-top: 20px; relleno superior: 5px; altura: 30px; fondo: #ccc; borde superior: 1px sólido # 000; 

Los resultados de arriba de CSS en la maqueta en bruto a continuación:

Paso 3: Bloqueo áspero Etapa 2

Refinemos el diseño aún más desglosando las secciones. La clase div fs-mainblock se divide en las secciones fs-header y fs-feature. La barra lateral de fs se divide en fs-recentposts y fs-newsbox. Aquí está el div.container refinado:

 
Logo + menú
Secciones destacadas
Mensajes recientes

Noticias

(c) Copyright 2008-presente, este blog


Como antes, las clases para las nuevas secciones se agregan a la hoja de estilo personalizada, style.css. La altura de cada sección se aproxima cuando es necesario, y nuevamente estamos agregando un fondo temporal a algunos de los elementos, que se eliminarán en el archivo style.css final. Aquí hay algunas reglas CSS adicionales:

 div.fs-header // Logo + menu width: 710px; altura: 110px; fondo: #ccc; margen inferior: 10px;  div.fs-feature // Anchura de las secciones destacadas: 710px; altura: 580px; fondo: #ccc; margen inferior: 10px;  div.fs-sidebar div.fs-recentposts altura: 370px; fondo: #ccc; margen inferior: 10px;  div.fs-sidebar div.fs-newsbox altura: 270px; fondo: #ccc; 

Esto da lugar a la siguiente maqueta:

Paso 4: Bloqueo áspero Etapa 3

Esta es la etapa final en el proceso de maqueta. Añadimos secciones para todos los elementos de diseño restantes:

  1. Divida la clase div fs-header en fs-logo y fs-horiznav.
  2. Divide fs-features en fs-txt-features y fs-features.
  3. Además, divida fs-features en fs-bigfeature y fs-smfeatures.
  4. Además, divida fs-smfeatures en tres bloques, cada uno de los cuales abarca 5 columnas de Blueprint. No se necesitan clases CSS personalizadas para este último.
  5. Divida las publicaciones recientes en cinco secciones más recientes. (En un tutorial posterior, estas secciones se integrarán en WordPress, por lo que solo se usará una sección en un bucle de código).

Así es como se ve nuestro div.container ahora:

 
Logo
Menú
Destacados
gran característica
función de sm
función de sm
función de sm
Mensajes recientes
publicación reciente
publicación reciente
publicación reciente
publicación reciente
publicación reciente

Noticias

(c) Copyright 2008-presente, este blog


Como puedes ver, hay muchos divs anidados usados. Parte de esto es meramente por claridad en este tutorial. Por lo demás, en un sitio de producción, puede compactar parte de él o reemplazar las clases de Blueprint con las suyas. Algunas personas prefieren usar el almacenamiento en caché en sus sitios, cuando usan temas de "revistas" con marcos de cuadrícula, aunque esto no está dentro del alcance de este tutorial..

Cada una de las nuevas clases se agrega a la hoja de estilo personalizada, con alturas y fondos temporales:

 div.fs-logo / * Logo del sitio * / altura: 90px; ancho: 400px; fondo: # 999; margen inferior: 10px;  div.fs-horiznav / * Menú horizontal * / altura: 25px; ancho: 710px; fondo: # 999; margen inferior: 10px;  div.fs-feature / * Secciones destacadas * / width: 710px; altura: 580px; fondo: #ccc; margen superior: 10px; margen inferior: 10px;  div.fs-txt-feature / * Featured * / height: 30px; ancho: 110px; fondo: # 999;  div.fs-features / * Features * / height: 570px; ancho: 590px; fondo: # 999;  div.fs-bigfeature / * Característica grande * / altura: 260 px; ancho: 590px; fondo: # 666; margen inferior: 20px;  div.fs-smfeatures div / * Característica pequeña * / altura: 280 px; fondo: # 666; margen inferior: 10px;  div.fs-recentpost / * Publicación reciente individual. La altura es en realidad variable, pero es un mínimo de 49 px * / altura: 50 px; // Aproximadamente ancho: 190px; fondo: # 999; margen inferior: 10px; 

Esto da como resultado nuestra etapa final de maqueta, que se ve bastante cercana en geometrías a nuestra maqueta de diseño gráfico "cortado":

Ahora estamos listos para producir el código final.

Paso 5: Código de plantilla final

Este es el paso final en el proceso de codificación, en el que eliminamos elementos de diseño reales, realizamos tareas de limpieza en divs y clases en exceso y nos deshacemos de cualquier elemento de "bloqueo":

  1. Tome todas las clases CSS personalizadas y elimine las configuraciones de fondo y altura, con la excepción de fs-horiznav. (Algunos ajustes de ancho son necesarios. Suelte los que no lo son).
  2. Ahora suelte los elementos de diseño (imágenes, bloques de texto) en los lugares apropiados. Utilice las clases de Blueprint necesarias. (Por ejemplo, uso "div" para forzar un restablecimiento vertical después de un grupo de bloques horizontales. Busque esto en la muestra e intente eliminarlos para ver qué sucede de lo contrario).
  3. Agregue cualquier sección div final y clases de CSS, según sea necesario. Por ejemplo, fs-smfeature, fs-posttitle, fs-postdate, fs-postauth, fs-descr, fs-recposts-head, fs-newsbox-head, fs-newsbox-ul.
  4. Elimine cualquier clase de CSS personalizada que ya no sea necesaria. Por ejemplo, fs-features, fs-txt-features.
  5. Elimine los divs de "constructor" personalizados que sean extraños, o combínelos con divs de Blueprint existentes en su HTML. Los he dejado en claridad.
  6. Tenga en cuenta que el archivo CSS, a continuación, utiliza "contorno" en lugar de "borde" en todas las imágenes. Los esquemas se representan sobre la parte superior de una imagen y, por lo tanto, no ocupan espacio real adicional en la pantalla.
  7. La altura de línea predeterminada de la página se establece en 115%.

Ahora tenemos nuestro diseño final, a continuación, que es el mismo que en la parte superior de este tutorial:

Demo y descarga

Los archivos finales no tienen ninguno de los elementos bloqueados en gris, y hay comentarios detallados adicionales en el archivo style.css que deberían ayudarlo a descifrar el propósito de cada clase personalizada. El archivo ZIP incluye imágenes recortadas de varios carteles de películas, que son propiedad de sus respectivos propietarios. Los archivos de cuadrícula de Blueprint CSS no están incluidos en el ZIP.

Tenga en cuenta que pueden existir algunas discrepancias menores entre los archivos de origen y el código presentado anteriormente.




Pensamientos finales

Algunos comentarios finales sobre el ejemplo en este tutorial:

  1. El código presentado aquí es un poco torpe con su extra div etiquetas, pero se utilizan para ilustrar claramente un proceso de diseño basado en cuadrícula. Específicamente, he extendido la maqueta y el proceso de codificación para resaltar las posibles etapas. Muchos de los elementos de diseño pueden ser ajustados y sus correspondientes clases div eliminadas en el archivo CSS.
  2. A medida que se acostumbre al uso de marcos de cuadrícula CSS, es probable que comprima las tres etapas de la maqueta de cuadrícula CSS que se discutieron anteriormente en una sola etapa, especialmente si tiene un segmento de diseño gráfico para comenzar..
  3. Este no es el único proceso para el diseño de páginas basado en cuadrícula. Para un tratamiento mucho más profundo del diseño de la red, consulte la serie de Mark Boulton, Cinco pasos simples para diseñar sistemas de red..

Este no es un ejemplo complejo, ni un tema completo para una plataforma de blog, pero espero que le ayude a entender cómo usar las cuadrículas de CSS para el diseño de páginas web. Si bien el código aquí es para una página estática, el siguiente paso es integrarlo con una plataforma de blog para generar una plantilla de página de inicio..