Maison > interface Web > tutoriel CSS > Pourquoi les marges ne fonctionnent-elles pas sur les divs avec « display: table-cell; » ?

Pourquoi les marges ne fonctionnent-elles pas sur les divs avec « display: table-cell; » ?

Patricia Arquette
Libérer: 2024-12-08 09:16:10
original
356 Les gens l'ont consulté

Why Don't Margins Work on divs with `display: table-cell;`?

Pourquoi les divs ne peuvent-ils pas être effectués avec "display: table-cell;" Appliquer des marges ?

En HTML, les divs sont des éléments adjacents qui peuvent être organisés à l'aide des paramètres de mise en page CSS tels que « affichage ». Lors de l'attribution de "display: table-cell;", ces divs se comportent comme des cellules dans un tableau et héritent de propriétés spécifiques. L'une de ces propriétés est l'inefficacité de la propriété margin.

Cause : Incompatibilité avec "display: table-cell;"

Selon la documentation MDN, margin n'est pas applicable aux éléments avec des types d'affichage de table autre que "table-caption", "table" et "inline-table". "affichage : cellule-tableau ;" relève de cette exception, ce qui la rend incompatible avec margin.

Solution : propriété Border-Spacing

Au lieu d'utiliser margin, envisagez d'appliquer border-spacing pour obtenir un espacement entre les divs. Cependant, cette propriété doit être appliquée à un élément parent avec une disposition "display: table" et "border-collapse: séparer".

Exemple :

HTML :

<div class="table">
  <div class="row">
    <div class="cell">123</div>
    <div class="cell">456</div>
    <div class="cell">879</div>
  </div>
</div>
Copier après la connexion

CSS :

.table {
  display: table;
  border-collapse: separate;
  border-spacing: 5px;
}

.row {
  display: table-row;
}

.cell {
  display: table-cell;
  padding: 5px;
  border: 1px solid black;
}
Copier après la connexion

Voir jsFiddle Démo

Variation de la marge sur les axes horizontal et vertical

Comme mentionné par Diego Quieros, l'espacement des bordures prend en charge deux valeurs pour créer des marges différentes pour les axes horizontal et vertical.

Exemple :

.table {
  /*...*/
  border-spacing: 3px 5px; /* 3px horizontally, 5px vertically */
}
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!

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