O Oracle Content Management fornece um CSS de exemplo de uma tabela responsiva num componente de parágrafo que permite o empilhamento de dados de linha quando apresentados em dispositivos móveis.
Uma tabela responsiva ajustará a tabela de modo a apresentar o conteúdo de forma eficiente consoante o tamanho do ecrã. Por exemplo, uma tabela de 5 colunas poderá ser apresentada corretamente no modo horizontal numa página Web, mas quando visualizada num telefone, os dados poderão ser apresentados mais corretamente como empilhados. Repare que as tabelas responsivas precisam de uma linha de cabeçalho para poder ter um comportamento correto.
No seguinte HTML gerado, repare que existe um atributo de etiqueta de dados acrescentado a cada célula da tabela com valores correspondentes ao texto do cabeçalho da coluna.
<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>
Assim que esse atributo estiver em cada célula, os elementos de TD são empilhados na parte superior de cada um quando são aplicadas as regras de CSS abaixo.
.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; }
Repare que a regra de multimédia abaixo consulta o tamanho do ecrã e só produzirá efeito quando o tamanho do ecrã for inferior a 767 píxeis:
@media screen and (max-width: 767px) {
O exemplo de código para a utilização de css para permitir que as tabelas inseridas sejam responsivas está localizado no design.css por omissão do StarterTheme fornecido. Se criar um site a partir de StarterTheme, as tabelas inseridas num slot de parágrafo serão responsivas por omissão. Para inserir uma tabela:
Quando terminar, volte para o modo para Visualizar e selecione uma opção de visualização com uma largura de ecrã inferior a 767 píxeis para pré-visualizar os resultados. Deve estar no modo de visualização, uma vez que uma tabela não se comporta de forma responsiva no modo de edição.
Se pretender utilizar tabelas responsivas quando cria um site a partir de um tema diferente, precisará de copiar o código do design.css do StarterTheme para o ficheiro design.css do tema que está a utilizar.
/** * 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; } }