我试图将组件置于jsf页面中心,它看起来像这样:
<p:panel header="Enter your credentials:" style="vertical-align:middle;">
<h:panelGrid columns="2" styleClass="panelGridCenter">
<h:outputText value="Login: " />
<p:inplace id="Login">
<p:inputText value="Enter login" />
</p:inplace>
</h:panelGrid>
</p:panel>
我试图像这样输入:
style="vertical-align:middle;"
我试过使用css类(我几乎没有使用css的经验):
.panelGridCenter {
margin: 0 auto;
vertical-align:middle;
}
但它不起作用。 你能给我一些例子或提示如何将这个组件(面板)放在jsf页面的中心吗?
p - primefaces
事先提前答案 0 :(得分:1)
这可能无关紧要,因为我无法回答你的问题,但是一个对话框(默认居中)对于登录页面看起来很酷:
<h:body>
<p:growl id="growl" life="5000" autoUpdate="true" showDetail="true" escape="false"/>
<h:form>
<p:dialog id="dialog" header="Login" footer="..." width="400" widgetVar="dlg" visible="true" closable="false" showEffect="clip" draggable="false" resizable="false" style="box-shadow: 7px 10px 5px #303030;">
<p:panelGrid columns="2" style="margin: 0 auto">
<h:outputText value="username:"/>
<h:inputText value="#{loginBean.username}" id="username"/>
<h:outputText value="password:"/>
<h:inputSecret value="#{loginBean.password}" id="password"/>
</p:panelGrid>
<p:commandButton id="button" value="Login" action="#{loginBean.doLogin}" style="float:right"/>
</p:dialog>
</h:form>
</h:body>
visible="true"
会在加载后自动显示对话框。
受this文章的启发,还展示了如何保护应用程序的部分内容。
答案 1 :(得分:1)
尝试以下代码我希望这个答案成为您的问题
<h:form>
<table width="100%" cellpadding="0" cellspacing="0" border="0" align="center" class="outer_table">
<tr>
<td>
<table width="500" height="300" cellpadding="0" cellspacing="0" border="0" align="center">
<tr>
<td align="center">
<p:panel header="Login">
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="username" value="username" />
<p:inputText id="username" value="#{loginBean.uname}" required="true" label="username"/>
<h:outputLabel for="password" value="password" />
<p:password id="password" value="#{loginBean.password}" required="true" label="password" />
<p:commandButton value="Login" action="#{loginBean.loginProject}" update=":growl"/>
</h:panelGrid>
</p:panel>
</td>
</tr>
</table>
</td>
</tr>
</table>
</h:form>
CSS
<script type="text/css">
html, body
{
margin:0px;
padding:0px;
width:100%;
min-height:100%;
height:100%;
}
.outer_table
{
width:100%;
height:100%;
}
</script>
答案 2 :(得分:0)
我不是专家,而是分享我自己的经验。将面板放入表单后,尝试将表单放入div中,格式如下:
<div style="width:360px; margin: 10% auto 10% auto;">
<h:form>
....
</h:form>
</div>