• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Tabelle mit Toggle erstellen

Eine Alternative wäre, die Nummer und den Namen in einer Tabellenzeile anzuordnen, das details-Element in einer neuen Zeile wo es alle Zellen überspannt und dann durch ein negatives margin-top nach oben verschieben, so dass das summary die Zeile mit Nummer und Namen überdeckt. Aber dann hat man mit den Problemen von überlappenden Elementen zu kämpfen.
 
@Sempervivum, vielen Dank für deine Hilfe.

Ich habe versucht, deine Idee umzusetzen. Ich weiß allerdings nicht, ob ich es richtig verstanden habe:
Code:
<!DOCTYPE html>

<html lang="de">

<head>

    <title>Summary Details</title>

    <style>

        body {

            display: flex;

            flex-direction: column;

            align-items: center;

        }

        main {

            display: inline-flex;

            flex-direction: column;

        }

        span {

            display: inline-block;

        }


        table {

            max-width: 800px;

            margin: 0 auto;

        }

        th {

            text-align: left;

        }

        div.headline,

        details>summary {

            display: flex;

        }

        details>summary>span {

            white-space: nowrap;

        }

        ::marker {

            display: none;

        }

        div.headline>span:first-of-type,

        summary>span:first-of-type {

            flex: 0 0 3.5em;

        }

        summary::after {

            content: '►';

            margin-left: auto;

        }

        details[open] summary:after {

            content: "▼";

        }

        details>table {

            margin-left: 1em;

        }

    </style>

</head>

<body>

    <main>

        <div class="headline">
    <table>
         <tr>   
        <td><span>Lfd. Nr</span></td>
        <td><span>Name der CD</span></td>
        </tr>
    </table>
    
        </div>

        
        
        <table>
        <tr>
        <td><span>01.</span></td>
        <td><span>100 Rock Hits - The Sound of my Life</span></td>
        </tr>
        </table>

          
            
                

                
<details>
          

            <table>

                <thead>

                    <tr>

                        <th>cd2</th>

                        <th>Interpret</th>

                        <th>Titel</th>

                        <th>Zeit</th>

                    </tr>

                </thead>

                <tbody>

                    <tr>

                        <td>01.</td>

                        <td>Golden Earring</td>

                        <td>Radar Love</td>

                        <td>05:05</td>

                    </tr>

                    <tr>

                        <td>02.</td>

                        <td>Heart</td>

                        <td>Barracuda</td>

                        <td>04:24</td>

                    </tr>

                    <tr>

                        <td>03.</td>

                        <td>Judas Priest</td>

                        <td>Living After Midnight</td>

                        <td>03:31</td>

                    </tr>

                    <tr>

                        <td>04.</td>

                        <td>Alice Cooper</td>

                        <td>No More Mr. Nice Guy</td>

                        <td>03:07</td>

                    </tr>

                </tbody>

            </table>

        </details>

        <details>

            <summary>

                <span>01.</span>

                <span>Andrea Bocelli - Cieli Di Toscana</span>

            </summary>

            <table>

                <thead>

                    <tr>

                        <th>CD_01</th>

                        <th>Interpret</th>

                        <th>Titel</th>

                        <th>Zeit</th>

                    </tr>

                </thead>

                <tbody>

                    <tr>

                        <td>01.</td>

                        <td>Andrea Bocelli</td>

                        <td>Chiara</td>

                        <td>04:04</td>

                    </tr>

                </tbody>

            </table>

        </details>

    </main>

    <script>

        document.addEventListener('click', event => {

            const

                // Geöffnete Details bereit stellen:

                openDetails = document.querySelector('details[open]'),

                // Vorfahre des geklickten Elementen bereit stellen:

                ancestorDetails = event.target.closest('details');

            // Sind geöffnete Details vorhanden

            // UND

            // wurde nicht auf ein nicht geöffnetes Detail geklickt?

            if (openDetails && !(ancestorDetails && ancestorDetails.matches('[open]'))) {

                // Das geöffnete Detail schließen:

                openDetails.removeAttribute('open');

            }

        });

    </script>

</body>

</html>

Viele Grüße Enrico
 
Dein Vorschlag funktoniert. Bis auf, dass das details-Element beim Aufklappen immer etwas "verruscht".
Und beim Aufklappen des 2. Albums sollte das 1. Album nicht gleich mit zuklappen. Sondern es sollte aufgeklappt bleiben.


Bei dem Code, was ich hochgeladen habe, verrutschen die Felder "Lfd. Nr." , "Name der CD" und das Album "100 Rock-Hits" nicht.

Nur das was in den Feldern von dem details-Element steckt, verrutscht.
 
Zuletzt bearbeitet:
dass das details-Element beim Aufklappen immer etwas "verruscht".
Das war Absicht, ich wollte die verschachtelte Struktur damit deutlich machen. Wenn Du dies löschst, rutscht die Tabelle nach links:
Code:
        details>table {

            margin-left: 1em;

        }

Und beim Aufklappen des 2. Albums sollte das 1. Album nicht gleich mit zuklappen. Sondern es sollte aufgeklappt bleiben.
Ich hatte dich früher so verstanden, dass Du das so haben willst. Das macht das Javascript, wenn Du es löschst unterbleibt das automatische Zuklappen.
 
@Sempervivum

Grundsätzlich möchte ich mehrere Alben in dieser Liste oder Tabelle haben.

Die Alben haben wiederum eine oder mehrere CD´s. Durch Klicken auf das jeweilige Album sollen die jeweiligen CDs des Albums erscheinen, durch das Klicken auf die jeweilige CD die jeweiligen Titel dieser CD. Das Gleiche soll beim "Zuklappen" passieren.
 

Neueste Beiträge

Zurück
Oben