{"id":230153,"date":"2022-11-23T13:04:00","date_gmt":"2022-11-23T10:04:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230153"},"modified":"2022-11-09T20:21:07","modified_gmt":"2022-11-09T17:21:07","slug":"centrer-dynamiquement-un-element-dans-un-conteneur-a-laide-de-css","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/centrer-dynamiquement-un-element-dans-un-conteneur-a-laide-de-css\/","title":{"rendered":"Centrer dynamiquement un \u00e9l\u00e9ment dans un conteneur \u00e0 l&rsquo;aide de CSS"},"content":{"rendered":"\n<p>Quand il s&rsquo;agit d&rsquo;\u00e9crire sur le d\u00e9veloppement, je ne parle pas souvent de choses autres que PHP et JavaScript, principalement parce que je travaille avec ces langages plus que d&rsquo;autres.<\/p>\n<p>Je veux dire, oui, le CSS fait partie de l&rsquo;accord, tout comme le HTML, mais c&rsquo;est ce qu&rsquo;on attend de nos jours, n&rsquo;est-ce pas\u00a0?<\/p>\n<p>Donc, s&rsquo;il y avait un petit conseil \u00e0 donner \u00e0 propos de CSS, c&rsquo;est bien celui-ci (bien que je devrais peut-\u00eatre en \u00e9crire plus\u00a0?). C&rsquo;est difficile quand <strong><a href=\"https:\/\/twitter.com\/chriscoyier\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Chris<\/a><\/strong> fait un travail aussi g\u00e9nial en ex\u00e9cutant <strong><a href=\"https:\/\/css-tricks.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CSS Tricks<\/a><\/strong>, mais je m&rsquo;\u00e9loigne du sujet.<\/p>\n<p>Quoi qu&rsquo;il en soit, voici le probl\u00e8me et la solution.<\/p>\n<h2>Centrer dynamiquement un \u00e9l\u00e9ment dans un conteneur<\/h2>\n<p>L&rsquo;id\u00e9e de centrer dynamiquement un \u00e9l\u00e9ment est bas\u00e9e sur le sc\u00e9nario suivant\u00a0:<\/p>\n<ul>\n<li>Vous appelez une API qui r\u00e9pondra avec un ensemble, par exemple, d&rsquo;images une fois l&rsquo;appel termin\u00e9.<\/li>\n<li>Vous devez centrer chaque image dans son conteneur.<\/li>\n<li>Les images n&rsquo;auront pas de hauteur fixe et devront \u00eatre positionn\u00e9es et centr\u00e9es dynamiquement dans les conteneurs de l&rsquo;interface utilisateur.<\/li>\n<\/ul>\n<p>C&rsquo;est peut-\u00eatre encore un peu g\u00e9n\u00e9ral. Si c&rsquo;est le cas, supposons que vous ayez une liste (ordonn\u00e9e ou non, peu importe). Ils ont une hauteur et une largeur fixes, et vous allez placer les images, mises \u00e0 l&rsquo;\u00e9chelle, dans chaque \u00e9l\u00e9ment.<\/p>\n<p>N&rsquo;oubliez pas\u00a0: vous ne pouvez pas placer des \u00e9l\u00e9ments tels que des \u00e9l\u00e9ments <strong>div dans des \u00e9l\u00e9ments<\/strong> <strong>li<\/strong> (car un\u00a0 \u00e9l\u00e9ment <strong>div<\/strong> est un \u00e9l\u00e9ment de niveau bloc) sans le modifier via du CSS. Et nous voulons \u00e9viter de le faire.<\/p>\n<p>Donc, en fin de compte, l&rsquo;interface utilisateur peut ressembler \u00e0 ceci (brut, je sais):<\/p>\n<p>Si vous souhaitez que chaque image soit plac\u00e9e dans l&rsquo;\u00e9l\u00e9ment de liste, que vous souhaitiez qu&rsquo;elle ait une certaine hauteur d&rsquo;\u00e9chelle et que vous souhaitiez qu&rsquo;elle soit centr\u00e9e, <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/6fcfa9dd108af20920c937b2a1fa66c4\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">essayez le code suivant<\/a><\/strong>\u00a0:<\/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 cl\u00e9 de cela, vraiment, est le style de transformation. <strong><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/transform-function\/translateY\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Selon MDN<\/a><\/strong> :<\/p>\n<blockquote>\n<p>La fonction CSS translateY() repositionne un \u00e9l\u00e9ment verticalement sur le plan 2D. Son r\u00e9sultat est un type de donn\u00e9es.<\/p>\n<\/blockquote>\n<p>Avoir du sens\u00a0?<\/p>\n<p>Pensez-y de cette fa\u00e7on\u00a0: la fonction <strong>translateY<\/strong> prendra un \u00e9l\u00e9ment donn\u00e9 (identifi\u00e9 par son s\u00e9lecteur) et le positionnera en utilisant la valeur sp\u00e9cifi\u00e9e.<\/p>\n<h2>Il s&rsquo;agit de transformations<\/h2>\n<p>Vous pouvez utiliser des pixels, des pourcentages ou tout ce dont vous avez besoin pour y arriver. Dans ce cas, ce sont des pourcentages (et ils sont n\u00e9gatifs). Bien que j&rsquo;utilise un exemple de mon impl\u00e9mentation, il s&rsquo;agit \u00e9galement d&rsquo;un conseil sur la fa\u00e7on d&rsquo;utiliser la fonction <strong>transformY<\/strong> en relation avec les transformations.<\/p>\n<p>Si la compatibilit\u00e9 du navigateur est importante &#8211; ce qui, dans certains cas, devrait \u00eatre le cas &#8211; consultez <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\">ce tableau<\/a><\/strong>. Vous \u00eates plut\u00f4t bien couvert.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;id\u00e9e de centrer dynamiquement un \u00e9l\u00e9ment est fortement li\u00e9e au travail que vous faites, mais peut-\u00eatre que l&rsquo;utilisation de transformations vous aidera.<\/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":[904,832,841],"tags":[1167],"class_list":["post-230153","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-css-3","category-guide-pour-les-debutants","category-tutoriels","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/230153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=230153"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/230153\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/220880"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=230153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=230153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=230153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}