CSS ile Responsive Tablo Yapımı
Artık CSS ile yazacağımız kodların responsive şekilde olması gerekiyor. Ve verilerin listelenmesinde kullandığımız tablo yapısınında responsive olması gerekiyor.
CSS de responsive yapma işlemlerini genellikle @media tag üslenmektedir bizde @media tagi kullanacağız. Basit bir tablo oluştuyoruz. Ve örnek verilerle dolduyoruz.
Tablomuz;
<table class="table">
<th>ID</th>
<th>Adı</th>
<th>Soyadı</th>
<tbody>
<tr>
<td data-title="ID">1</td>
<td data-title="Adı">Ali</td>
<td data-title="Soyad">Rodoplu</td>
</tr>
<tr>
<td data-title="ID">2</td>
<td data-title="Adı">Kerem</td>
<td data-title="Soyad">Özer</td>
</tr>
<tr>
<td data-title="ID">3</td>
<td data-title="Adı">Okan</td>
<td data-title="Soyad">Bilir</td>
</tr>
...
</tbody>
</table>
<!- Farklı olarak data-title ekliyoruz bu da bizim başlıklarımız dır.
CSS Kısmında lazım olacaktır. -->
CSS kodlarımıza geçersek;
/*table css kodlarımızdır stil kısmında kendinize göre değişiklik yapabilirsiniz.*/
table,tr,th,td{border:none}
.table{ width: 100%; display: table;}
.table tbody>tr:nth-child(odd)>th,
.table > tbody > tr:nth-child(odd) > td{background: #f9f9f9}
.table tbody > tr > td,
.table tbody > tr > th{padding: 10px 10px 10px 20px;}
.table tbody > tr > td{border-top:1px solid #ddd;}
th{text-align:left; color: #688a7e; font-weight: bold;}
.table > tbody > tr:hover > td, .table > tbody > tr:hover > th{background: #f5f5f5}
/*ekranın hangi boyutlarında devreye gireceğini belirliyoruz*/
@media
only screen and (max-width: 760px),
(min-device-width: 768px) and (max-device-width: 1024px) {
table, thead, tbody, th, td, tr {
display: block;
}
/*tablomuzun thead gizliyoruz*/
.table thead tr {
position: absolute;
top: -9999px;
left: -9999px;
}
.table tr { border: 1px solid #ccc; }
.table td {
border: none;
border-bottom: 1px solid #eee;
position: relative;
padding-left: 50%!important;
}
/*Burada td:before data-title ların css'i oluyor*/
.table td:before {
position: absolute;
top: 6px;
left: 6px;
width: 45%;
padding-right: 10px;
white-space: nowrap;
font-weight:bold;
}
/*data-title valulerini alarak sütünümuza eklemiş oluyoruz*/
.table td:before { content: attr(data-title);
}
}
Ve Responsive Tablomuz: