File "code034.php"
Full Path: /home/analogde/www/Design/Dev tableau/code034.php
File size: 3.44 KB
MIME-type: text/html
Charset: utf-8
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tableau Sticky avec Scroll Snap</title>
<style>
.table-wrapper {
width: 100%;
max-height: 400px;
overflow: auto;
border: 1px solid #ccc;
scroll-snap-type: both mandatory; /* ✅ Active le snap scrolling vertical et horizontal */
}
table {
border-collapse: collapse;
min-width: 2000px; /* ✅ Largeur augmentée pour forcer le scroll */
}
th, td {
padding: 10px;
text-align: center;
border: 1px solid #ccc;
white-space: nowrap;
position: relative;
min-width: 120px; /* ✅ Taille fixe pour les colonnes */
}
/* ✅ Sticky Header */
th {
background-color: #f2f2f2;
position: sticky;
top: 0;
z-index: 1000;
}
/* ✅ Sticky First Column */
th:first-child, td:first-child {
position: sticky;
left: 0;
background-color: #fff;
min-width: 120px;
max-width: 120px;
padding-right: 10px;
z-index: 999;
}
/* ✅ Bordure droite persistante */
th:first-child::after, td:first-child::after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 2px;
height: 100%;
background-color: #ccc;
}
/* ✅ Sticky haut-gauche */
th:first-child {
position: sticky;
top: 0;
left: 0;
z-index: 1001;
background-color: #eee;
}
/* ✅ Bordure inférieure persistante */
th:first-child::before {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 2px;
background-color: #ccc;
}
/* ✅ Appliquer le snap vertical à chaque ligne */
tbody tr {
scroll-snap-align: start;
height: 40px; /* Ajuste en fonction de la hauteur des cellules */
}
/* ✅ Appliquer le snap horizontal aux colonnes (sauf la première) */
th:not(:first-child), td:not(:first-child) {
scroll-snap-align: start;
}
/* Alternance des couleurs */
tbody tr:nth-child(odd) {
background-color: #f9f9f9;
}
</style>
</head>
<body>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th></th> <!-- ✅ Cellule haut-gauche maintenant bien sticky -->
<?php for ($i = 1; $i <= 50; $i++): ?>
<th>Col <?php echo $i; ?></th>
<?php endfor; ?>
</tr>
</thead>
<tbody>
<?php for ($i = 1; $i <= 50; $i++): ?>
<tr>
<td>Row <?php echo $i; ?></td>
<?php for ($j = 1; $j <= 50; $j++): ?>
<td>Data <?php echo $i . "-" . $j; ?></td>
<?php endfor; ?>
</tr>
<?php endfor; ?>
</tbody>
</table>
</div>
</body>
</html>