05 Maquetación Web
05 Maquetación Web
MAQUETACIÓN WEB
Maquetación WEB
Antes de comenzar propiamente a maquetar deberíamos:
● mockflow.com
● moqups.com
● wireframe.cc
● balsamiq.com
● ninjamock
Maquetación WEB
Copia.
Hay millones de webs. Si ves alguna que te guste usa las herramientas de los navegadores e
investiga cómo lo han hecho. Utiliza el conocimiento de otras personas en tú favor.
Pero ojo, no te limites a copiar y pegar. Así no aprenderás. Entiende lo que están haciendo y
usa la documentación técnica si hay partes que no ves claras.
Maquetación WEB
Usa las herramientas disponibles.
● Debemos recordar que todas las etiquetas que se van a representar son cajas.
● Los navegadores no hacen NADA para controlar el diseño de nuestra página Web.
● Los navegadores, lo único que hacen es mostrar los elementos de nuestra página
HTML en el mismo ORDEN en el que los hemos escrito.
● Siguen solo dos reglas básicas dependiendo de las propiedades de las cajas:
Determinados tipos de caja se
Maquetación WEB
van poniendo unas detrás de
otros mientras quepan en la
pantalla.
Cuando no caben las cajas
pasan a la “siguiente línea” del
navegador.
Maquetación WEB Otros tipos de caja provocan un “salto
de línea”.
POSICIONAMIENTO DE ELEMENTOS
Elementos en línea
Para explicarlo de manera sencilla, y simplificando, ciertas etiquetas HTML no afectan en
absoluto al flujo de los demás elementos, limitándose a marcar ciertos fragmentos con una
determinada semántica y dejando que el texto y otros elementos contiguos sigan fluyendo
en la misma línea, colocándose a ambos lados de dicho elemento.
Ejemplos de estas etiquetas son: <a>, <em>,<del>... y quizá la más útil de todas: la etiqueta
<span>, que se usa para envolver elementos en-línea para darles estilo sin cambiar su
comportamiento. A estos elementos HTML se les llama elementos de línea o, incluso más a
menudo, por su denominación en inglés: elementos "inline".
Elementos de bloque
Por el contrario, ciertas etiquetas se renderizan en el navegador en líneas
independientes, no mezcladas con el resto del texto. Ejemplos de estas etiquetas son
los encabezados (<h1> hasta <h6>), las citas en bloque (<blockquote>), por
supuesto los párrafos (<p>), y quizá la más conocida de todas que es la etiqueta <div>
usada normalmente para envolver a otros elementos. A estos elementos se les
denomina elementos de bloque.
Ver Vídeo
En línea y en bloque, la propiedad display
Como hemos visto cada etiqueta tiene un valor por defecto. Con la propiedad display podemos cambiarlo.
Los valores que puede tomar son muchos pero los más usados son:
Referencia display
En línea y en bloque, la propiedad display
Elementos con valores relativos a tablas en la propiedad display, al poner uno de estos
valores en la propiedad display a una etiqueta HTML esta etiqueta simulará el
comportamiento del elemento de tabla análogo. De esta manera tenemos los siguientes
posibles valores.
● table
● table-row
● table-cell
● table-caption
● table-column
● table-colgroup
● table-header-group
● table-footer-group
● table-row-group
La propiedad CSS z-index
Cuando varios elementos se superponen, los elementos con mayor valor z-index se
superponen a aquellos con menor valor.
Ver
POSICIONAMIENTO DE ELEMENTOS
El posicionamiento de elementos siempre ha provocado muchos ''dolores de cabeza''
a los diseñadores web. El posicionamiento ''clásico'' se basa en un modelo de bloques
que se van colocando para llenar el espacio de la página de izquierda a derecha y de
arriba abajo. El problema de esta opción es que no se adapta fácilmente a
dispositivos móviles, donde nos encontramos con cambios de tamaño u orientación
del navegador, además de no permitir reordenar los elementos para ajustarlos a los
distintos tipos de dispositivo.
POSICIONAMIENTO DE ELEMENTOS
Por suerte existe un nuevo modelo de posicionamiento flexible que simplifica todas
estas tareas considerablemente. El modelo flexible es quizás demasiado detallado
para organizar la estructura general de la página web. En su lugar se está imponiendo
el modelo de rejilla, donde se divide el espacio en una rejilla virtual y a continuación
se indica cuántas celdas de dicha rejilla ocupa cada componente dependiendo del
tamaño y orientación del dispositivo. Estos dos modelos permiten realizar diseño
adaptativo
Modelo de bloque
Las cajas de los elementos se colocan por defecto siguiendo el ''flujo normal'', es decir,
empujando las cajas hacia la izquierda y hacia arriba. Sin embargo, podemos cambiar
el ''flujo normal'', haciendo que las cajas se posicionen según uno de los siguientes
modos de acuerdo a la propiedad position:
Absoluta (position: absolute): elimina la caja del flujo normal y coloca la caja
en una posición fija de manera absoluta con respecto a su caja contenedora.
Para colocarla se usan de nuevo las propiedades top, right, bottom y left.
Puede superponerse a otros elementos, ya que no se le reserva espacio.
Modelo de bloque
Por ejemplo, tenemos una página web que es un simple elemento main y
dentro de él tenemos un título h1, varios párrafos, un subtítulo h2 en
medio del contenido y una imagen.
Ver
Columnas
main {
column-count:4;
}
Ver
Columnas
h1 {column-span:all;}
img {display:block;column-span:all;}
A la imagen hay que añadirle un display-block;
porque la propiedad column-span sólo se aplica
Ver
a elementos de bloque.
Columnas
main { column-count:4;
column-gap: 3em;
column-rule: 1px solid #bbb;
} Ver
Columnas
Ver
La propiedad float
Permite que los elementos floten sobre el lado que se indica, mientras que
el resto de los elementos que no tienen la propiedad float definida se
encuentran alrededor.
Los elementos flotantes pueden tener tres valores: left, right y none. El
primero define que el elemento fluirá hacia la izquierda, el segundo a la
derecha, mientras que el tercero quita la propiedad.
Ver
La propiedad float
<body>
El html del ejemplo es el siguiente,
<main>
como podemos observar hemos
creado un contenedor principal main y <aside></aside>
dentro tenemos un elemento aside 3 <article></article>
article y un footer. <article></article>
<article></article>
<footer></footer>
<main>
</body>
Ver
La propiedad float
main {
Al elemento main le hemos dado un ancho
background-color: lightgrey;
del 90% y un margen superior e inferior de
20px y unos márgenes automáticos a margin: 20px auto;
izquierda y derecha para que se centre el padding: 20px;
contenido. overflow-y: auto;
width: 90%;
overflow-y: auto; Conseguimos que el }
contenido no desborde como en la
siguientes imagen.
Ver
La propiedad float
aside {
Al elemento aside le hemos dado
un ancho del 25% y que flote a la background-color: yellow;
izquierda. float: left;
width: 25%;
height: 600px;
}
Ver
La propiedad float
article {
A los elementos article le hemos
dado un ancho del 20% y que background-color: red;
flote a la izquierda. float: left;
height: 300px;
margin-left: 5%;
width: 20%;
}
Ver
La propiedad float
footer {
background-color: blue;
A los elementos article le hemos
float: left;
dado un ancho del 70% y que
height: 290px;
flote a la izquierda.
margin-left: 5%;
margin-top: 10px;
width: 70%;
}
Ver
CSS
MAQUETACIÓN FLEX
Ver
MAQUETACIÓN FLEX
display: flex;
Ver
PROPIEDADES MODIFICABLES (de los elementos flexibles)
▸ La altura
▸ La anchura
▸ El orden
▸ La alineación vertical
▸ La alineación horizontal
▸ La distribución a lo largo del contenedor
LA DIRECCIÓN: FLEX-DIRECTION
Wrap y wrap-reverse
wrap
wrap-reverse
AJUSTE FLEX-FLOW
Ver
Alineación horizontal de los elementos flexibles
Ver
Alineación vertical: align-items
Ver
Alineación vertical - Wrap (cuando tengo varias líneas)
● flex-start
● flex-end
● center
● stretch
● space-between
● space-around
Alineación vertical - Wrap (cuando tengo varias líneas)
Alineación vertical - Wrap (cuando tengo varias líneas)
El orden de los elementos flexibles.
Ver
Ajustando el tamaño de los elementos flexibles.
Ver
Alineación vertical
▸ flext-start
▸ flex-end
▸ center
▸ baseline
MAQUETACIÓN GRID
Ver
MAQUETACIÓN GRID
La idea principal que hay detrás de la maquetación GRID es que vamos a tener un
elemento, es decir, un etiqueta que nos va a permitir controlar propiedades de los
elementos que contiene y establecer estructuras complejas para distribuirlos.
.container {
display: grid;
}
Para empezar a maquetar usando GRID lo primero que tenemos que hacer es definir
cuál de nuestras etiquetas HTML se va a convertir en el contenedor GRID. Una vez lo
hemos decidido le daremos una de estas propiedades:
Una vez hemos decidido que estructura queremos usaremos una serie de propiedades
para definirla. Las más importantes para empezar son las siguientes:
/* Tres columnas cada una con nombre (entre []). Dos con tamaño fijo y
la otra ocupando el espacio restante */
grid-template-colums: [id] 100px [nombre] 300px [apellidos] auto;
MAQUETACIÓN GRID. Definición de la estructura del GRID
Ejemplos con filas:
/* Tres filas que se reparten toda la altura del contenedor (la que sea) */
grid-template-rows: 20% 50% 30%;
/* Cuatro filas. Tres de altura fija 100px y la otra ocupará el resto del
espacio libre hasta llenar todo el contenedor en altura.*/
grid-template-rows: 100px auto 100px 100px;
/* Tres filas (todas con nombre, entre corchetes) Dos de ellas con tamaño
fijo y la restante ocupará todo el alto libre. */
grid-template-rows: [uno] 100px [dos] 300px [tres] auto;
MAQUETACIÓN GRID. Definición de la estructura del GRID
En estas dos propiedades también puedo repetir valores y usar la unidad fr que me sirve
para establecer ratios para que los elementos se repartan el espacio restante. Podemos
verlo mejor con un par de ejemplos.
Ver
MAQUETACIÓN GRID. Alineación Horizontal
Por defecto los elementos del GRID ocupan todo el ancho de la celda que le
corresponde pero podemos optar por otro tipo de alineaciones horizontales
dando valores a la propiedad justify-items. Los diferentes valores que puede
tomar son los siguientes:
● start
● end
● center
● stretch que es la opción por defecto.
MAQUETACIÓN GRID. Alineación Horizontal
MAQUETACIÓN GRID. Alineación Vertical
Por defecto los elementos del GRID ocupan todo el alto de la celda que le
corresponde pero podemos optar por otro tipo de alineaciones verticales dando
valores a la propiedad align-items. Los diferentes valores que puede tomar son
los siguientes:
● start
● end
● center
● stretch que es la opción por defecto.
MAQUETACIÓN GRID. Alineación Horizontal
MAQUETACIÓN GRID. Distribución dentro del contenedor
En determinados casos puede suceder que los elementos del
GRID no ocupen todo el ancho o todo el alto del contenedor GRID.
En estas ocasiones puedo distribuir las columnas y las filas usando
las propiedades justify-content (horizontal) y align-content
(vertical). Ambas puede tomar los mismos valores y para entender
mejor esos valores y cómo funcionan vamos a presentar dos
imágenes.
MAQUETACIÓN GRID. Distribución dentro del contenedor
Para la
propiedad
justify-content:
MAQUETACIÓN GRID. Distribución dentro del contenedor
Para la
propiedad
align-content:
MAQUETACIÓN GRID. Distribución dentro del contenedor
#azul {
background-color: blue;
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: uno;
grid-row-end: cuatro;
}
MAQUETACIÓN GRID. Área del elemento GRID
#rojo {
background-color: red;
grid-column-start: 2;
grid-column-end: 5;
grid-row-start: uno;
grid-row-end: dos;
}
MAQUETACIÓN GRID. Área del elemento GRID
#amarillo {
background-color: yellow;
grid-column-start: 2;
grid-column-end: 5;
grid-row-start: dos;
grid-row-end: span 2;
}
MAQUETACIÓN GRID. Área del elemento GRID
/* Para junta las cuatro propiedades que nos permiten definir el área */
background-color: blue;
grid-area: cab;
}
MAQUETACIÓN GRID. Ejemplo
#pie {
background-color: green;
grid-area: pie;
}
MAQUETACIÓN GRID. Ejemplo
#menu {
background-color: red;
grid-area: menu;
#principal {
background-color: yellow;
grid-area: main;
}
MAQUETACIÓN GRID. Ejemplo
.container {
display: grid;
grid-template-columns: repeat(5, 20%);
grid-template-rows: repeat(3, 100px);
grid-template-areas:
"cab cab cab cab cab"
"menu . main main main"
"menu pie pie pie pie";
}
1 2 3 4 5
5
1 2 3 4 5
grid-column: 1 / 5; grid-row: 1 / 2;
2
grid-column: grid-column: 2 / 4;
1 / 2;
grid-row: 2 / 3;
grid-row:
2 / 4;
3
grid-column: 1 / 5; grid-row: 4 / 5;
5