File "table_boostrap_008.php"
Full Path: /home/analogde/www/Dev tableau/table_boostrap_008.php
File size: 4.45 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 avec Défilement</title>
<!-- Lien vers Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEJ6hu7N9R3K5wCoPY5i2hPnZjVqX7f2FMY6rnxjtb+HAjsaayjGVoF2A+Ug5" crossorigin="anonymous">
<style>
/* Style personnalisé */
.table-container {
overflow-x: auto; /* Barre de défilement horizontale */
width: 100%;
max-width: 100%; /* Pour s'assurer que la table ne dépasse pas */
}
table {
width: 100%;
table-layout: auto; /* La table ajustera automatiquement les colonnes */
border-collapse: separate; /* Pour que les bordures se rejoignent sans espaces */
border-spacing: 0; /* Supprimer l'espacement entre les cellules */
}
th, td {
text-align: center;
padding: 15px 25px; /* Augmenter la taille des cellules pour la lisibilité */
border: 1px solid #dee2e6; /* Bordures visibles */
white-space: nowrap; /* Pour éviter que le texte dépasse */
min-width: 120px; /* Largeur minimale des cellules */
}
/* Rendre les 2 premières colonnes sticky */
th:nth-child(1), td:nth-child(1) {
position: sticky;
left: 0;
background-color: #f8f9fa; /* Couleur de fond des colonnes sticky */
z-index: 2; /* Positionner la première colonne au-dessus des autres */
width: 120px; /* Largeur fixe pour la première colonne */
}
th:nth-child(2), td:nth-child(2) {
position: sticky;
left: 120px; /* Ajuster cette valeur pour placer la 2ème colonne correctement après la 1ère */
background-color: #f8f9fa;
z-index: 1; /* Positionner la deuxième colonne au-dessus des autres, mais en dessous de la première */
width: 120px; /* Largeur fixe pour la deuxième colonne */
}
/* Ajouter un peu d'espace pour mieux visualiser */
th {
background-color: #007bff;
color: white;
}
td {
background-color: #f1f1f1;
}
/* Ajouter une bordure explicite entre les colonnes sticky */
th:nth-child(2)::before, td:nth-child(2)::before {
content: '';
position: absolute;
left: -1px;
top: 0;
bottom: 0;
width: 1px;
background-color: #dee2e6;
}
/* Ajouter une bordure explicite pour les cellules sticky */
th:nth-child(1), td:nth-child(1),
th:nth-child(2), td:nth-child(2) {
border-right: 1px solid #dee2e6; /* Ajouter une bordure droite explicite */
}
</style>
</head>
<body>
<div class="container mt-5">
<div class="table-container">
<table class="table table-bordered">
<thead>
<tr>
<th>Jour</th>
<th>Mois</th>
<th>Semaine</th>
<?php
// Générer les colonnes supplémentaires jusqu'à 200
for ($i = 4; $i <= 200; $i++) {
echo "<th>Colonne $i</th>";
}
?>
</tr>
</thead>
<tbody>
<tr>
<td>Total</td>
<td></td>
<td></td>
<?php
// Générer les valeurs pour chaque colonne (exemple)
for ($i = 4; $i <= 200; $i++) {
echo "<td>Valeur $i</td>";
}
?>
</tr>
<tr>
<td>Jour 1</td>
<td>Janvier</td>
<td>1</td>
<?php
// Remplir les valeurs pour chaque colonne
for ($i = 4; $i <= 200; $i++) {
echo "<td>Valeur $i</td>";
}
?>
</tr>
<tr>
<td>Jour 2</td>
<td>Février</td>
<td>2</td>
<?php
// Remplir les valeurs pour chaque colonne
for ($i = 4; $i <= 200; $i++) {
echo "<td>Valeur $i</td>";
}
?>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Lien vers Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-KyZXEJ6hu7N9R3K5wCoPY5i2hPnZjVqX7f2FMY6rnxjtb+HAjsaayjGVoF2A+Ug5" crossorigin="anonymous"></script>
</body>
</html>