【问题标题】:css unknow property "rendered" on af:panelListaf:panelList 上的 css 未知属性“渲染”
【发布时间】:2012-12-13 20:26:43
【问题描述】:

我正在尝试在 CSS 文件上设置 af:panelList 的渲染属性,因此我无法根据设备分辨率显示它,但是当我在 CSS 上定义时:

#pl2 {
    rendered:false;
}

我得到一个“渲染”的未知属性,当它的分辨率较小时,chrome 不会隐藏它。

这是我的 .jspx 文件中的组件定义:

<af:panelList  id="pl2" rows="3" maxColumns="5" >

我能做些什么来解决这个问题?有办法吗?

【问题讨论】:

  • JSF 生成 HTML。 CSS 适用于 HTML,而不适用于 JSF。在浏览器中打开页面,右键单击并查看源代码。您将看到 JSF 生成的 HTML,这正是 CSS 所看到的。您应该将您的 CSS 完全基于该 HTML。此外,rendered 绝对不是一个有效的 CSS 属性。另见htmldog.com/guides/cssbeginner
  • 我按照你说的做了,它渲染了一个 id 为 pt1:panelobile 的 div,然后是一个没有 id 的表格。我将此行添加到 css #pt1:panelmobile { display: none;但到目前为止我没有运气,继承人检查的元素

标签: html css jsf


【解决方案1】:

它会渲染一个 id 为 pt1:panelobile 的 div,然后是一个没有 id 的表格。我将此行添加到 css #pt1:panelmobile { display: none; } 但到目前为止我还没有运气

如果您忽略不推荐使用的浏览器,例如 IE6/7,那么您应该改用这个选择器:

#pt1\:panelmobile {
    display: none;
}

: 是 CSS 选择器中的一个特殊字符,表示伪选择器,因此在原样使用时需要用\ 进行转义。

但是,特别是在您的特定情况下,更好的做法是为 JSF 组件分配一个更通用且可重用的样式类。

<af:panelList ... styleClass="hidden">

.hidden {
    display: none;
}

另见:

【讨论】:

  • 现在可以了!太感谢了!如果可以的话,我会给你买啤酒:P 非常感谢!
【解决方案2】:

如果你想隐藏元素,试试:

#pl2
{
    display: none;
}

【讨论】:

  • 我已经试过了,但它不会消失,似乎找不到这个问题
  • HTML 中很可能没有带有id="pl2" 的此类元素。显然,您已将负责的 JSF 组件放置在 JSF 表单或其他命名容器组件中,导致其客户端 ID 被前置。
  • 尝试使用firebug或chrome检查工具检查元素,然后获取元素id
  • 我检查了元素,它似乎创建了一个 div,
    我添加到CSS 这些行:#pt1:panelmobile { display: none; } 但它只是不会工作,不知道该怎么做:S
  • 尝试使用类来获取元素,插入“#pt1:panelmobile”使用“.x3q”
猜你喜欢
  • 1970-01-01
  • 2023-01-04
  • 1970-01-01
  • 2012-12-20
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
相关资源
最近更新 更多