Si vous avez plusieurs conteneurs avec une bordure 1px, tous les conteneurs l'un à côté de l'autre génèrent une bordure de 2px. Donc, pour se débarrasser de cela, vous définissez toujours par ex. border-right: none;
, puis ajoutez border-right: 1px;
au dernier enfant pour que tous les conteneurs aient une bordure 1px de tous les côtés.Empêcher la double bordure autour des éléments côte à côte
Mais si vous utilisez la règle flexbox flex-basis
pour casser des conteneurs dans la ligne suivante, cela casse toute l'idée border-right
, le dernier conteneur de la ligne avant la pause reste toujours à l'écart sans bordure.
par exemple. dans cet exemple, j'ai 5 conteneurs, mais je veux 4 par ligne et quand il se brise en nouvelle ligne, vous pouvez voir la question border-right
:
.wrapper {
display: flex;
flex-wrap: wrap;
width: 400px;
}
.container {
flex-basis: 20%;
border: 1px solid #000;
border-right: none;
margin-bottom: 1px;
min-height: 100px;
width: 100px;
display: flex;
justify-content: center;
align-items: center;
}
.container:last-child {
border-right: 1px solid #000;
}
<div class="wrapper">
<div class="container">1</div>
<div class="container">2</div>
<div class="container">3</div>
<div class="container">4</div>
<div class="container">5</div>
</div>
https://jsfiddle.net/45kngj9p/
la '.container: nième enfant (4)' approche est une approche valable, mais cela dépend si vous voulez toujours 4 blocs dans une ligne ou un nombre différent de blocs en ligne sur différents écrans. Même si vous avez besoin, vous pouvez utiliser la même approche avec les requêtes média. –
Une solution js est-elle acceptable? – jfeferman