使用<h:outputstylesheet>使<p:outputlabel>组件不可见</p:outputlabel> </h:outputstylesheet>

时间:2014-11-13 15:42:55

标签: html css jsf primefaces

对于我在JSF工作的网页,我有一个相当奇怪的问题。基本上,当我使用h:outputStylesheet标记包含网站样式表时,表示文档标题的outputLabel组件会消失。

outputLabel位于页面源中,呈现的属性= true,但它不可见。

我使用JSF2.2,PrimeFaces 5.1,OmniFaces 1.8(虽然页面上没有任何omnifaces标签),使用Glassfish 4.1进行netbeans。在Chrome版本38.0.2125.111 m。

中进行测试

&#13;
&#13;
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:pf="http://primefaces.org/ui"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
    <h:head>
        <title>Activity View</title>
        <h:outputStylesheet library="stylesheets" name="main.css"/>
    </h:head>
    <h:body>
        <div id="title" class="pageHeader">
            <pf:outputLabel value="Activity: [Title]: [Type]"/>
        </div>
        <div>
            <pf:accordionPanel>
                <pf:tab title="Brief" >
                    <p>
                    </p>
                </pf:tab>
            </pf:accordionPanel>            
        </div>
    </h:body>
</html>
&#13;
&#13;
&#13;

这里是CSS:

.pageHeader{
font-size: x-large;
float: left;
margin-right: 10px;

}

任何人都可以解释为什么会出现这种情况?我在网站的其他地方使用过这种模式没有任何问题。

2 个答案:

答案 0 :(得分:0)

我不确定这是否可以解决问题,但您可以尝试使用标记:

xmlns:p="http://primefaces.org/ui

而不是

xmlns:pf="http://primefaces.org/ui"

和outputLabel:

<p:outputLabel />

而不是

<pf:outputLabel />

答案 1 :(得分:0)

原因是float: left; - 您可以通过选择div并在firebug中逐个禁用样式来验证这一点:

enter image description here

浮动使div重叠,如here所述。

所以你可以

  • 删除float: left;。似乎与当前代码没有区别。
  • style="clear: both"放在
  • 下方的div上

还有更多解决方案,称为“clearfix”。