{"id":229911,"date":"2022-11-23T13:00:00","date_gmt":"2022-11-23T10:00:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229911"},"modified":"2022-11-09T19:15:29","modified_gmt":"2022-11-09T16:15:29","slug":"centrar-dinamicamente-un-elemento-en-un-contenedor-usando-css","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/centrar-dinamicamente-un-elemento-en-un-contenedor-usando-css\/","title":{"rendered":"Centrar din\u00e1micamente un elemento en un contenedor usando CSS"},"content":{"rendered":"\n<p>Cuando se trata de escribir sobre desarrollo, no suelo hablar de cosas m\u00e1s all\u00e1 de PHP y JavaScript, principalmente porque trabajo con esos lenguajes m\u00e1s que con otros.<\/p>\n<p>Quiero decir, s\u00ed, CSS es parte del trato al igual que HTML, pero se espera en estos d\u00edas, \u00bfverdad?<\/p>\n<p>Entonces, si alguna vez tuve un consejo r\u00e1pido para ofrecer con respecto a CSS, es este (aunque tal vez deber\u00eda escribir m\u00e1s). Es dif\u00edcil cuando <strong><a href=\"https:\/\/twitter.com\/chriscoyier\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Chris<\/a><\/strong> hace un trabajo incre\u00edble ejecutando <strong><a href=\"https:\/\/css-tricks.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CSS Tricks<\/a><\/strong>, pero estoy divagando.<\/p>\n<p>De todos modos, aqu\u00ed est\u00e1 el problema y la soluci\u00f3n.<\/p>\n<h2>Centrar din\u00e1micamente un elemento en un contenedor<\/h2>\n<p>La idea de centrar din\u00e1micamente un elemento se basa en el siguiente escenario:<\/p>\n<ul>\n<li>Est\u00e1 realizando una llamada a una API que responder\u00e1 con un conjunto de, por ejemplo, im\u00e1genes una vez que se complete la llamada.<\/li>\n<li>Debe centrar cada imagen dentro de su contenedor.<\/li>\n<li>Las im\u00e1genes no tendr\u00e1n una altura fija y deber\u00e1n colocarse y centrarse din\u00e1micamente dentro de los contenedores en la interfaz de usuario.<\/li>\n<\/ul>\n<p>Tal vez esto es todav\u00eda un poco general. Si es as\u00ed, supongamos que tiene una lista (ordenada o desordenada, no importa). Tienen una altura y un ancho fijos, y vas a colocar las im\u00e1genes, escaladas, dentro de cada elemento.<\/p>\n<p>Recuerde: no puede colocar cosas como\u00a0 elementos <strong>div<\/strong> dentro de elementos <strong>li<\/strong> (porque un <strong>div<\/strong> es un elemento a nivel de bloque) sin cambiarlo a trav\u00e9s de alg\u00fan CSS. Y queremos evitar hacer eso.<\/p>\n<p>Entonces, en \u00faltima instancia, la interfaz de usuario puede verse as\u00ed (crudo, lo s\u00e9):<\/p>\n<p>Si desea que cada imagen se coloque dentro del elemento de la lista, desea que tenga una cierta altura escalada y desea que est\u00e9 centrada, <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/6fcfa9dd108af20920c937b2a1fa66c4\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">intente con el siguiente c\u00f3digo<\/a><\/strong> :<\/p>\n<pre><code>.acme-element {\n  position:   relative;\n  top:        50%;\n  transform:  translateY(-50%);\n  height:     auto;\n  max-height: 190px;\n}<\/code><\/pre>\n<p>La clave de esto, realmente, es el estilo de transformaci\u00f3n. <strong><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/transform-function\/translateY\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Seg\u00fan MDN<\/a><\/strong> :<\/p>\n<blockquote>\n<p>La funci\u00f3n CSS translateY() reposiciona un elemento verticalmente en el plano 2D. Su resultado es un tipo de dato.<\/p>\n<\/blockquote>\n<p>\u00bfTener sentido?<\/p>\n<p>Pi\u00e9nselo de esta manera: la funci\u00f3n <strong>translateY<\/strong> tomar\u00e1 un elemento dado (identificado por su selector) y lo posicionar\u00e1 usando el valor especificado.<\/p>\n<h2>Se trata de transformaciones<\/h2>\n<p>Puede usar p\u00edxeles, porcentajes o lo que sea que necesite para que esto suceda. En este caso, son porcentajes (y son negativos). Aunque estoy usando un ejemplo de mi implementaci\u00f3n, tambi\u00e9n pretende ser un consejo sobre c\u00f3mo usar la funci\u00f3n <strong>transformY<\/strong> en relaci\u00f3n con las transformaciones.<\/p>\n<p>Si la compatibilidad del navegador es importante, lo que, en algunos casos, deber\u00eda serlo, consulte <strong><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/transform-function#Browser_compatibility\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este gr\u00e1fico<\/a><\/strong>. Est\u00e1s bastante bien cubierto.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La idea de centrar din\u00e1micamente un elemento est\u00e1 muy relacionada con el trabajo que est\u00e1 haciendo, pero tal vez el uso de transformaciones ayude.<\/p>\n","protected":false},"author":1,"featured_media":220880,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[903,831,840],"tags":[1172],"class_list":["post-229911","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-css-2","category-guia-para-principiantes","category-tutoriales","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=229911"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229911\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/220880"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=229911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=229911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=229911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}