Table des matières
Alignement vertical d'une image dans un conteneur réactif
Le défi
Solution
Création du conteneur Responsive
Envelopper le contenu de l'image
Y compris l'image et le CSS pour Alignement
Alternative pour la compatibilité des navigateurs
Utilisation des propriétés max-* pour le contrôle de l'image
Maison interface Web tutoriel CSS Comment puis-je aligner verticalement une image dans un conteneur réactif ?

Comment puis-je aligner verticalement une image dans un conteneur réactif ?

Jan 03, 2025 am 10:59 AM

How Can I Vertically Align an Image Within a Responsive Container?

Alignement vertical d'une image dans un conteneur réactif

Le défi

Vous disposez d'une structure HTML avec un conteneur qui maintient un rapport hauteur/largeur carré comme la fenêtre du navigateur est redimensionnée. À l’intérieur de ce conteneur, vous souhaitez ajouter une image, mais vous devez vous assurer qu’elle reste alignée verticalement. Le défi se pose car les images sont variables en hauteur et la hauteur du conteneur ne peut pas être fixée.

Solution

Utilisation d'éléments CSS en ligne

  1. Créez un pseudo-élément de bloc en ligne en tant que premier (ou dernier) enfant de l'élément conteneur et définissez sa hauteur sur 100 % pour occuper la totalité de l'élément. hauteur du conteneur.
  2. Définissez vertical-align: middle à la fois sur le pseudo-élément et sur l'image pour centrer verticalement les éléments.
  3. Supprimez tout espace blanc entre les éléments en définissant font-size : 0 ; sur l'élément conteneur pour supprimer l'espace occupé par les caractères (espaces).

HTML:

<div class="container">
    <div>
Copier après la connexion

CSS:

.container {
    height: 300px;
    text-align: center;  /* align the inline(-block) elements horizontally */
    font: 0/0 a;         /* remove the gap between inline(-block) elements */
}

.container:before {    /* create a full-height inline block pseudo=element */
    content: ' ';
    display: inline-block;
    vertical-align: middle;  /* vertical alignment of the inline element */
    height: 100%;
}

#element {
    display: inline-block;
    vertical-align: middle;  /* vertical alignment of the inline element */
    font: 16px/1 Arial sans-serif;        /* <-- reset the font property */
}
Copier après la connexion

Création du conteneur Responsive

Pour créer un conteneur réactif où la hauteur est redimensionnée par rapport à la largeur, vous pouvez utiliser des valeurs en pourcentage pour le remplissage supérieur/inférieur property :

.responsive-container {
  width: 60%;

  padding-top: 60%;    /* 1:1 Height is the same as the width */
  padding-top: 100%;   /* width:height = 60:100 or 3:5        */
  padding-top: 45%;    /* = 60% * 3/4 , width:height =  4:3   */
  padding-top: 33.75%; /* = 60% * 9/16, width:height = 16:9   */
}
Copier après la connexion

Envelopper le contenu de l'image

Pour éviter un espace excessif en haut ou en bas du conteneur, enveloppez l'image dans un élément wrapper et positionnez-la absolument dans le conteneur à remplir tout son espace :

.responsive-container {
  width: 60%;
  position: relative;
}

.responsive-container .wrapper {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
}
Copier après la connexion

Y compris l'image et le CSS pour Alignement

HTML :

<div class="responsive-container">
  <div class="dummy"></div>

  <div class="img-container">
    <img src="http://placehold.it/150x150" alt="">
  </div>
</div>
Copier après la connexion

CSS pour l'alignement des images :

.img-container {
  text-align: center; /* Align center inline elements */
  font: 0/0 a;       /* Hide the characters like spaces */
}

.img-container:before {
  content: ' ';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}

.img-container img {
  vertical-align: middle;
  display: inline-block;
}
Copier après la connexion

Alternative pour la compatibilité des navigateurs

Pour une meilleure compatibilité entre les navigateurs, vous pouvez utilisez un élément div comme premier enfant du conteneur d'image au lieu du pseudo-élément :

HTML :

<div class="img-container">
    <div class="centerer"></div>
    <img src="http://placehold.it/150x150" alt="">
</div>
Copier après la connexion

CSS :

.img-container .centerer {
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
Copier après la connexion

Utilisation des propriétés max-* pour le contrôle de l'image

Pour conserver l'image dans le conteneur lorsque la largeur est plus petite, vous pouvez utiliser les propriétés max-height et max-width sur l'image :

.img-container img {
    max-height: 100%;  /* Set maximum height to 100% of its parent */
    max-width: 100%;   /* Set maximum width to 100% of its parent */
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Il est sorti! Félicitations à l'équipe Vue pour l'avoir fait, je sais que ce fut un effort massif et une longue période à venir. Tous les nouveaux documents aussi.

Pouvez-vous obtenir des valeurs de propriété CSS valides du navigateur? Pouvez-vous obtenir des valeurs de propriété CSS valides du navigateur? Apr 02, 2025 pm 06:17 PM

J'ai eu quelqu'un qui écrivait avec cette question très légitime. Lea vient de bloguer sur la façon dont vous pouvez obtenir les propriétés CSS valides elles-mêmes du navigateur. C'est comme ça.

Un peu sur CI / CD Un peu sur CI / CD Apr 02, 2025 pm 06:21 PM

Je dirais que "Site Web" correspond mieux que "Application mobile" mais j'aime ce cadrage de Max Lynch:

Cartes empilées avec un positionnement collant et une pincée de sass Cartes empilées avec un positionnement collant et une pincée de sass Apr 03, 2025 am 10:30 AM

L'autre jour, j'ai repéré ce morceau particulièrement charmant sur le site Web de Corey Ginnivan où une collection de cartes se cassent les uns sur les autres pendant que vous faites défiler.

Utilisation de Markdown et de la localisation dans l'éditeur de blocs WordPress Utilisation de Markdown et de la localisation dans l'éditeur de blocs WordPress Apr 02, 2025 am 04:27 AM

Si nous devons afficher la documentation à l'utilisateur directement dans l'éditeur WordPress, quelle est la meilleure façon de le faire?

Comparaison des navigateurs pour une conception réactive Comparaison des navigateurs pour une conception réactive Apr 02, 2025 pm 06:25 PM

Il existe un certain nombre de ces applications de bureau où l'objectif montre votre site à différentes dimensions en même temps. Vous pouvez donc, par exemple, écrire

Comment utiliser la grille CSS pour les en-têtes et pieds de page collants Comment utiliser la grille CSS pour les en-têtes et pieds de page collants Apr 02, 2025 pm 06:29 PM

CSS Grid est une collection de propriétés conçues pour faciliter la mise en page qu'elle ne l'a jamais été. Comme tout, il y a un peu une courbe d'apprentissage, mais Grid est

Fontes variables de polices Google Fontes variables de polices Google Apr 09, 2025 am 10:42 AM

Je vois que Google Fonts a déployé un nouveau design (tweet). Comparé à la dernière grande refonte, cela semble beaucoup plus itératif. Je peux à peine faire la différence

See all articles