javascript - CSS contrôle que le div soit toujours centré horizontalement et verticalement, et la taille de ce div est différente
欧阳克2017-06-26 10:52:35
0
10
1167
Le contrôle CSS ajoute un p avec un nom de classe unifié. Je souhaite qu'il soit affiché horizontalement et verticalement au centre. Cependant, la taille du p est différente, donc le CSS ne peut pas être corrigé.
L'une consiste à utiliser la disposition flexible pour centrer les éléments enfants horizontalement et verticalement ; l'autre consiste à utiliser le positionnement absolu et la transformation pour déplacer la position. .flex { display: flex; align-items: center; justifier-content: center; }
.one { position : absolue; gauche : 50%; haut : 50%; transformation : traduire (-50%, -50%); }
Centrage vertical : Méthode de mise en page de table, méthode de bloc en ligne Méthode de positionnement absolu Centrage de la fenêtre d'affichage Solution basée sur Flexbox
Vous pouvez utiliser la disposition élastique ci-dessus, mais elle ne prend pas en charge les navigateurs de bas niveau Vous pouvez utiliser le positionnement absolu pour centrer le p verticalement et horizontalement
Diverses couches élastiques ? Divers calculs ? Centrer à gauche et à droite est facile, juste
margin:0 auto; c'est bien, mais monter et descendre est un peu plus gênant. Même si c’est gênant à bien des égards
1. À en juger par js, c'est relativement fastidieux, donc je n'entrerai pas dans les détails. Les amis qui sont simples avec js peuvent le faire
.
2, désactivé:table. Cela nécessite la coopération de deux DOM. Ce n'est pas recommandé. La compatibilité principale est également moyenne.
3. Utilisez transfrom si vous ne considérez pas la compatibilité et ne connaissez pas la hauteur, c'est fortement recommandé. La méthode approximative est la suivante :
.dom{
Définissez vous-même la largeur position : absolue; transform: translation(-50%, -50%); gauche : 50%; haut : 50%; } Je connais la largeur, mais je je ne sais pas à quel point je le recommande
4. Si vous connaissez la largeur et la hauteur, vous n'avez pas besoin de ce qui précède, car celui-ci n'est pas compatible. Le code est le suivant :
.
.dom{
Définissez vous-même la largeur et la hauteur position : absolue; marge : auto; haut:0; droite : 0; bas:0; gauche : 0; } 5, disposition flexible, en plus de la compatibilité, tout le reste va bien.
6. Si vous envisagez la compatibilité ====> veuillez consulter le premier élément. [Quel âge a-t-il ? Toujours en considérant IE789, le support principal d'IE7 DOM1 n'est pas très bon, donc. . . 】 7, rien d'autre. Ceux ci-dessus sont certainement suffisants. S'il y en a de bons, ajoutez-les s'il vous plaît
Adopte display: table élément centré sur la mise en page, prend en charge une largeur et une hauteur indéfinies et est compatible avec IE8+ et d'autres navigateurs modernes :
:before Le pseudo-élément étend la hauteur de ligne (méthode utilisée par AmazeUI dans les composants modaux et prend en charge la largeur et la hauteur incertaines, IE8+) :
mise en page flexible
L'une consiste à utiliser la disposition flexible pour centrer les éléments enfants horizontalement et verticalement ; l'autre consiste à utiliser le positionnement absolu et la transformation pour déplacer la position.
.flex {
display: flex;
align-items: center;
justifier-content: center;
}
.one {
position : absolue;
gauche : 50%;
haut : 50%;
transformation : traduire (-50%, -50%);
}
Portail
Centrage vertical :
Méthode de mise en page de table, méthode de bloc en ligne
Méthode de positionnement absolu
Centrage de la fenêtre d'affichage
Solution basée sur Flexbox
Une question courante, quelqu'un à l'étranger a réglé le centrage vertical dans diverses situations : https://css-tricks.com/center...
Nous générons même du code directement pour vous et déterminons s'il est compatible avec IE : http://howtocenterincss.com/
Vous pouvez également consulter la version traduite : https://github.com/chenjsh36/...
Après avoir lu ceci, je n'ai plus à me soucier des divers problèmes de centrage vertical 23333
Ajouter display:flex,align-items:center à l'élément parent
Vous pouvez utiliser la disposition élastique ci-dessus, mais elle ne prend pas en charge les navigateurs de bas niveau
.Vous pouvez utiliser le positionnement absolu pour centrer le p verticalement et horizontalement
La mise en page flexible est également recommandée
Diverses couches élastiques ? Divers calculs ? Centrer à gauche et à droite est facile, juste
margin:0 auto;
c'est bien, mais monter et descendre est un peu plus gênant. Même si c’est gênant à bien des égards
1. À en juger par js, c'est relativement fastidieux, donc je n'entrerai pas dans les détails. Les amis qui sont simples avec js peuvent le faire
.2, désactivé:table. Cela nécessite la coopération de deux DOM. Ce n'est pas recommandé. La compatibilité principale est également moyenne.
3. Utilisez transfrom si vous ne considérez pas la compatibilité et ne connaissez pas la hauteur, c'est fortement recommandé. La méthode approximative est la suivante :Définissez vous-même la largeur
4. Si vous connaissez la largeur et la hauteur, vous n'avez pas besoin de ce qui précède, car celui-ci n'est pas compatible. Le code est le suivant :position : absolue;
transform: translation(-50%, -50%);
gauche : 50%;
haut : 50%;
}
Je connais la largeur, mais je je ne sais pas à quel point je le recommande
.
.dom{Définissez vous-même la largeur et la hauteur
<p class="masque">position : absolue;
marge : auto;
haut:0;
droite : 0;
bas:0;
gauche : 0;
}
5, disposition flexible, en plus de la compatibilité, tout le reste va bien.
.masque{
}.mask-con{
}6. Si vous envisagez la compatibilité ====> veuillez consulter le premier élément. [Quel âge a-t-il ? Toujours en considérant IE789, le support principal d'IE7 DOM1 n'est pas très bon, donc. . . 】
7, rien d'autre. Ceux ci-dessus sont certainement suffisants. S'il y en a de bons, ajoutez-les s'il vous plaît
Élément parent
Éléments enfants
Ajout de trois méthodes supplémentaires.
Centrer un élément de largeur et hauteur connues en utilisant un positionnement absolu ou fixe :
Adopte
display: table
élément centré sur la mise en page, prend en charge une largeur et une hauteur indéfinies et est compatible avec IE8+ et d'autres navigateurs modernes ::before
Le pseudo-élément étend la hauteur de ligne (méthode utilisée par AmazeUI dans les composants modaux et prend en charge la largeur et la hauteur incertaines, IE8+) :