Služba Oracle Content Management obsahuje v rámci komponentu odseku ukážku štýlu CSS responzívnej tabuľky, ktorý umožňuje vrstvenie dát riadkov pri zobrazení v mobilných zariadeniach.
Responzívna tabuľka prispôsobí veľkosť tabuľky veľkosti obrazovky tak, aby sa obsah zobrazoval efektívne. Napríklad tabuľka s 5 stĺpcami sa môže na webovej stránke pri vodorovnom zobrazení zobrazovať správne, no na prezentáciu dát v telefóne môže byť vhodnejšie vrstvené zobrazenie. Nezabúdajte, že responzívne tabuľky vyžadujú na správne fungovanie riadok hlavičky.
V nasledujúcom generovanom kóde HTML si všimnite, že do každej bunky tabuľky bol pridaný atribút data-label s hodnotami, ktoré sa zhodujú s textom hlavičky stĺpca.
<thead> <tr> <th scope="col">ACCOUNT</th> <th scope="col">DUE DATE</th> <th scope="col">AMOUNT</th> <th scope="col">MINIMUM</th> <th scope="col">PERIOD</th> </tr> </thead> <tbody> <tr> <td data-label="ACCOUNT">Visa</td> <td data-label="DUE DATE">04/16/2020</td> <td data-label="AMOUNT">$3,090</td> <td data-label="PERIOD">03/09/2020 - 04/08/2020</td> </tr>
Po nastavení tohto atribútu pre každú bunku sa bunky navrstvia jedna na druhú po použití nižšie uvedených pravidiel CSS.
.scs-paragraph:not(.scs-paragraph-edit) table td { border-bottom: 1px solid #ddd; display: block; text-align: right; } .scs-paragraph:not(.scs-paragraph-edit) table td::before { content: attr(data-label); float: left; font-weight: bold; }
Všimnite si, že nižšie uvedené pravidlo médií zistí veľkosť obrazovky a použije sa len vtedy, ak je rozlíšenie obrazovky menšie ako 767 pixelov:
@media screen and (max-width: 767px) {
Príklad kódu na povolenie responzívnych tabuliek pomocou CSS nájdete v predvolenom súbore design.css motívu StarterTheme. Ak vytvárate lokalitu na základe motívu StarterTheme, tabuľky, ktoré vložíte do slotu odseku, budú predvolene responzívne. Ako vložiť tabuľku:
Keď skončíte, prepnite späť do režimu zobrazenia a výberom voľby zobrazenia so šírkou obrazovky menšou ako 767 pixelov zobrazte ukážku výsledku. Je nevyhnutné prejsť do režimu zobrazenia, pretože tabuľky sa nesprávajú responzívne v režime úprav.
Ak chcete responzívne tabuľky používať aj pri vytváraní lokality na základe iného motívu, bude potrebné skopírovať kód zo súboru design.css motívu StarterTheme do súboru design.css vybraného motívu.
/** * An example CSS of how to render a table responsively. * It enables stacking of row data on mobile devices. * Only do this for view mode (not for edit mode). * * On each cell rendered, it adds a user-defined attribute * 'data-label' with value matching the column header text. */ @media screen and (max-width: 767px) { .scs-paragraph:not(.scs-paragraph-edit) table { border: 0; } .scs-paragraph:not(.scs-paragraph-edit) table caption { font-size: 1.3em; } .scs-paragraph:not(.scs-paragraph-edit) table thead { border: none; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .scs-paragraph:not(.scs-paragraph-edit) table tr { border-bottom: 3px solid #ddd; display: block; margin-bottom: .625em; } .scs-paragraph:not(.scs-paragraph-edit) table td { border-bottom: 1px solid #ddd; display: block; text-align: right; } .scs-paragraph:not(.scs-paragraph-edit) table td::before { content: attr(data-label); float: left; font-weight: bold; } .scs-paragraph:not(.scs-paragraph-edit) table td:last-child { border-bottom: 0; } }