Как выровнять компоненты JSF по центру
в моем веб-приложении JSF 2 - Primefaces 3 я использую <p:panelGrid>
и <p:panel>
. У меня есть несколько компонентов внутри них, которые остаются оправданными. Мне нужно, чтобы все были в центре. Как мы можем это сделать, я пытался использовать div, но это не работает.
4 ответов
посмотрите на сгенерированный вывод HTML и измените CSS соответственно.
если HTML элемент, который вы хотите центр блочный элемент (<div>
, <p>
, <form>
, <table>
и т. д., или принуждают display: block;
), то вам сначала нужно дать ему известную ширину, а затем вы можете центрировать его относительно своего родительского элемента блока с помощью CSS margin: 0 auto;
о самом элементе.
если HTML элемент, который вы хотите центр inline элемент (<span>
, <label>
, <a>
, <img>
и т. д., или принуждают display: inline;
), то вы можете центрировать его с помощью CSS text-align: center;
на родительском элементе блока.
Если вы хотите установить содержимое primefaces: panelGrid в центр, вы можете попробовать следующее:
<h:panelGrid column="1">
<h:panelGroup style="display:block; text-align:center">
your contents...
</h:panelGroup>
</h:panelGrid>
мы используем RichFaces, но решение, которое мы использовали в этом случае, может применяться и к Primefaces. Мы использовали для стиля внутренних элементов css.
После того, как вы визуализируете страницу в браузере, вы можете найдите исходный код и узнайте, какие элементы HTML отображаются. Тогда создать определенный CSS классы и стиль всей панели или внутренних элементов в panelGrid для этого класса.
большую часть времени это было самое простое решение а также достаточно.
попробуйте с css и p:panelGrid
columnClasses атрибутов:
<p:panelGrid columnClasses="centered">
...
</p:panelGrid>
затем в вашей таблице стилей создайте класс, например:
.centered {
text-align: center;
}
если у вас есть компоненты p:panelGrid
столбец, отличный от текста, добавьте атрибут margin в свой класс css:
.centered {
text-align: center;
margin-left: 50%;
}