当前位置: 首页 > 面试题库 >

如何在CSS选择器中使用带有冒号“:”的JSF生成的HTML元素ID?

傅长恨
2023-03-14
问题内容

我一直在使用JSF处理一个简单的Java EE项目。

<h:form id="phoneForm">
    <h:dataTable id="phoneTable">

    </h:dataTable>
</h:form>

我尝试通过设置CSS #phoneTable { ... },但是它不起作用。在客户端检查HTML源代码后,看来JSF生成的HTML表获得了形式为的客户端ID
id="phoneForm:phoneTable"。我无法通过来应用CSS #phoneForm:phoneTable { ... },因为冒号指示伪选择器的开始并导致错误。

无论如何,如何在CSS选择器中使用它?


问题答案:

:是CSS标识符的特殊字符,它代表了一个开始伪类选择一样:hover:first-child等你将需要转义。

#phoneForm\:phoneTable {
    background: pink;
}

这仅在IE6 / 7中不起作用。如果您也想支持这些用户,请\3A改用(后面有空格!)

#phoneForm\3A phoneTable {
    background: pink;
}

以上适用于所有浏览器。

还有其他几种方法可以解决此问题:

  1. 只需将其包装在纯HTML元素中,然后通过它样式即可。
    <h:form id="phoneForm">
    <div id="phoneField">
        <h:dataTable id="phoneTable">
    

    #phoneField table {
    background: pink;
}
  1. 使用class代替id。例如
    <h:dataTable id="phoneTable" styleClass="pink">
    

    .pink {
    background: pink;
}

要么

    table.pink {
    background: pink;
}

另一个优点是,这允许更多的抽象自由。当您想在另一个元素上重用相同的属性时,CSS可在多个元素上重用,而无需添加选择器和/或copypaste属性。

  1. 自仅JSF 2.x起:UINamingContainer通过在中的以下上下文参数更改JSF默认分隔符web.xml。例如
    <context-param>
    <param-name>javax.faces.SEPARATOR_CHAR</param-name>
    <param-value>-</param-value>
    



 类似资料:
  • 问题内容: JSF将输入字段的ID设置为。我需要在该元素上指定一些样式,但是冒号看起来像是浏览器伪元素的开头,因此它被标记为无效并被忽略。反正有逃脱结肠之类的东西吗? 问题答案: 反斜杠: 另请参见 在CSS中使用命名空间 (MSDN)

  • 问题内容: 如何使用选择器在CSS中选择元素的上述元素 在这里,我想使用class ,以便可以使用CSS选择器获取上述元素。 问题答案: 纯CSS不可能做到这一点…

  • 本文向大家介绍Jsoup 使用CSS选择器选择元素,包括了Jsoup 使用CSS选择器选择元素的使用技巧和注意事项,需要的朋友参考一下 示例 您可以在此处找到支持的选择器的详细概述。

  • 问题内容: 给定以下类和控制器操作方法: 以及以下形式: 我可以同时更新School实例和School的Address成员。这真是太好了!谢谢ASP.NET MVC团队! 但是,如何使用jQuery选择下拉列表,以便可以预先填写呢?我意识到我可以在服务器端进行操作,但是页面上还会有其他影响列表的动态元素。 以下是我到目前为止所拥有的,并且由于选择器似乎与ID不匹配而无法正常工作: 问题答案: 在每

  • 问题内容: 在以下HTML中,我想在图像悬停时将悬停效果应用于标题。是否有CSS选择器可以执行此操作? 的HTML 问题答案: 更新:主题说明符似乎已从Selectors Level 4规范的 编辑者草案(2014年5月6日)中 删除。这样就无法使用CSS来实现这一目标。 选择器级别4引入了主题说明符,该说明符允许: 选择。 当前不存在浏览器支持AFAIK。 您可以在JavaScript中对其进行

  • 问题内容: 我想基于内部HTML使用CSS选择器设置仅第二个样式(innerHTML2)。这可能吗?我试过使用,但似乎不起作用。 问题答案: 使用CSS不可能做到这一点。但是,您可以使用jQuery。