对于我在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。
中进行测试
<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;
这里是CSS:
.pageHeader{
font-size: x-large;
float: left;
margin-right: 10px;
}
任何人都可以解释为什么会出现这种情况?我在网站的其他地方使用过这种模式没有任何问题。
答案 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中逐个禁用样式来验证这一点:
浮动使div重叠,如here所述。
所以你可以
float: left;
。似乎与当前代码没有区别。style="clear: both"
放在还有更多解决方案,称为“clearfix”。