Maison > interface Web > tutoriel CSS > Comment aligner verticalement des Divs de taille dynamique avec CSS ?

Comment aligner verticalement des Divs de taille dynamique avec CSS ?

Barbara Streisand
Libérer: 2024-11-02 10:53:30
original
324 Les gens l'ont consulté

How to Vertically Align Dynamically Sized Divs with CSS?

Alignement vertical de divisions dimensionnées dynamiquement avec CSS

Dans le monde du CSS, obtenir un alignement parfait peut être un défi, en particulier lorsqu'il s'agit de divs de tailles inconnues ou dynamiques. Considérez le scénario suivant : vous disposez d'un div contenant une image ou un objet flash et vous souhaitez l'aligner verticalement dans son conteneur parent, quelles que soient les dimensions du conteneur ou de l'enfant.

Solution :

CSS offre une solution élégante à ce dilemme. En utilisant la combinaison de vertical-align : middle et line-height : 0, nous pouvons réaliser un centrage horizontal et vertical dans un conteneur de taille indéterminée.

Structure HTML :

<code class="html"><span id="center">
  <span id="wrap">
    <img src="http://lorempixum.com/300/250/abstract" alt="" />
  </span>
</span></code>
Copier après la connexion

Styles CSS :

<code class="css">html,
body {
  height: 100%;
  width: 100%;
  padding: 0;
  margin: 0;
  overflow: hidden;
}
#center {
  position: relative;
  display: block;
  top: 50%;
  margin-top: -1000px;
  height: 2000px;
  text-align: center;
  line-height: 2000px;
}
#wrap {
  line-height: 0;
}
#wrap img {
  vertical-align: middle;
}</code>
Copier après la connexion

Explication :

  • alignement vertical : le milieu aligne l'image verticalement à l'intérieur l'élément #wrap, quelle que soit sa hauteur.
  • line-height: 0 supprime l'espacement des lignes par défaut pour l'élément #wrap, garantissant qu'il n'a pas de hauteur intrinsèque.
  • En définissant du texte- align : center et line-height à la hauteur souhaitée du conteneur, nous établissons une ligne de base qui aligne l'image verticalement dans le conteneur.
  • L'élément #center est utilisé pour positionner le conteneur verticalement dans le conteneur parent et est centré en utilisant des transformations CSS.

Remarque pour Internet Explorer 7 : Pour garantir la compatibilité avec IE7, les éléments les plus internes (#wrap et ) doivent être déclarés sur une seule ligne, comme démontré dans cette modification Structure HTML :

<code class="html"><span id="center">
  <span id="wrap"><img src="http://lorempixum.com/300/250/abstract" alt="" /></span>
</span></code>
Copier après la connexion

Cette solution CSS2 pure fournit un alignement fiable pour les divs aux dimensions dynamiques, qu'ils contiennent des images, des objets flash ou d'autres éléments.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal