Css 如何将PanelGrid与中心对齐?JSF素数面
我知道在这个问题上有很多问题,但没有什么对我有效 我需要将PanelGrid与中心对齐(水平) 这是我的panelgridCss 如何将PanelGrid与中心对齐?JSF素数面,css,jsf,primefaces,panel,Css,Jsf,Primefaces,Panel,我知道在这个问题上有很多问题,但没有什么对我有效 我需要将PanelGrid与中心对齐(水平) 这是我的panelgrid <p:panelGrid styleClass="panelGridCenter"> 它只是将内容与中心对齐,而不是将panelGrid对齐。JSF组件呈现一个默认为HTML的HTML元素。要使块级元素本身居中,应将其水平边距设置为auto,而不是尝试将其内联内容居中 .panelGridCenter{ 保证金:0自动; } 另见: 上述答案在技术上是正
<p:panelGrid styleClass="panelGridCenter">
它只是将内容与中心对齐,而不是将panelGrid对齐。JSF
组件呈现一个默认为HTML的HTML
元素。要使块级元素本身居中,应将其水平边距设置为auto
,而不是尝试将其内联内容居中
.panelGridCenter{
保证金:0自动;
}
另见:
- 上述答案在技术上是正确的,但也不完整
如果你想把像div一样的东西放在中间,如果你的div宽度有限,那么上面的使用左右边距作为auto的技术就可以了。
例如,为了让你开始产生任何效果,你必须放置宽度=60%之类的东西
然后,一旦你意识到你需要使用固定的宽度。。。系统会立即提示您回答下一个问题:
那么,我应该输入什么作为我的固定宽度呢
这就是为什么我认为这个问题最好的答案是:
像上面的CSS技术,对于网页上的小细节来说是可以的。
但是,将任何内容集中在web页面上的粗粒度方法应该是使用网格系统。
大多数网格系统使用12个单元。
例如,如果网格系统默认为12个单元格=100%宽度。
例如,您可以将内容放在单元格[5-8]的中心位置,而不将内容放在centurion space单元格[1-4]和单元格[9-12]的中心位置
以下是一个基于prime faces网格系统的示例:
<h3 id="signInTitle" class="first">Sign in - FIXME - i18n</h3>
<form id="loginFormOld" (ngSubmit)="onLoginFormSubmit()">
<!-- (a) Start a grid system-->
<div class="ui-g ui-fluid">
<!-- (b) Eat the first four cells of the grid -->
<div class="ui-g-12 ui-md-4"></div>
<!-- (c) In the center location of the grid put in the Login form -->
<div class="ui-g-12 ui-md-4">
<div class="ui-inputgroup">
<span class="ui-inputgroup-addon"><i class="fa fa-user"></i></span>
<input id="emailInput" pInputText type="email" placeholder="Email" [(ngModel)]="eMail" name="eMail">
</div>
<div class="ui-inputgroup">
<span class="ui-inputgroup-addon"><i class="fa fa-key" aria-hidden="true"></i></span>
<input id="passwordInput" pInputText type="password" class="form-control" placeholder="Password" [(ngModel)]="password" name="password">
</div>
</div>
<!-- (d) Eat the rest of the first row of the grid without setting any contents -->
<div class="ui-g-12 ui-md-4"></div>
<!-- (e) Start the second row and eat the first four cells -->
<div class="ui-g-12 ui-md-4"></div>
<!-- (f) Position a form submit button on the fifth cell -->
<div class="ui-g-12 ui-md-1">
<button id="loginSubmit" pButton type="submit" label="Submit"></button>
</div>
</div>
</form>
登录-修复-i18n
上面表格上的注释应该很清楚我上面的意思。
网格系统通常会提供CSS类,以允许您的UI跨多个设备的形状因素工作,尽管。。。在这方面,我认为你不能用桌面用户界面来制作一个好的移动用户界面,也不能用移动用户界面来制作一个好的桌面用户界面。
在我看来,你们可以得到一个很好的平板电脑/桌面用户界面,但你们应该从零开始编写页面,并为手机提供最少的必要内容。但这是一个不同的讨论。。。我只想说,FlexGrid css类只会带您走这么远。
理论上有很多潜力,比在div元素上硬编码一些任意固定长度要好得多。。。但也不是解决所有问题的灵丹妙药。以防您需要右对齐
.rightAlign{
margin-left: auto;
}
因此,您建议使用
p:panelGrid layout=“grid”
(PF 6.1文档第365页)。除此之外,我还尝试使用纯html来判断“对等”jsf组件的优势是否太有限。嗨,当您使用基本面(jsf)时,我倾向于使用它们的网格系统,而不是面板网格。一般来说,在任何地方使用表都不是最佳实践。查看面板元素下的网格CSS。无论你是否使用JSF的angular。。。它是基于纯CSS的,您不需要为此使用花哨的组件。请阅读文档。。。(并检查showcase panelgrid生成的html源代码)。使用layout=“grid”时,它使用网格系统(用于响应)。不在任何地方使用桌子是完全错误的。。。如果某个东西是表(或网格,比如datatable或panelgrid),那么它就没有错。只是不要在页面布局中使用它。好的,你可以在布局网格中使用panelGrid组件。至于表,我很抱歉,但现实生活中使用表的用例很少。虽然基于DIV的表可以逐步呈现,并对较小的形状因子做出响应,但一个完整的表元素(具有多行)呈现为“大爆炸”——您经常会发现人们抱怨大表呈现速度慢。您需要表中的所有数据,并且浏览器会一次性呈现这些数据。一般来说,您最好不使用表。桌子的样式可能有问题,但很难。是的,我也不完全同意你的观点(也不完全同意),但事情不应该是教条式的。。。您可以覆盖表
、tr
和td
(imo非常容易)的css,这样您甚至可以使现有组件“响应”。。。我做到了,最困难的是你需要为盲人和聋人添加的所有新的“属性”。并不是说这样做不好,而是重复了很多努力。干杯在哪里添加.rightAlign
?在
上?
.rightAlign{
margin-left: auto;
}