Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
clase:daw:diw:1eval:tema05 [2022/11/20 19:33] admin [Grid] |
clase:daw:diw:1eval:tema05 [2024/11/03 22:33] (actual) admin [Flexbox] |
||
---|---|---|---|
Línea 15: | Línea 15: | ||
Vamos a explicar flex con el siguiente ejemplo: | Vamos a explicar flex con el siguiente ejemplo: | ||
<sxh html> | <sxh html> | ||
- | <div class=" | + | <div class=" |
- | < | + | < |
- | < | + | < |
- | < | + | < |
- | < | + | < |
- | < | + | < |
</ | </ | ||
</ | </ | ||
Línea 26: | Línea 26: | ||
<sxh css> | <sxh css> | ||
- | .container | + | .l-flex |
display: | display: | ||
- | justify-content: | ||
- | align-content: | ||
- | align-items: | ||
} | } | ||
+ | .l-flex--direction-row { | ||
+ | flex-direction: | ||
+ | } | ||
+ | .l-flex--justify-content-center { | ||
+ | justify-content: | ||
+ | } | ||
+ | |||
+ | .l-flex__area--grow-2 { | ||
+ | flex-grow:2 | ||
+ | } | ||
</ | </ | ||
Como vemos hay dos tipos de elementos, el contenedor y los items que hay centro. El contenedor siempre tendrá la siguiente línea '' | Como vemos hay dos tipos de elementos, el contenedor y los items que hay centro. El contenedor siempre tendrá la siguiente línea '' | ||
+ | |||
+ | * Veamos otro ejemplo: | ||
+ | |||
+ | <sxh html> | ||
+ | <div class=" | ||
+ | <div clas=" | ||
+ | | ||
+ | <div class=" | ||
+ | <div clas=" | ||
+ | <div clas=" | ||
+ | </ | ||
+ | | ||
+ | </ | ||
+ | <div clas=" | ||
+ | <div clas=" | ||
+ | <div clas=" | ||
+ | <div clas=" | ||
+ | </ | ||
+ | </ | ||
Ahora veremos algunas de las opciones que permite flex. | Ahora veremos algunas de las opciones que permite flex. | ||
Línea 98: | Línea 124: | ||
==== flex-grow ==== | ==== flex-grow ==== | ||
- | Permite que crezca el item si hay mas espacio. | + | Permite que crezca el item si hay mas espacio. Por defecto el valor es '' |
- | * '' | + | |
+ | | ||
+ | * '' | ||
{{: | {{: | ||
- | < | + | |
+ | < | ||
+ | |||
+ | En el siguiente ejemplo, '' | ||
+ | <sxh html> | ||
+ | <div style=" | ||
+ | <div style=" | ||
+ | <div style=" | ||
+ | <div style=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <note tip> | ||
+ | Si definimos '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== flex-shrink ==== | ||
+ | Indica que un item puede reducir su tamaño en comparación con otros items cuando el contenedor es más pequeño que el tamaño total de los elementos. | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | |||
+ | Ejemplo: Si tienes tres elementos en un contenedor y uno tiene flex-shrink: | ||
+ | |||
+ | |||
+ | <note tip>Se usa entro de los " | ||
+ | |||
+ | <note tip> | ||
+ | Solo tiene sentido usar '' | ||
+ | |||
+ | Ya que si '' | ||
+ | </ | ||
+ | |||
+ | ==== flex-basis ==== | ||
+ | Define el tamaño inicial de un item antes de que se aplique el crecimiento o la reducción. Es el tamaño en el que se basa el elemento antes de que el espacio adicional sea distribuido (con '' | ||
+ | |||
+ | <note tip>Se usa entro de los " | ||
+ | |||
+ | Veamos ahora un ejemplo completo de las 3 propiedades: | ||
+ | |||
+ | <sxh python> | ||
+ | < | ||
+ | <html lang=" | ||
+ | < | ||
+ | <meta charset=" | ||
+ | <meta name=" | ||
+ | < | ||
+ | < | ||
+ | .container { | ||
+ | display: flex; | ||
+ | } | ||
+ | .item { | ||
+ | border: 1px solid #FF0000; | ||
+ | } | ||
+ | .item1 { | ||
+ | flex-basis: 300px; | ||
+ | flex-shrink: | ||
+ | } | ||
+ | .item2 { | ||
+ | flex-basis: 300px; | ||
+ | flex-shrink: | ||
+ | } | ||
+ | .item3 { | ||
+ | flex-grow: | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | La explicación es: | ||
+ | * El '' | ||
+ | * El '' | ||
+ | * El '' | ||
+ | |||
==== flex ==== | ==== flex ==== | ||
Es poner en una misma linea '' | Es poner en una misma linea '' | ||
- | |||
- | * '' | ||
- | < | + | < |
Mas información en: | Mas información en: | ||
Línea 163: | Línea 275: | ||
* [[https:// | * [[https:// | ||
* Mas información: | * Mas información: | ||
- | * [https:// | + | * [[https:// |
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
Línea 263: | Línea 375: | ||
* '' | * '' | ||
</ | </ | ||
+ | |||
+ | ==== Ejemplo ==== | ||
+ | Veamos ahora un ejemplo de la diferencia entre '' | ||
+ | |||
+ | <sxh css> | ||
+ | .container { | ||
+ | display: | ||
+ | grid-template-columns: | ||
+ | } | ||
+ | .container2 { | ||
+ | display: | ||
+ | grid-template-columns: | ||
+ | } | ||
+ | .container3 { | ||
+ | display: | ||
+ | grid-template-columns: | ||
+ | } | ||
+ | |||
+ | .container4 { | ||
+ | display: | ||
+ | grid-template-columns: | ||
+ | } | ||
+ | | ||
+ | .item { | ||
+ | border:1px solid red; | ||
+ | } | ||
+ | .item2 { | ||
+ | border:1px solid green; | ||
+ | } | ||
+ | .item3 { | ||
+ | border:1px solid blue; | ||
+ | } | ||
+ | |||
+ | .item4 { | ||
+ | border:1px solid pink; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | <sxh html> | ||
+ | < | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | </ | ||
+ | <br> | ||
+ | < | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | </ | ||
+ | <br> | ||
+ | < | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | </ | ||
+ | |||
+ | </ | ||
==== grid-template-rows ==== | ==== grid-template-rows ==== | ||
Línea 281: | Línea 481: | ||
<note important> | <note important> | ||
La propiedad '' | La propiedad '' | ||
+ | |||
+ | |||
==== Bloque de Layout por columnas ==== | ==== Bloque de Layout por columnas ==== | ||
Línea 328: | Línea 530: | ||
</ | </ | ||
- | <note tip> | + | ==== span ==== |
- | {{ : | + | Se puede hacer que un elemento ocupe más de una columna con '' |
- | Para aprender Grid puede jugar a [[https://cssgridgarden.com/#es|Grid Garden | + | |
- | </note> | + | <sxh css> |
+ | .l-columns | ||
+ | display: grid; | ||
+ | } | ||
+ | |||
+ | .l-columns--4{ | ||
+ | grid-template-columns: | ||
+ | } | ||
+ | |||
+ | .l-columns__area { | ||
+ | |||
+ | } | ||
+ | .l-columns__area--span-2 { | ||
+ | grid-column: span 2; | ||
+ | } | ||
+ | </sxh> | ||
+ | |||
+ | |||
+ | <sxh html> | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | <div class=" | ||
+ | </ | ||
+ | </sxh> | ||
+ | * Mas información | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
===== Reglas BEM de Layout ===== | ===== Reglas BEM de Layout ===== | ||
Para hacer una clase de Layout hay que seguir las siguientes reglas: | Para hacer una clase de Layout hay que seguir las siguientes reglas: |