veilletech.fr
11 oct. Feed du jour
#05 WEB Article

Chrome 154 : un iframe à la hauteur de son contenu

Une ligne de CSS, et une balise que seul votre prestataire peut poser.

Chrome 154 sait dimensionner un iframe sur la hauteur de son contenu avec frame-sizing: content-height, sans postMessage ni ResizeObserver. La page intégrée doit y consentir, avec une balise meta et un appel à window.requestResize(), ce qui rend la fonction dépendante des prestataires d'embed. Chromium seulement : prévoir une hauteur fixe de repli.

3 min de lectureintermédiairevidéo 1:21
Partager
Sommaire6 sections
  1. Ce qui se passe
  2. L'ancienne méthode
  3. La nouvelle méthode
  4. Avant de livrer
  5. Où commencer
  6. À retenir

Ce qui se passe

Chrome 154 permet à un iframe de grandir jusqu'à la hauteur de son contenu avec une ligne de CSS : plus de mesure, de messages ni de script de redimensionnement. Mais la page dans l'iframe doit y consentir. Cette contrainte est l'essentiel du billet de Ahmad Alfy, qui relaie la documentation de Chrome (Responsive iframes in Chrome 154).

L'ancienne méthode

Une page ne peut pas regarder dans un iframe d'une autre origine : elle ignore sa hauteur. D'où une hauteur fixe, trop grande (un vide sous le formulaire) ou trop petite (une deuxième barre de défilement, surtout gênante sur mobile devant un formulaire de paiement), ou un échange de messages entre les deux pages : un ResizeObserver dans l'iframe qui envoie sa hauteur par postMessage, et un écouteur dans la page qui vérifie l'origine. Ce code cache plusieurs problèmes : la largeur change la hauteur, le contenu arrive en retard (polices, images, messages d'erreur), plusieurs iframes demandent des identifiants, et si le tiers n'envoie rien, on revient à deviner.

La nouvelle méthode

Dans la page parente :

CSS
.embed {
  width: 100%;
  frame-sizing: content-height;
}

Dans le document de l'iframe, une balise meta placée dans le HTML d'origine (l'ajouter en JavaScript ne marche pas) qui liste les sites autorisés à le dimensionner :

HTML
<meta name="responsive-embedded-sizing" content="allow-origins=https://shop.example">

Quand le contenu change après le chargement, la page intégrée redemande une mesure :

JavaScript
window.requestResize();

frame-sizing accepte aussi content-width, content-inline-size et content-block-size ; on peut le combiner avec max-height: 80vh.

IframeNavigateurPage parenteIframeNavigateurPage parenteCSS frame-sizing1meta allow-origins2hauteur appliquée3requestResize()4nouvelle hauteur5
Qui écrit quoi : deux des trois lignes appartiennent à la page intégrée

Avant de livrer

Où commencer

Les formulaires de paiement et les widgets tiers (commentaires, réservation) sont les cas les plus parlants, mais ils dépendent du prestataire, seul à pouvoir poser la balise et appeler requestResize(). Le point de départ le plus simple est le contenu que vous rendez vous-même dans un iframe srcdoc : aperçus d'e-mails, de texte riche, démos de code. Vous écrivez les deux côtés.

Source : Iframes that finally fit their content, Ahmad Alfy, 9 octobre 2026.