File "code024.php"

Full Path: /home/analogde/www/Design/Dev tableau/code024.php
File size: 3.66 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 Sticky Header et Sticky Colonne</title>
    <style>
        table {
            width: 100%;
            min-width: 1200px; /* S'assure qu'une largeur minimale est appliquée */
            border-collapse: collapse;
            table-layout: auto; /* Permet de gérer les largeurs des colonnes automatiquement */
        }

        th, td {
            padding: 10px;
            text-align: center;
            border: 1px solid #ccc;
            box-sizing: border-box; /* Inclut les bordures dans la largeur des cellules */
        }

        /* Sticky Header */
        th {
            background-color: #f2f2f2;
            position: sticky;
            top: 0;
            z-index: 2; /* Mettre les en-têtes de colonne au-dessus */
        }

        /* Sticky First Column */
        td:first-child {
            background-color: #fafafa; /* Fond solide pour la première colonne */
            position: sticky;
            left: 0;
            z-index: 3; /* Assure que la première colonne est au-dessus des autres */
            border-left: 2px solid #ccc; /* Bordure gauche visible */
            border-right: 2px solid #ccc; /* Bordure droite visible */
            padding-left: 12px; /* Ajoute un peu d'espace entre le contenu et la bordure */
            white-space: nowrap; /* Empêche le texte de se diviser sur plusieurs lignes */
            text-overflow: ellipsis; /* Ajoute "..." si le texte déborde */
            overflow: hidden; /* Masque le texte qui dépasse de la première colonne */
        }

        /* Sticky First Cell (top-left corner) */
        th:first-child {
            position: sticky;
            top: 0;
            left: 0;
            z-index: 4; /* Mettre la cellule en haut à gauche au-dessus des autres */
            background-color: #f2f2f2;
            border-top: 2px solid #ccc; /* Bordure supérieure */
            border-left: 2px solid #ccc; /* Bordure gauche */
        }

        /* Défilement du tableau */
        .table-wrapper {
            overflow-x: auto; /* Permet le défilement horizontal */
            overflow-y: auto; /* Permet le défilement vertical si nécessaire */
            max-height: 400px;
            height: 400px; /* Assure que le tableau n'augmente pas trop en hauteur */
        }

        /* Pour rendre le tableau plus agréable à l'œil */
        tbody tr:nth-child(odd) {
            background-color: #fafafa; /* Alternance des couleurs de lignes pour améliorer la lisibilité */
        }

        tbody tr:nth-child(even) {
            background-color: #f9f9f9;
        }

    </style>
</head>
<body>

<div class="table-wrapper">
    <table>
        <thead>
            <tr>
                <th></th>
                <!-- Création des en-têtes de colonnes (50 colonnes) -->
                <?php for ($i = 1; $i <= 50; $i++): ?>
                    <th>Col <?php echo $i; ?></th>
                <?php endfor; ?>
            </tr>
        </thead>
        <tbody>
            <!-- Création des lignes -->
            <?php for ($i = 1; $i <= 50; $i++): ?>
                <tr>
                    <td>Row <?php echo $i; ?></td>
                    <!-- Création des cellules de données -->
                    <?php for ($j = 1; $j <= 50; $j++): ?>
                        <td>Data <?php echo $i . "-" . $j; ?></td>
                    <?php endfor; ?>
                </tr>
            <?php endfor; ?>
        </tbody>
    </table>
</div>

</body>
</html>