फ्लेक्सबॉक्स के साथ, गटर बनाना एक दर्द है, खासकर जब लपेटना शामिल होता है।
आपको नकारात्मक मार्जिन का उपयोग करने की आवश्यकता है ( जैसा कि प्रश्न में दिखाया गया है ):
#box {
display: flex;
width: 100px;
margin: 0 -5px;
}
... या HTML को बदल दें ( जैसा कि दूसरे उत्तर में दिखाया गया है ):
<div class='flex-wrapper'>
<div class='flex'>
<div class='box'></div>
<div class='box'></div>
...
</div>
</div>
... या कुछ और।
किसी भी मामले में, आपको इसे काम करने के लिए एक बदसूरत हैक की आवश्यकता है क्योंकि फ्लेक्सबॉक्स एक " flex-gap
" सुविधा ( अभी के लिए कम से कम ) प्रदान नहीं करता है ।
गटर का मुद्दा, हालांकि, सीएसएस ग्रिड लेआउट के साथ सरल और आसान है।
ग्रिड कल्पना ऐसे गुण प्रदान करती है जो ग्रिड और कंटेनर के बीच की जगह की अनदेखी करते हुए ग्रिड आइटम के बीच जगह बनाते हैं। ये गुण हैं:
grid-column-gap
grid-row-gap
grid-gap
(उपरोक्त दोनों गुणों के लिए आशुलिपि)
हाल ही में, सीएसएस बॉक्स संरेखण मॉड्यूल के अनुरूप करने के लिए कल्पना को अद्यतन किया गया है , जो प्रत्येक बॉक्स मॉडल में उपयोग के लिए संरेखण गुणों का एक सेट प्रदान करता है। तो अब गुण हैं:
column-gap
row-gap
gap
(संक्षेप)
हालांकि, सभी ग्रिड-समर्थक ब्राउज़र नहीं हैं नए गुणों का समर्थन नहीं करते हैं, इसलिए मैं नीचे दिए गए डेमो में मूल संस्करणों का उपयोग करूंगा।
इसके अलावा, यदि आइटम और कंटेनर के बीच रिक्ति की आवश्यकता है, padding
ठीक काम करता है (नीचे डेमो में तीसरा उदाहरण देखें)।
कल्पना से:
10.1। गटर: row-gap
, column-gap
, और gap
गुण
row-gap
और column-gap
गुण (और उनके gap
आशुलिपि), जब एक ग्रिड कंटेनर पर निर्दिष्ट, ग्रिड पंक्तियों और ग्रिड स्तंभों के बीच गटर परिभाषित करते हैं। उनके सिंटैक्स को CSS Box Alignment 3 aps8 Gaps For Boxes में परिभाषित किया गया है ।
इन गुणों का प्रभाव ऐसा है कि प्रभावित ग्रिड लाइनों ने मोटाई हासिल कर ली है: दो ग्रिड लाइनों के बीच ग्रिड ट्रैक गटरों के बीच का स्थान है जो उनका प्रतिनिधित्व करता है।
.box {
display: inline-grid;
grid-auto-rows: 50px;
grid-template-columns: repeat(4, 50px);
border: 1px solid black;
}
.one {
grid-column-gap: 5px;
}
.two {
grid-column-gap: 10px;
grid-row-gap: 10px;
}
.three {
grid-gap: 10px;
padding: 10px;
}
.item {
background: lightgray;
}
<div class='box one'>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
</div>
<hr>
<div class='box two'>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
</div>
<hr>
<div class='box three'>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
</div>
अधिक जानकारी: