Oracle Content Management предоставляет пример CSS адаптивной таблицы в компоненте абзаца, который позволяет реализовать многоярусное отображение данных строк на мобильных устройствах.
Адаптивная таблица настраивает таблицу для эффективного отображения контента в зависимости от размера экрана. Например, на веб-странице таблица из 5 столбцов хорошо отображается горизонтально, но при просмотре на телефоне данные могут быть лучше представлены в виде стека. Обратите внимание, что для правильного поведения адаптивным таблицам требуется строка заголовка.
В следующем созданном HTML-коде обратите внимание на то, что в каждую ячейку таблицы добавлен атрибут data-label со значениями, совпадающими с текстом заголовка столбца.
<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>
Если этот атрибут находится в каждой ячейке, при применении приведенных ниже правил CSS теги TD накладываются друг на друга.
.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; }
Обратите внимание, что приведенное ниже правило для мультимедиа запрашивает размер экрана и вступает в силу, только если размер экрана меньше 767 пикселей:
@media screen and (max-width: 767px) {
Пример кода для использования CSS, чтобы разрешить вставленным таблицам быть адаптивными, находится в файле design.css предоставленной темы StarterTheme. При построении сайта на основе StarterTheme таблицы, вставленные в ячейку абзаца, по умолчанию будут адаптивными. Чтобы вставить таблицу, выполните указанные ниже действия.
По завершении переключитесь обратно в режим просмотра и выберите вариант просмотра с шириной экрана менее 767 пикселей для предварительного просмотра результатов. Режим просмотра необходим, так как таблица не ведет себя адаптивно в режиме редактирования.
Если при построении сайта на основе другой темы планируется использовать адаптивные таблицы, код из файла design.css StarterTheme необходимо скопировать в файл design.css используемой темы.
/** * 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; } }