recherche
Maisoninterface Webtutoriel CSSExplication détaillée des avantages et des inconvénients de plusieurs techniques d'implémentation de styles centrés en CSS

Marges négatives

C'est peut-être la méthode d'utilisation la plus populaire en ce moment. Si la taille de l'élément block est connue, vous pouvez centrer le bloc de contenu dans le conteneur de la manière suivante :

Prenez un nombre négatif pour la marge extérieure, et la taille est largeur/hauteur (y compris le remplissage lorsque box-sizing : la bordure-box n'est pas utilisée, ), plus haut : 50 % ; A savoir :

.is-Negative {  
        width: 300px;  
        height: 200px;  
        padding: 20px;  
        position: absolute;  
        top: 50%; left: 50%;  
        margin-left: -170px; /* (width + padding)/2 */  
        margin-top: -120px; /* (height + padding)/2 */  
}

Les tests montrent que c'est la seule méthode qui fonctionne également bien sur IE6-IE7.

Avantages :

1. Bonnes fonctionnalités multi-navigateurs, compatible avec IE6-IE7.

2. La quantité de code est faible.

Inconvénients :

1. Il ne peut pas être adaptatif. Les paramètres de taille en pourcentage et de propriété min/max ne sont pas pris en charge.

2. Le contenu peut déborder du conteneur.

3. La taille de la marge est liée au remplissage et à la définition de la taille de la boîte : border-box. Le calcul doit être basé sur différentes situations.

Transformations

Il s'agit de la méthode la plus simple, qui peut obtenir le même effet de centrage absolu, et prend également en charge l'utilisation d'une hauteur variable de joint. La définition du bloc de contenu transform : translate(-50%,-50%) doit être préfixée par le fabricant du navigateur, et

top : 50%; left : 50%;

Type de code :

.is-Transformed {   
  width: 50%;  
  margin: auto;  
  position: absolute;  
  top: 50%; left: 50%;  
  -webkit-transform: translate(-50%,-50%);  
      -ms-transform: translate(-50%,-50%);  
          transform: translate(-50%,-50%);  
}

Avantages :

1. Hauteur du contenu variable

2 Moins de code

Inconvénients :

1. ne prend pas en charge

2. Les attributs doivent écrire le préfixe du fabricant du navigateur

3. Cela peut interférer avec d'autres effets de transformation

4. rendu des limites d'éléments flous

Pour en savoir plus sur l'implémentation et le centrage de la transformation, vous pouvez vous référer à l'article CSS-Tricks "Centering PercentageWidth/Height Elements"

Table-Cell

En général, c'est probablement le meilleur moyen d'obtenir le centrage, car la hauteur du bloc de contenu changera avec la hauteur du contenu réel et la compatibilité du navigateur est également bonne. Le plus gros inconvénient est qu’il nécessite beaucoup de balisage supplémentaire, nécessitant trois couches d’éléments pour centrer l’élément le plus interne.

HTML :

<div class="Center-Container is-Table">  
  <div class="Table-Cell">  
    <div class="Center-Block">  
    <!-- CONTENT -->  
    </div>  
  </div>  
</div>

CSS :

.Center-Container.is-Table { display: table; }  
.is-Table .Table-Cell {  
  display: table-cell;  
  vertical-align: middle;  
}  
.is-Table .Center-Block {  
  width: 50%;  
  margin: 0 auto;  
}

Avantages :

1. Très variable

2. développera l'élément parent.

3. Bonne compatibilité entre navigateurs.

Inconvénients :

Nécessite des balises HTML supplémentaires

12. Inline-Block

est un moyen très populaire de réaliser le centrage. L'idée de base est d'utiliser display: inline-block, vertical-align: middle et un pseudo élément pour placer le bloc de contenu au centre du conteneur.

Si la largeur du bloc de contenu est supérieure à la largeur du conteneur, par exemple, si un texte long est placé, la largeur du bloc de contenu ne peut pas dépasser 100 % du conteneur moins 0,25em, sinon le pseudo élément : after sera utilisé pour bloquer le bloc de contenu. Pour presser vers le haut du conteneur, en utilisant :before le bloc de contenu sera décalé vers le bas de 100 %.

Si votre bloc de contenu doit occuper autant d'espace horizontal que possible, vous pouvez utiliser max-width : 99% (pour les conteneurs plus grands) ou max-width : calc(100% -0.25em) (dépend sur les navigateurs pris en charge et la largeur du conteneur).

HTML :

<div class="Center-Container is-Inline">  
  <div class="Center-Block">  
    <!-- CONTENT -->  
  </div>  
</div>

CSS :

.Center-Container.is-Inline {   
  text-align: center;  
  overflow: auto;  
}  
  
.Center-Container.is-Inline:after,  
.is-Inline .Center-Block {  
  display: inline-block;  
  vertical-align: middle;  
}  
  
.Center-Container.is-Inline:after {  
  content: &#39;&#39;;  
  height: 100%;  
  margin-left: -0.25em; /* To offset spacing. May vary by font */  
}  
  
.is-Inline .Center-Block {  
  max-width: 99%; /* Prevents issues with long content causes the content block to be pushed to the top */  
  /* max-width: calc(100% - 0.25em) /* Only for IE9+ */   
}

Les avantages et les inconvénients de cette méthode sont similaires à la méthode Table-Cell. Au début, j'ai ignoré cette méthode. . Abandonné car il s'agit bien d'une méthode de hack. Cependant, il s’agit d’une utilisation très populaire et bien prise en charge par les navigateurs.

Avantages :

1. Hauteur variable

2. Le débordement de contenu agrandira l'élément parent.

3. Prend en charge plusieurs navigateurs et convient également à IE7.

Inconvénients :

1. Nécessite un conteneur

2. Le centrage horizontal repose sur la marge gauche : -0,25em ; tailles.

3. La largeur du bloc de contenu ne peut pas dépasser 100 % du conteneur - 0,25em.

Flexbox

C'est la future tendance de la mise en page CSS. Flexbox est un nouvel attribut de CSS3, conçu à l'origine pour résoudre des problèmes de mise en page courants tels que le centrage vertical. N'oubliez pas que Flexbox ne sert pas seulement au centrage, il peut également être utilisé pour diviser des colonnes ou résoudre des problèmes de mise en page fous.

Avantages :

1. La largeur et la hauteur du bloc de contenu sont arbitraires et il déborde gracieusement.

2. Peut être utilisé dans des techniques de mise en page plus complexes et avancées.

Inconvénients :

1. IE8/IE9 ne le prend pas en charge.

2. Body nécessite des conteneurs et des styles CSS spécifiques.

3. Le code qui s'exécute sur les navigateurs modernes nécessite le préfixe du fournisseur du navigateur.

4. Il peut y avoir des problèmes de performances.

Suggestions :

Chaque technologie a ses avantages et ses inconvénients. La technologie que vous choisissez dépend des navigateurs pris en charge et de votre codage. Utilisez le tableau comparatif ci-dessus pour vous aider à prendre une décision.

Comme alternative simple, la technique du Centrage Absolu fonctionne bien. Là où vous utilisiez autrefois les marges négatives, vous pouvez désormais utiliser le centrage absolu à la place. Vous n'avez plus à vous soucier des calculs de marge fastidieux et des balisages supplémentaires, et vous pouvez également redimensionner et centrer les blocs de contenu.

Si votre site nécessite un contenu à hauteur variable, vous pouvez essayer deux méthodes : Table-Cell et Inline-Block. Si vous êtes sur le point de vous épuiser, essayez Flexbox et découvrez les avantages de cette technologie de mise en page avancée.

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
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
Les astuces CSS perdues de Cohost.orgLes astuces CSS perdues de Cohost.orgApr 25, 2025 am 09:51 AM

Dans cet article, Blackle Mori vous montre quelques-uns des hacks trouvés tout en essayant de repousser les limites du support HTML de Cohost. Utilisez-les si vous osez, de peur que vous soyez également étiqueté un criminel CSS.

Style CSS de niveau supérieur pour les curseursStyle CSS de niveau supérieur pour les curseursApr 23, 2025 am 11:04 AM

Les curseurs personnalisés avec CSS sont excellents, mais nous pouvons faire passer les choses au niveau supérieur avec JavaScript. À l'aide de JavaScript, nous pouvons passer entre les états du curseur, placer du texte dynamique dans le curseur, appliquer des animations complexes et appliquer des filtres.

Worlds Collide: Détection de collision de l'ordre clé à l'aide de requêtes de styleWorlds Collide: Détection de collision de l'ordre clé à l'aide de requêtes de styleApr 23, 2025 am 10:42 AM

Les animations CSS interactives avec des éléments se ricochent semblent plus plausibles en 2025. Bien qu'il soit inutile de mettre en œuvre Pong dans CSS, la flexibilité et la puissance croissantes de CSS renforcent le soupçon de Lee selon lequel un jour, ce sera un jour

Utilisation du filtre de fond CSS pour les effets d'interface utilisateurUtilisation du filtre de fond CSS pour les effets d'interface utilisateurApr 23, 2025 am 10:20 AM

Conseils et astuces sur l'utilisation de la propriété CSS Back-Filter pour styliser les interfaces utilisateur. Vous apprendrez à superposer des filtres en toile de fond entre plusieurs éléments et à les intégrer à d'autres effets graphiques CSS pour créer des conceptions élaborées.

Smil sur?Smil sur?Apr 23, 2025 am 09:57 AM

Eh bien, il s'avère que les fonctionnalités d'animation intégrées de SVG n'ont jamais été obsolètes comme prévu. Bien sûr, CSS et JavaScript sont plus que capables de porter la charge, mais il est bon de savoir que Smil n'est pas mort dans l'eau comme précédemment

'Pretty' est dans l'œil du spectateur'Pretty' est dans l'œil du spectateurApr 23, 2025 am 09:40 AM

Yay, laissez-le saut pour le wat-wrap: joli atterrissage dans la technologie safari aperçu! Mais méfiez-vous qu'il est différent de la façon dont il fonctionne dans les navigateurs de chrome.

CSS-Tricks raconte xliiiCSS-Tricks raconte xliiiApr 23, 2025 am 09:35 AM

Cette mise à jour de CSS-Tricks met en évidence des progrès significatifs dans l'Almanac, des apparitions de podcast récentes, un nouveau guide CSS Counter et l'ajout de plusieurs nouveaux auteurs contribuant un contenu précieux.

La fonctionnalité @Apply de Tailwind est meilleure qu'il n'y paraîtLa fonctionnalité @Apply de Tailwind est meilleure qu'il n'y paraîtApr 23, 2025 am 09:23 AM

La plupart du temps, les gens présentent la fonctionnalité de Tailwind avec l'un des utilitaires à propriété unique de Tailwind (qui modifie une seule déclaration CSS). Lorsqu'il est présenté de cette façon, @Apply ne semble pas du tout prometteur. So évidence

See all articles

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

SublimeText3 version Mac

SublimeText3 version Mac

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

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP