【问题标题】:Align p:graphicImage to center inside p:column将 p:graphicImage 对齐到 p:column 内的中心
【发布时间】:2016-11-16 15:16:29
【问题描述】:

我正在 PrimeFaces 6.0 中开发一个测试 JSF 项目。 应该有几个图标位于类似表格的结构中并居中。 我尝试将 p:panelGrid 与 p:row 和 p:column 一起使用来创建类似表格的结构,并使用 p:graphicImage 来显示图标。

问题是让 p:graphicImage 在单元格内居中,即在 p:column 内。

我的代码示例如下,它没有提供所需的结果。

<p:panelGrid id="pgIcons" style="width: 100%;">
    <p:row>
        <p:column style="width: 34%; text-align: center;">
            <p:graphicImage id="gi1" styleClass="ui-icon ui-icon-check"/>
        </p:column>
        <p:column style="width: 33%; text-align: center;">
            <p:graphicImage id="gi2" styleClass="ui-icon ui-icon-bookmark"/>
        </p:column>
        <p:column style="width: 33%; text-align: center;">
            <p:graphicImage id="gi3" styleClass="ui-icon ui-icon-tag"/>
        </p:column>
    </p:row>
</p:panelGrid>

【问题讨论】:

  • CSS 类:.centered td {text-align: center;} 然后指定styleClass="centered"&lt;p:panelGrid&gt;(即&lt;p:panelGrid styleClass="centered" ...&gt;)。
  • 感谢发帖。不幸的是,它不起作用......也就是说,我发现它只有在 p:graphicImage 没有指定 styleClass="ui-icon ui-icon-..." 时才会起作用。

标签: html css jsf primefaces


【解决方案1】:

经过数小时的测试,我想出了一个解决方案。

看来,在这种情况下,主要问题不是如何在单元格中设置对齐方式(p:column),这可以通过任何一种建议的方式来完成(使用 style= "text-align: center;"style="margin: 0px auto;")。

这里的主要问题是 p:graphicImagestyleClass="ui-icon ui-icon-..."。如果没有那个 styleClass(并且通过使用 src="..." 来指定图像源),单元格对齐将毫无问题地应用。

如果必须使用 styleClass="ui-icon ui-icon-...",那么需要为 p:graphicImage 指定额外的样式来应对有了它,这个样式是 style="display: block; margin: 0px auto;".

<p:panelGrid id="pgIcons" style="width: 100%;">
    <p:row>
        <p:column style="width: 50%; text-align: center;">
            <p:graphicImage id="gi1" styleClass="ui-icon ui-icon-check" 
                style="display: block; margin: 0px auto;"/>
        </p:column>
        <p:column style="width: 50%; margin: 0px auto;">
            <p:graphicImage id="gi2" styleClass="ui-icon ui-icon-bookmark"
                style="display: block; margin: 0px auto;"/>
        </p:column>
    </p:row>
</p:panelGrid>

【讨论】:

    【解决方案2】:
    <p:column styleClass="centered">
        <p:graphicImage id="gi1" styleClass="ui-icon ui-icon-check"/>
    </p:column>
    
    CSS
    
    .centered td {
        margin: 0px auto;
    }
    

    【讨论】:

    • 感谢您的发帖,阅读您的回答很有用。不幸的是,这并没有解决问题。我后来发现它只有在 p:graphicImage 没有指定 styleClass="ui-icon ui-icon-..." 时才会起作用。
    猜你喜欢
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 2017-04-24
    • 2020-03-01
    • 2012-04-10
    相关资源
    最近更新 更多