File "table_boostrap_007.php"

Full Path: /home/analogde/www/Dev tableau/table_boostrap_007.php
File size: 3.88 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">
    <title>Tableau Bootstrap</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        /* Permettre à la table de défiler horizontalement */
        .table-responsive {
            overflow-x: auto;
            white-space: nowrap;
        }

        /* Bordure et espacement par défaut pour toutes les cellules */
        th, td {
            border: 1px solid #dee2e6;
            padding: 8px;
            background-clip: padding-box;
        }

        /* Fixer la largeur des colonnes sticky pour éviter l'ajustement dynamique */
        th:nth-child(1), td:nth-child(1) {
            position: sticky;
            left: 0;
            background-color: white;
            z-index: 3;
            border-right: 2px solid #dee2e6;
            width: 100px; /* Largeur fixe pour la première colonne */
        }

        th:nth-child(2), td:nth-child(2) {
            position: sticky;
            left: 100px; /* Ajuster pour la largeur de la première colonne */
            background-color: white;
            z-index: 2;
            border-right: 2px solid #dee2e6;
            width: 100px; /* Largeur fixe pour la deuxième colonne */
        }

        th:nth-child(3), td:nth-child(3) {
            position: sticky;
            left: 200px; /* Ajuster pour la largeur de la deuxième colonne */
            background-color: white;
            z-index: 1;
            width: 100px; /* Largeur fixe pour la troisième colonne */
        }

        /* Colonnes après la troisième (non sticky) */
        th:nth-child(n+4), td:nth-child(n+4) {
            position: relative;
            z-index: 0;
        }

        /* Fixer l'en-tête en haut lors du défilement vertical */
        thead {
            position: sticky;
            top: 0;
            background-color: white;
            z-index: 4;
        }

    </style>
</head>
<body>
    <div class="container-fluid mt-4">
        <div class="table-responsive">
            <table class="table table-bordered table-striped w-100">
                <thead>
                    <tr>
                        <th>Titre</th>
                        <th>col1</th>
                        <th>col2</th>
                        <th>col3</th>
                        <script>
                            for (let i = 4; i <= 200; i++) {
                                document.write(`<th>col${i}</th>`);
                            }
                        </script>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Titre 1</td>
                        <td>Donnée 1</td>
                        <td>Donnée 2</td>
                        <td>Donnée 3</td>
                        <script>
                            for (let i = 4; i <= 200; i++) {
                                document.write(`<td>Donnée ${i}</td>`);
                            }
                        </script>
                    </tr>
                    <tr>
                        <td>Titre 2</td>
                        <td>Donnée A</td>
                        <td>Donnée B</td>
                        <td>Donnée C</td>
                        <script>
                            for (let i = 4; i <= 200; i++) {
                                document.write(`<td>Donnée ${String.fromCharCode(64 + (i % 26))}</td>`);
                            }
                        </script>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>