{"id":1500,"date":"2024-08-02T06:57:02","date_gmt":"2024-08-02T04:57:02","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?page_id=1500"},"modified":"2024-08-02T06:57:02","modified_gmt":"2024-08-02T04:57:02","slug":"05-propiedades-de-alineacion","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/css3\/flex-css\/05-propiedades-de-alineacion\/","title":{"rendered":"05. Propiedades de alineaci\u00f3n"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ahora que disponemos de un control b\u00e1sico del contenedor de estos \u00edtems flexibles, debemos conocer las propiedades existentes dentro de <strong>flexbox<\/strong> para disponer los \u00edtems dependiendo de nuestro objetivo. Echemos un vistazo a 4 propiedades interesantes para ello, la primera de ellas act\u00faa en el eje principal, mientras que el resto en el eje secundario.<\/p>\n\n\n\n<!--more-->\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Propiedad<\/th><th>Valor<\/th><th>Eje<\/th><\/tr><\/thead><tbody><tr><td><strong><em><code>justify-content<\/code><\/em><\/strong><\/td><td><em><strong>flex-start<\/strong><\/em>&nbsp;| <em>flex-end<\/em> | <em>center<\/em> | <em>space-between<\/em> | <em>space-around<\/em> | <em>space-evenly<\/em><\/td><td>1\ufe0f\u20e3<\/td><\/tr><tr><td><strong><em><code>align-content<\/code><\/em><\/strong><\/td><td><em>flex-start<\/em> | <em>flex-end<\/em> | <em>center<\/em> | <em>space-between<\/em> | <em>space-around<\/em> | <em>space-evenly<\/em> |&nbsp;<em><strong>stretch<\/strong><\/em><\/td><td>2\ufe0f\u20e3<\/td><\/tr><tr><td><code><strong><em>align-items<\/em><\/strong><\/code><\/td><td><em>flex-start<\/em> | <em>flex-end<\/em> | <em>center<\/em> |&nbsp;<em><strong>stretch<\/strong>&nbsp;<\/em>| <em>baseline<\/em><\/td><td>2\ufe0f\u20e3<\/td><\/tr><tr><td><code><strong><em>align-self<\/em><\/strong><\/code><\/td><td><em><strong>auto<\/strong>&nbsp;<\/em>| <em>flex-start<\/em> | <em>flex-end<\/em> | <em>center<\/em> | <em>stretch<\/em> | <em>baseline<\/em><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">De esta peque\u00f1a lista, hay que centrarse en primer lugar en la primera y la tercera propiedad, que son las m\u00e1s importantes.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code><strong><em>justify-content<\/em><\/strong><\/code>: Se utiliza para alinear los \u00edtems del\u00a0<strong>eje principal<\/strong>\u00a0(<em>por defecto, el horizontal<\/em>).<\/li>\n\n\n\n<li><code><strong><em>align-items<\/em><\/strong><\/code>: Usada para alinear los \u00edtems del\u00a0<strong>eje secundario<\/strong>\u00a0(<em>por defecto, el vertical<\/em>).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Sobre el eje principal<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La primera propiedad,&nbsp;<code><strong><em>justify-content<\/em><\/strong><\/code>, sirve para colocar los \u00edtems de un contenedor mediante una disposici\u00f3n concreta a lo largo del&nbsp;<strong>eje principal<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Valor<\/th><th>Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td><em><strong>flex-start<\/strong><\/em><\/td><td>Agrupa los \u00edtems al principio del eje principal.<\/td><\/tr><tr><td><em>flex-end<\/em><\/td><td>Agrupa los \u00edtems al final del eje principal.<\/td><\/tr><tr><td><em>center<\/em><\/td><td>Agrupa los \u00edtems al centro del eje principal.<\/td><\/tr><tr><td><em>space-between<\/em><\/td><td>Distribuye los \u00edtems dejando el m\u00e1ximo espacio para separarlos.<\/td><\/tr><tr><td><em>space-around<\/em><\/td><td>Distribuye los \u00edtems dejando el mismo espacio alrededor de ellos (izq\/dcha).<\/td><\/tr><tr><td><em>space-evenly<\/em><\/td><td>Distribuye los \u00edtems dejando el mismo espacio (solapado) a izquierda y derecha.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez entendido este caso, debemos atender a la propiedad&nbsp;<code><strong><em>align-content<\/em><\/strong><\/code>, que es un caso particular del anterior. Nos servir\u00e1 cuando estemos tratando con un <strong>contenedor<\/strong> <strong>flex&nbsp;multilinea<\/strong>, que es un contenedor en el que los \u00edtems no caben en el ancho disponible, y por lo tanto, el eje principal se divide en m\u00faltiples l\u00edneas (por ejemplo, usando <em><strong>flex-wrap: wrap<\/strong><\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De esta forma,&nbsp;<code><strong><em>align-content<\/em><\/strong><\/code>&nbsp;servir\u00e1 para alinear cada una de las l\u00edneas del <strong>contenedor&nbsp;multilinea<\/strong>. Los valores que puede tomar son los siguientes.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Valor<\/th><th>Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td><em>flex-start<\/em><\/td><td>Agrupa los \u00edtems al principio del eje principal.<\/td><\/tr><tr><td><em>flex-end<\/em><\/td><td>Agrupa los \u00edtems al final del eje principal.<\/td><\/tr><tr><td><em>center<\/em><\/td><td>Agrupa los \u00edtems al centro del eje principal.<\/td><\/tr><tr><td><em>space-between<\/em><\/td><td>Distribuye los \u00edtems desde el inicio hasta el final.<\/td><\/tr><tr><td><em>space-around<\/em><\/td><td>Distribuye los \u00edtems dejando el mismo espacio a los lados de cada uno.<\/td><\/tr><tr><td><em><strong>stretch<\/strong><\/em><\/td><td>Estira los \u00edtems para ocupar de forma equitativa todo el espacio.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Con estos valores, observaremos como cambia la disposici\u00f3n en vertical (partimos de que estamos utilizando <em><strong>flex-direction: row<\/strong>, <\/em>y el eje principal es horizontal) de los \u00edtems que est\u00e1n dentro de un <strong>contenedor multilinea<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&nbsp; &nbsp; &nbsp; .container {\n&nbsp; &nbsp; &nbsp; &nbsp; background: #ccc;\n&nbsp; &nbsp; &nbsp; &nbsp; display: flex;\n&nbsp; &nbsp; &nbsp; &nbsp; width: 200px;\n&nbsp; &nbsp; &nbsp; &nbsp; height: 200px;\n&nbsp; &nbsp; &nbsp; &nbsp; flex-wrap: wrap;\n&nbsp; &nbsp; &nbsp; &nbsp; align-content: flex-end;\n&nbsp; &nbsp; &nbsp; }\n\n&nbsp; &nbsp; &nbsp; .item {\n&nbsp; &nbsp; &nbsp; &nbsp; background: #777;\n&nbsp; &nbsp; &nbsp; &nbsp; width: 50%;\n&nbsp; &nbsp; &nbsp; &nbsp; height: 50px;\n&nbsp; &nbsp; &nbsp; }<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Sobre el eje secundario<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La otra propiedad importante de este apartado es&nbsp;<code><strong><em>align-items<\/em><\/strong><\/code>, que se encarga de alinear los \u00edtems en el eje secundario del contenedor. Hay que tener cuidado de no confundir&nbsp;<code><strong><em>align-content<\/em><\/strong><\/code>&nbsp;con&nbsp;<code><strong><em>align-items<\/em><\/strong><\/code>, puesto que el primero act\u00faa sobre cada una de las l\u00edneas de un contenedor multilinea (<em>no tiene efecto sobre contenedores de una sola l\u00ednea<\/em>), mientras que&nbsp;<code><strong><em>align-items<\/em><\/strong><\/code> lo hace sobre la l\u00ednea actual. Los valores que puede tomar son los siguientes.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Valor<\/th><th>Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td><em>flex-start<\/em><\/td><td>Alinea los \u00edtems al principio del eje secundario.<\/td><\/tr><tr><td><em>flex-end<\/em><\/td><td>Alinea los \u00edtems al final del eje secundario.<\/td><\/tr><tr><td><em>center<\/em><\/td><td>Alinea los \u00edtems al centro del eje secundario.<\/td><\/tr><tr><td><em><strong>stretch<\/strong><\/em><\/td><td>Alinea los \u00edtems estir\u00e1ndolos de modo que cubran desde el inicio hasta el final del contenedor.<\/td><\/tr><tr><td><em>baseline<\/em><\/td><td>Alinea los \u00edtems en el contenedor seg\u00fan la base del contenido de los \u00edtems del contenedor.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Por otro lado, la propiedad&nbsp;<code><strong><em>align-self<\/em><\/strong><\/code>&nbsp;act\u00faa exactamente igual que&nbsp;<code><strong><em>align-items<\/em><\/strong><\/code>, sin embargo es la primera propiedad de flexbox que vemos que se utiliza sobre un \u00edtem hijo espec\u00edfico y no sobre el elemento contenedor. Salvo por este detalle, funciona exactamente igual que&nbsp;<code><strong><em>align-items<\/em><\/strong><\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gracias a ese detalle,&nbsp;<code><strong><em>align-self<\/em><\/strong><\/code>&nbsp;nos permite cambiar el comportamiento de&nbsp;<code><strong><em>align-items<\/em><\/strong><\/code> y sobreescribirlo con comportamientos espec\u00edficos para \u00edtems concretos que no queremos que se comporten igual que el resto. La propiedad puede tomar los siguientes valores.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Valor<\/th><th>Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td><em>flex-start<\/em><\/td><td>Alinea los \u00edtems al principio del contenedor.<\/td><\/tr><tr><td><em>flex-end<\/em><\/td><td>Alinea los \u00edtems al final del contenedor.<\/td><\/tr><tr><td><em>center<\/em><\/td><td>Alinea los \u00edtems al centro del contenedor.<\/td><\/tr><tr><td><em>stretch<\/em><\/td><td>Alinea los \u00edtems estir\u00e1ndolos al tama\u00f1o del contenedor.<\/td><\/tr><tr><td><em>baseline<\/em><\/td><td>Alinea los \u00edtems en el contenedor seg\u00fan la base de los \u00edtems.<\/td><\/tr><tr><td><em><strong>auto<\/strong><\/em><\/td><td>Hereda el valor de&nbsp;<strong>align-items<\/strong>&nbsp;del padre (si no se ha definido, es&nbsp;<strong>stretch<\/strong>).<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Atajo: alineaciones<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Existe una propiedad que sirve de atajo con la que se pueden establecer los valores de <code><strong><em>align-content<\/em><\/strong><\/code>&nbsp;y de&nbsp;<code><strong><em>justify-content<\/em><\/strong><\/code>&nbsp;de una sola vez, denominada&nbsp;<code><strong><em>place-content.<\/em><\/strong><\/code><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&nbsp; &nbsp; &nbsp; .container {\n&nbsp; &nbsp; &nbsp; &nbsp; display: flex;\n&nbsp; &nbsp; &nbsp; &nbsp; place-content: flex-start flex-end;\n&nbsp; &nbsp; &nbsp; &nbsp; \/* Equivalente a... *\/\n&nbsp; &nbsp; &nbsp; &nbsp; align-content: flex-start;\n&nbsp; &nbsp; &nbsp; &nbsp; justify-content: flex-end;\n&nbsp; &nbsp; &nbsp; }<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ahora que disponemos de un control b\u00e1sico del contenedor de estos \u00edtems flexibles, debemos conocer las propiedades existentes dentro de flexbox para disponer los \u00edtems dependiendo de nuestro objetivo. Echemos un vistazo a 4 propiedades interesantes para ello, la primera de ellas act\u00faa en el eje principal, mientras que el resto en el eje secundario.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1484,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1500","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"Ahora que disponemos de un control b\u00e1sico del contenedor de estos \u00edtems flexibles, debemos conocer las propiedades existentes dentro de flexbox para disponer los \u00edtems dependiendo de nuestro objetivo. Echemos un vistazo a 4 propiedades interesantes para ello, la primera de ellas act\u00faa en el eje principal, mientras que el resto en el eje secundario.","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1500"}],"version-history":[{"count":2,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1500\/revisions"}],"predecessor-version":[{"id":1502,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1500\/revisions\/1502"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1484"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}