Как управлять выравниванием DataTable внутри PanelGrid?

У меня есть настройка столбца Grid с несколькими столбцами, с таблицами данных в качестве каждого из столбцов. Каждый из таблиц данных имеет разную длину. Это приводит к тому, что панель Grid растягивается до самой большой таблицы данных (пока это хорошо). Остальные таблицы данных располагаются по центру по вертикали (это нехорошо, так как на экране это выглядит ужасно), а не по верхнему выравниванию.

Как я могу сказать panelGrid для выравнивания по верху содержимого? Или мой подход совершенно неправильный, и мне нужно сделать что-то другое (если да, предложения приветствуются)?

8
задан BalusC 9 March 2015 в 16:05
поделиться

1 ответ

JSF отображается как HTML и может быть оформлен с помощью CSS. Проверьте элемент следующим образом:

  1. Просмотрите страницу JSF в браузере.
  2. Щелкните страницу правой кнопкой мыши.
  3. Выберите Просмотреть источник.

отображает HTML-элемент

; также отображается как элемент HTML
. Элементы данных вложены в элемент
, отображаемый с помощью . Итак, установите для vertical-align элемента элемента значение top.

Предполагая, что имеет id, который заканчивается как

в HTML, используйте следующее CSS:

#panelGridId>tbody>tr>td { 
    vertical-align: top;
}

Формы

Если сетка является частью формы, CSS должен будет включать идентификатор формы.Например:

<form id="amazingForm">
  <h:panelGrid id="amazingGrid">
    ...
  </h:panelGrid>
</form>

CSS будет выглядеть следующим образом:

#amazingForm\:amazingGrid > tbody > tr > td {
  vertical-align: top;
}

Пример

Вот пример HTML-документа, в котором показано вертикальное выравнивание, работающее в таблице, настроенной с помощью CSS:

<!-- language: html -->

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>SO question 3547485</title>
        <style>#myid>tbody>tr>td { vertical-align: top; }</style>
    </head>
    <body>
        <table id="myid">
            <tbody>
                <tr>
                    <td><table><tbody><tr><td>n1a</td></tr><tr><td>n1b</td></tr></tbody></table></td>
                    <td><table><tbody><tr><td>n2a</td></tr></tbody></table></td>
                    <td><table><tbody><tr><td>n3a</td></tr><tr><td>n3a</td></tr><tr><td>n3c</td></tr></tbody></table></td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

Все выравнивается по верхнему краю. Без правила все становится центрированным. Трудно сказать, какое именно правило вам нужно применить, поскольку неясно, как выглядит сгенерированная вами разметка.

Учебники

См. также:

8
ответ дан 5 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: