यहाँ एक सरल और सुरुचिपूर्ण समाधान है, कुछ केवेट के साथ:
- आप वास्तव में अंतराल को पारदर्शी नहीं बना सकते हैं, आपको उन्हें एक विशिष्ट रंग देने की आवश्यकता है।
- आप अंतराल के ऊपर और नीचे सीमाओं के कोनों को गोल नहीं कर सकते
- आपको अपनी तालिका कोशिकाओं की गद्दी और सीमाओं को जानना होगा
इसे ध्यान में रखते हुए, यह प्रयास करें:
td {padding:5px 8px;border:2px solid blue;background:#E0E0E0} /* lets say the cells all have this padding and border, and the gaps should be white */
tr.gapbefore td {overflow:visible}
tr.gapbefore td::before,
tr.gapbefore th::before
{
content:"";
display:block;
position:relative;
z-index:1;
width:auto;
height:0;
padding:0;
margin:-5px -10px 5px; /* 5px = cell top padding, 10px = (cell side padding)+(cell side border width)+(table side border width) */
border-top:16px solid white; /* the size & color of the gap you want */
border-bottom:2px solid blue; /* this replaces the cell's top border, so should be the same as that. DOUBLE IT if using border-collapse:separate */
}
वास्तव में आप जो कर रहे हैं वह एक आयताकार ::before
ब्लॉक को उन सभी कोशिकाओं के शीर्ष में चिपका रहा है जो आप एक अंतर से पहले चाहते हैं। ये ब्लॉक मौजूदा सीमाओं को ओवरलैप करने के लिए, उन्हें छिपाते हुए कोशिकाओं से थोड़ा बाहर निकलते हैं। ये ब्लॉक सिर्फ एक शीर्ष और नीचे की सीमा के साथ एक साथ सैंडविच होते हैं: शीर्ष सीमा गैप बनाती है, और नीचे की सीमा कोशिकाओं की मूल शीर्ष सीमा की उपस्थिति को फिर से बनाती है।
ध्यान दें कि यदि आपके पास टेबल के चारों ओर और साथ ही साथ सेल है, तो आपको अपने ब्लॉक के क्षैतिज -ve मार्जिन को और बढ़ाने की आवश्यकता होगी। इसलिए 4px टेबल बॉर्डर के लिए, आप इसके बजाय उपयोग करेंगे:
margin:-5px -12px 5px; /* 14px = original 10px + 2px for 'uncollapsed' part of table border */
और यदि आपकी तालिका border-collapse:separate
इसके स्थान पर उपयोग करती है border-collapse:collapse
, तो आपको पूर्ण तालिका सीमा चौड़ाई का उपयोग करना होगा (a)
margin:-5px -14px 5px; /* 14px = original 10px + 4px full width of table border */
... और (बी) सीमा की दोहरी-चौड़ाई को प्रतिस्थापित करते हैं, जिसे अब अंतराल के नीचे दिखाई देने की आवश्यकता है:
border-bottom:4px solid blue; /* i.e. 4px = cell top border + previous row's bottom border */
यदि आप पसंद करते हैं, या पंक्ति अंतराल के बजाय ऊर्ध्वाधर (स्तंभ) अंतराल बनाने के लिए तकनीक आसानी से एक .gapafter संस्करण के लिए अनुकूलित है।
यहां एक कोडपेन है जहां आप इसे कार्रवाई में देख सकते हैं: https://codepen.io/anon/pen/agqPpW