Maison >interface Web >tutoriel CSS >Pourquoi les marges ne fonctionnent-elles pas sur les divs avec « display: table-cell; » ?
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.
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.
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>
CSS :
.table { display: table; border-collapse: separate; border-spacing: 5px; } .row { display: table-row; } .cell { display: table-cell; padding: 5px; border: 1px solid black; }
Voir jsFiddle Démo
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 */ }
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!