İşte birkaç uyarı ile basit ve zarif bir çözüm:
- Aslında boşlukları şeffaf hale getiremezsiniz, onlara belirli bir renk vermeniz gerekir.
- Boşlukların üstündeki ve altındaki kenarların köşelerini yuvarlayamazsınız
- Tablo hücrelerinizin doldurma ve kenarlıklarını bilmeniz gerekir
Bunu göz önünde bulundurarak şunu deneyin:
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 */
}
Aslında yaptığınız şey bir dikdörtgeni yapıştırmak ::before
bloğu, boşluktan önce istediğiniz satırdaki tüm hücrelerin üstüne . Bu bloklar mevcut sınırların üst üste gelip onları gizlemek için hücrelerden biraz dışarı çıkar. Bu bloklar sadece bir üst ve alt sınır birlikte sandviçlenir: Üst sınır boşluğu oluşturur ve alt sınır hücrelerin orijinal üst sınırının görünümünü yeniden oluşturur.
Tablonun yanı sıra hücrelerin etrafında bir kenarlık varsa, 'bloklarınızın' yatay -ve kenar boşluğunu daha da artırmanız gerektiğini unutmayın. Yani 4 piksellik bir tablo kenarlığı için şunu kullanırsınız:
margin:-5px -12px 5px; /* 14px = original 10px + 2px for 'uncollapsed' part of table border */
Tablonuz border-collapse:separate
bunun yerine kullanıyorsa border-collapse:collapse
, (a) tam tablo kenarlığı genişliğini kullanmanız gerekir:
margin:-5px -14px 5px; /* 14px = original 10px + 4px full width of table border */
... ve ayrıca (b) boşluğun altında görünmesi gereken kenarlığın çift genişliğini değiştirin:
border-bottom:4px solid blue; /* i.e. 4px = cell top border + previous row's bottom border */
Teknik, isterseniz bir .gapafter sürümüne veya satır boşlukları yerine dikey (sütun) boşluklar oluşturmaya kolayca uyarlanabilir.
İşte onu görebileceğiniz bir kod kalemi: https://codepen.io/anon/pen/agqPpW