Los cuadros de InDesign son tan simples como hacer clic y arrastrar. Las capas de Photoshop permiten a los pintores colorear píxeles en cualquier lugar que quieran. Pero el diseño con HTML y CSS es un juego de empuje y cascada.
Ocurre todos los días: los directores de arte expertos en Photoshop se burlan de los diseños, puliendo su espacio, eligiendo cuidadosamente los tipos de letra y los colores adecuados. Entregan su trabajo a un entusiasta desarrollador de HTML, quien anuncia que el diseño probablemente demorará días en convertirse en HTML / CSS funcional. Peor aún, harán cambios para tener en cuenta los diferentes tamaños de pantalla. El tiempo es un misterio para ambas partes. ¿Le tomará al desarrollador una hora o una semana convertir su PSD en HTML / CSS funcional?
Los fundamentos del diseño web: lo posible, lo práctico, las posibilidades, son fáciles de comprender. Al igual que el diseño en sí, la comprensión de los principios ayudará a cualquier diseñador a producir mejores diseños y agilizar el proceso de construcción de un sitio.
Todo en una página web, desde párrafos hasta imágenes hasta enlaces a texto en negrita, reside en recuadros invisibles. Estas cajas vienen en dos variedades: bloque y en línea. La diferencia entre inline y block radica en su comportamiento.
Los elementos del bloque se amontonan uno encima del otro. A menos que se indique lo contrario, ocupan tanto espacio horizontal como sea posible, empujando hacia arriba o hacia abajo todo lo que los rodea. Para el diseño, los elementos de bloque son la herramienta de diseño principal.
Los elementos en línea se basan en el formato de texto. No rompen el flujo de texto, y sus dimensiones se expanden para ajustarse a sus contenidos. Decirle a un elemento en línea que mantenga un ancho de 200 píxeles no funcionará. Llenarlo con texto lo hará.
Por defecto, cada elemento en el es un elemento en línea o bloque. Los diseñadores pueden cambiar su naturaleza con un poco de CSS, por ejemplo, convirtiendo una pila de elementos de lista (bloques nativos) en una fila, o una serie de enlaces horizontales (de forma nativa en línea) en una pila vertical. Eso significa que cualquier elemento visible se puede usar para el diseño. Si deberían depende del diseño en cuestión.
Los elementos de bloque nativos incluyen:
- Párrafos
- Liza
- Artículos en una lista
- Encabezados
-
- Mesas
- Cotizaciones en bloque
- Organizadores en HTML5
,
,
,
y
- El cuerpo mismo
Los elementos en línea incluyen:
- Anclajes (hipervínculos)
- Negrita
y
- Itálico
y
- Imágenes
- Citaciones
- Tipo de estilo
- Etiquetas de formulario
- Depende de usted
Etiquetas comunes que no son ni en bloque ni en línea:
- El título del documento
- Metaetiquetas
- Etiquetas de script
- Etiquetas de enlace
A primera vista, adaptarse a la mentalidad de lego parece contradictorio en un medio que permite gradientes, curvas y diseños elásticos. Pero la idea de todo como un ladrillo es crucial para entender dónde se encuentran el contenido y la presentación.
Pauta: cada par de etiquetas (o etiquetas independientes como
) en el cuerpo representa una caja.
Uso de bloques para el diseño
Elimine un marco de texto en InDesign y la foto adyacente no se moverá porque ninguna de las ubicaciones depende del otro. Aplique curvas en una capa de Photoshop, y ninguna otra capa cambiará porque las curvas afectan una capa a la vez. Pero elimine un elemento en HTML, y todo lo que se encuentre después de ese elemento probablemente cambie. Los bloques en una página web se apilan en la esquina superior izquierda de su contenedor, como
u otro bloque.
Todo el diseño web se logra con elementos de bloque. Los diseñadores usan bloques, la mayoría de las veces elementos, para crear áreas rectangulares en las que encaja todo el contenido. Solo hay cuatro reglas: - Ancho total: el espacio que un elemento ocupa y afecta.
- Float: Alteración de la tendencia de los bloques a apilarse.
- Claro: Reconstruyendo las pilas.
- Nido: los elementos se encuentran uno dentro del otro o no. No hay mitad de camino.
Cada regla tiene advertencias ... pero ninguna es necesaria para armar una página.
(Los expertos en CSS reconocerán que estas reglas se aplican a los elementos con un posicionamiento relativo. El posicionamiento absoluto es un animal diferente, y menos común).
1. Ancho total = caja y buffer
El ancho total es la cantidad de espacio horizontal que ocupa un bloque. Esto incluye el margen, el borde y el relleno del bloque. En el lenguaje de la impresión, margen y relleno son tipos de canaletas. Pero a diferencia del espacio negativo tradicional, creado al empujar cajas separadas, el relleno y el margen son parte de una caja. Son como kerning para elementos de diseño.
Calcular ancho, relleno y margen es a menudo el mayor dolor de cabeza para los diseñadores, pero las reglas restantes son un poco más directas.
2. Flotando golpea bloques desde la pila
Flotante empuja un elemento de bloque hacia la izquierda o hacia la derecha, eliminándolo de la pila natural. Cuando una cuadra flota, deja espacio para que todo lo que está por debajo se eleve alrededor del otro lado.
Las columnas surgen cuando una serie de bloques flotan uno junto al otro.
3. Compensación: permite a los diseñadores organizar una página tanto horizontal como verticalmente
Un desafortunado efecto secundario de la flotación es su impacto en el contenedor. Un contenedor crecerá verticalmente para adaptarse a su contenido, excepto aquellos que flotan. Si todo flota, entonces la caja no tiene altura. Cualquier cosa debajo se levanta debajo de los elementos flotantes. Caos sobreviene.
El borrado reanuda la tendencia natural de los bloques a apilarse. En efecto, le recuerda a un contenedor que tiene algo que contener. Sin borrar, los diseñadores no pueden organizar una página tanto horizontal como verticalmente.
4. Anidamiento
El anidamiento es simple: cada bloque debe residir completamente en otro bloque. Ningún bloque puede extenderse fuera de sus límites sin consecuencias graves, y no se pueden solapar parcialmente dos bloques.
Las columnas deben caber, o bien
Aquí es donde los diseñadores deben realizar un poco de matemáticas. Para ajustar las columnas correctamente, la suma de sus anchuras totales debe ser menor que el ancho de su contenedor.
Las columnas son una serie de elementos de bloque que empuja a la izquierda o, en ocasiones más raras, a la derecha. Si estas columnas son demasiado anchas para su contenedor, sin técnicas especiales, la última columna quedará por debajo de las demás.
Un diseño simple podría usar tres elementos para crear un diseño de dos columnas:
…
Arriba, el ejemplo de la izquierda usa este CSS:
#container { width: 1000px; }
#main-content { width: 600px; padding: 20px; }
#sidebar { width: 340px; padding: 10px; }
El contenedor mide 1000 píxeles de ancho. El bloque de contenido principal tiene 640 píxeles de ancho, 600 de ancho + 20 píxeles de relleno en cada lado. El bloque de la barra lateral tiene 360 píxeles de ancho, 340 de ancho + 10 píxeles de relleno en cada lado. (600 + 20 + 20) + (340 + 10 + 10) = 1000. Un ajuste perfecto.
En el ejemplo de la derecha, sin embargo, algo es demasiado amplio. Podría ser el relleno de la columna o el ancho de las columnas. Tal vez el contenedor es demasiado estrecho. Cambiar cualquiera de esos factores para hacer que el contenedor sea más ancho que las columnas resolvería el problema.
Las excepciones requieren más código; la uniformidad requiere menos
A diferencia de los medios visuales más tradicionales, es decir, la escultura o el diseño gráfico, escribir código requiere una imagen mental fuerte de lo que hará el código.
Algunos aspectos del diseño por código son obvios. Los diseños simples a menudo usan menos código que los diseños complejos. Si la solución a un problema de diseño requiere que cada widget, columna y pieza de texto tengan su propio color de fondo, que así sea. Solo requiere más código.
- Si una parte del texto es más grande que otras, entonces necesita su propia entrada en el archivo CSS.
- Si dos columnas tienen diferentes anchuras, entonces el archivo CSS debe especificar anchuras para cada una.
- Si un diseño requiere tres tipos de viñetas, el CSS requiere tres definiciones.
Un hecho menos obvio de diseño por código es que es ... menos obvio. La imaginación y la experiencia son especialmente necesarias en el diseño de la página de programación, donde el cambio del margen de una columna afectará a sus vecinos. En la transición del diseño impreso al diseño web, al no imaginarse el resultado, surgen nuevos desarrolladores.
Eso no color:blue
es difícil de entender Pero una cosa es escribir div { background: url(photo.jpg) top left no-repeat; }
y otra para ver una foto en el contexto de la página.
Afortunadamente, algunas analogías facilitan la curva de aprendizaje.
- Piense en CSS como que trabaja completamente con estilos de párrafo. Alterar un artículo sobre la marcha es engorroso. CSS funciona mejor cuando se aplica a una clasificación completa de imágenes o palabras (de ahí el atributo "clase" en HTML).
- Imagine ver un cuarto de página a la vez. En un momento dado, los usuarios solo ven parte de una página web porque la mayoría de las páginas web son más grandes que la ventana promedio del navegador. Los usuarios finales solo ven una pieza a la vez. El "doblez" ocurre en los cuatro lados del navegador.
- Pregúntese "¿y si cada elemento se duplicó en cantidad?" Los buenos diseños presentan el contenido bien en el lanzamiento. Los grandes diseños web continúan haciéndolo. Las plantillas de artículos deben acomodar artículos de longitud variable. Los administradores de contenido eliminarán el texto antiguo o agregarán nuevas fotos que no se ajusten a las proporciones planificadas. Los clientes deciden que quieren sus cinco tweets más recientes en la página de inicio. Nadie sabe cómo un sitio puede cambiar, pero planificar para diferentes cantidades de todo es una buena precaución.
Hacia adelante
Los beneficios de comprender el diseño web son saber lo que es posible, evitar peligros comunes y tiempos de desarrollo más rápidos. Pero aprender a diseñar con HTML / CSS en mente requiere un cambio en el pensamiento. Sistemas CSS como el 960 Grid System minimice el trabajo técnico requerido, facilitando la transición del trabajo de píxel puro al código. Pero como aprender cualquier idioma, la mejor herramienta puede ser la persistencia.
¿Qué te da más problemas para convertir maquetas en HTML y CSS? Comparta sus experiencias y soluciones en los comentarios a continuación.