Как выровнять компоненты 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%; }