Maison interface Web tutoriel CSS Manuel de centrage complet vertical et horizontal CSS

Manuel de centrage complet vertical et horizontal CSS

Feb 04, 2017 pm 04:01 PM
css centre 手册

Le centrage a toujours été une plainte typique en CSS. Pourquoi est-ce si difficile à mettre en œuvre ? Alors on s'est moqué de quelqu'un. Je pense que le problème n’est pas qu’il n’y a aucun moyen de le faire, cela dépend simplement de la situation. Il existe de nombreuses façons différentes, mais il est difficile de déterminer quelle méthode doit être utilisée.

J'ai donc écrit cet article, en espérant lui faciliter la tâche.

Centrer horizontalement

Centrer l'élément en ligne (inline ou inline-*) ?

Vous pouvez le centrer par rapport à l'élément parent au niveau du bloc

.center-children {
  text-align: center;
}
Copier après la connexion

Élément de niveau bloc (niveau de bloc) centré ?

Vous pouvez le centrer en réglant margin-left et margin-right sur auto (et également en définissant la largeur, sinon il remplira tout le conteneur, l'effet de centrage ne peut pas être vu), comme.

.center-me {
  margin: 0 auto;
}
Copier après la connexion

Et s'il y a de nombreux éléments au niveau du bloc ?

Si vous avez des éléments de niveau bloc très réguliers qui doivent être centrés horizontalement dans une rangée, il est préférable d'utiliser un type d'affichage différent. Voici un exemple utilisant inline-block et flex.

<main class="inline-block-center">
  <div>
    I&#39;m an element that is block-like with my siblings and we&#39;re centered in a row.
  </div>
  <div>
    I&#39;m an element that is block-like with my siblings and we&#39;re centered in a row. I have more content in me than my siblings do.
  </div>
  <div>
    I&#39;m an element that is block-like with my siblings and we&#39;re centered in a row.
  </div>
</main>
<main class="flex-center">
  <div>
    I&#39;m an element that is block-like with my siblings and we&#39;re centered in a row.
  </div>
  <div>
    I&#39;m an element that is block-like with my siblings and we&#39;re centered in a row. I have more content in me than my siblings do.
  </div>
  <div>
    I&#39;m an element that is block-like with my siblings and we&#39;re centered in a row.
  </div>
</main>
Copier après la connexion
body {
  background: #f06d06;
  font-size: 80%;
}
main {
  background: white;
  margin: 20px 0;
  padding: 10px;
}
main div {
  background: black;
  color: white;
  padding: 15px;
  max-width: 125px;
  margin: 5px;
}
.inline-block-center {
  text-align: center;
}
.inline-block-center div {
  display: inline-block;
  text-align: left;
}
.flex-center {
  display: flex;
  justify-content: center;
}
Copier après la connexion

Centrage vertical

Le centrage vertical est un peu délicat en CSS

Les éléments en ligne (inline ou inline-*) sont centrés comme le texte et les liens de ?

Est-ce une seule ligne ?

Parfois, les éléments peuvent sembler centrés verticalement simplement parce qu'ils ont un remplissage supérieur et inférieur égal.

.link {
  padding-top: 30px;
  padding-bottom: 30px;
}
Copier après la connexion

Si le remplissage ne fonctionne pas pour une raison quelconque et que le texte ne s'enroule pas, vous peut utiliser la hauteur de ligne et la rendre égale à la hauteur pour aligner le texte.

.center-text-trick {
  height: 100px;
  line-height: 100px;
  white-space: nowrap;
}
Copier après la connexion

Est-ce multiligne ?


Les méthodes de remplissage telles que haut et bas peuvent également centrer plusieurs lignes, mais si cette méthode ne fonctionne pas, vous pouvez faire en sorte que les conteneurs de ces textes s'affichent en mode cellule de tableau , puis définissez le texte L'attribut vertical-align s'aligne, tout comme talbe

<table>
  <tr>
    <td>
      I&#39;m vertically centered multiple lines of text in a real table cell.
    </td>
  </tr>
</table>
<div class="center-table">
  <p>I&#39;m vertically centered multiple lines of text in a CSS-created table layout.</p>
</div>
Copier après la connexion
body {
  background: #f06d06;
  font-size: 80%;
}
table {
  background: white;
  width: 240px;
  border-collapse: separate;
  margin: 20px;
  height: 250px;
}
table td {
  background: black;
  color: white;
  padding: 20px;
  border: 10px solid white;
  /* default is vertical-align: middle; */
}
.center-table {
  display: table;
  height: 250px;
  background: white;
  width: 240px;
  margin: 20px;
}
.center-table p {
  display: table-cell;
  margin: 0;
  background: black;
  color: white;
  padding: 20px;
  border: 10px solid white;
  vertical-align: middle;
}
Copier après la connexion

Les éléments au niveau du bloc (niveau du bloc) sont centrés verticalement ?

Connaissez-vous la hauteur de l'élément ?

Il est assez courant de ne pas connaître la hauteur d'une mise en page Web pour de nombreuses raisons.

Mais si votre mise en page a une hauteur fixe, vous pouvez la centrer verticalement comme ceci :

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  height: 100px;
  margin-top: -50px; /* 如果没有使用: border-box; 的盒子模型则需要设置这个 */
}
Copier après la connexion

La hauteur de l'élément est inconnue


Bien que cela ne soit pas connu, il vous est toujours possible d'augmenter la largeur de 50 %

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
Copier après la connexion

Pouvez-vous utiliser flexbox ?


Ce n'est pas surprenant, utiliser flexbox est beaucoup plus simple

<main>  
  <div>
     I&#39;m a block-level element with an unknown height, centered vertically within my parent.
  </div>  
</main>
Copier après la connexion
body {
  background: #f06d06;
  font-size: 80%;
}
main {
  background: white;
  height: 300px;
  width: 200px;
  padding: 20px;
  margin: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  resize: vertical;
  overflow: auto;
}
main div {
  background: black;
  color: white;
  padding: 20px;
  resize: vertical;
  overflow: auto;
}
Copier après la connexion

Centrer horizontalement et verticalement en même temps


L'élément a une largeur et une hauteur fixes


Si l'élément a une largeur et une hauteur fixes, vous devez d'abord le centrer absolument, puis déplacez-le vers le haut et déplacez-le simplement vers la gauche de 50 % de la largeur. Cette solution offre un excellent support entre navigateurs.

.parent {
  position: relative;
}
.child {
  width: 300px;
  height: 100px;
  padding: 20px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -70px 0 0 -170px;
}
Copier après la connexion

La largeur et la hauteur de l'élément sont inconnues


Si vous ne connaissez pas la hauteur et la largeur (variables), vous pouvez utiliser l'attribut transofrm sur les deux La direction est traduite par négatif 50%

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
Copier après la connexion

Pour plus d'articles sur le manuel de centrage complet vertical et horizontal CSS, veuillez faire attention au site Web PHP 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)

Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Les rôles de HTML, CSS et JavaScript: responsabilités de base Les rôles de HTML, CSS et JavaScript: responsabilités de base Apr 08, 2025 pm 07:05 PM

HTML définit la structure Web, CSS est responsable du style et de la mise en page, et JavaScript donne une interaction dynamique. Les trois exercent leurs fonctions dans le développement Web et construisent conjointement un site Web coloré.

Comment écrire des lignes fendues sur bootstrap Comment écrire des lignes fendues sur bootstrap Apr 07, 2025 pm 03:12 PM

Il existe deux façons de créer une ligne divisée bootstrap: en utilisant la balise, qui crée une ligne divisée horizontale. Utilisez la propriété CSS Border pour créer des lignes de fractionnement de style personnalisées.

Comprendre HTML, CSS et JavaScript: un guide pour débutant Comprendre HTML, CSS et JavaScript: un guide pour débutant Apr 12, 2025 am 12:02 AM

WebDevelopmentReliesOnHTML, CSS, etjavascript: 1) HTMLSTRUCTURESCONTENT, 2) CSSSTYLESIT, et3) JavascriptAdddsInterActivity, Forming TheasisofmodernweBEBExperiences.

Comment configurer le cadre de bootstrap Comment configurer le cadre de bootstrap Apr 07, 2025 pm 03:27 PM

Pour configurer le framework Bootstrap, vous devez suivre ces étapes: 1. Référez le fichier bootstrap via CDN; 2. Téléchargez et hébergez le fichier sur votre propre serveur; 3. Incluez le fichier bootstrap dans HTML; 4. Compiler les sass / moins au besoin; 5. Importer un fichier personnalisé (facultatif). Une fois la configuration terminée, vous pouvez utiliser les systèmes, composants et styles de grille de Bootstrap pour créer des sites Web et des applications réactifs.

Comment insérer des photos sur bootstrap Comment insérer des photos sur bootstrap Apr 07, 2025 pm 03:30 PM

Il existe plusieurs façons d'insérer des images dans Bootstrap: insérer directement les images, en utilisant la balise HTML IMG. Avec le composant d'image bootstrap, vous pouvez fournir des images réactives et plus de styles. Définissez la taille de l'image, utilisez la classe IMG-FLUID pour rendre l'image adaptable. Réglez la bordure en utilisant la classe IMG-border. Réglez les coins arrondis et utilisez la classe Roundée IMG. Réglez l'ombre, utilisez la classe Shadow. Redimensionner et positionner l'image, en utilisant le style CSS. À l'aide de l'image d'arrière-plan, utilisez la propriété CSS d'image d'arrière-plan.

Comment utiliser le bouton bootstrap Comment utiliser le bouton bootstrap Apr 07, 2025 pm 03:09 PM

Comment utiliser le bouton bootstrap? Introduisez Bootstrap CSS pour créer des éléments de bouton et ajoutez la classe de bouton bootstrap pour ajouter du texte du bouton

Comment redimensionner le bootstrap Comment redimensionner le bootstrap Apr 07, 2025 pm 03:18 PM

Pour ajuster la taille des éléments dans Bootstrap, vous pouvez utiliser la classe de dimension, qui comprend: ajuster la largeur: .col-, .w-, .mw-ajustement Hauteur: .h-, .min-h-, .max-h-

See all articles