【问题标题】:How to add spaces between each row in dataTable如何在dataTable中的每一行之间添加空格
【发布时间】:2011-04-11 15:28:52
【问题描述】:

如何在表格的每一行之间添加一些空格。我试试这个

<p:dataTable styleClass="yourTableClass">
    <p:column style="background-color: ##EFF2F9">
         //Content here
    </p:column>
</p:dataTable>

但它不起作用

我使用了 primefaces 2.2.1

【问题讨论】:

    标签: css jsf primefaces


    【解决方案1】:

    首先,检查您的浏览器品牌/版本:border-spacing 在 IE6/7 上是 not supported。其次,border-spacing 仅在表的border-collapse 设置为separate 时有效。可能某些 PrimeFaces 特定样式表已将其设置为 collapse(这是一般 UI 首选的边框表示形式)。这样border-spacing 就不起作用了。

    因此,所有这些都应该可以工作,包括对最后一个声明的 IE6/7 hack:

    .yourTableClass { 
        border-collapse: separate; 
        border-spacing: 10px; 
        *border-collapse: expression('separate', cellSpacing = '10px');
    }
    

    <p:dataTable styleClass="yourTableClass">
    

    (优先类优于内联样式)


    更新:根据屏幕截图和 cmets,PrimeFaces 将生成的 HTML &lt;table&gt; 包装在 &lt;div&gt; 中,并在其上应用 style/styleClass 而不是包装的&lt;table&gt;。我没想到的是。在这种情况下,您需要以下 CSS 声明:

    .yourTableClass table { 
        border-collapse: separate; 
        border-spacing: 10px; 
        *border-collapse: expression('separate', cellSpacing = '10px');
    }
    

    【讨论】:

    • 似乎仍然无法正常工作。所以我做了你上面显示的。仍然没有任何改变。因此,当我使用 firebug 查看样式时,border-collapse: separate; 属性被划掉。我从.ui-datatable table 继承border-collapse: collapse。我在我的原始代码中发布了我的萤火虫风格的截图,请看一下,BalusC
    • 确保该样式被定义为 HTML DOM 树排序中的最后一个样式。如果 PF 样式出现在您的样式之后,那么它将获得优先权。 编辑: 哦,这很尴尬,我检查了屏幕截图,PF 将表格包装在 &lt;div&gt; 中并在其上应用类。请改用.yourTableClass table {}
    • 是的,就是这样。非常感谢:D
    【解决方案2】:

    不太确定primefaces,所以不熟悉哪些属性可以用于哪些位..

    但是border-spacing 还不能真正可靠地用作样式.. 表格仍然确实需要“老式”cellspacing 属性

    &lt;p:dataTable cellspacing="10"&gt; 有效吗?

    根据新信息更新

    改变规则

    .yourTableClass {}
    

    div div.yourTableClass table {}
    

    如果你的 layout.cssskin.css 之前被调用,这应该使规则仍然覆盖它

    你需要上面提到的 IE hack,也许你也需要让它变得具体

    【讨论】:

    • p:dataTable 没有属性cellspacing,我使用的是PF 2.2.1 btw
    • 啊好吧,抱歉,当你说你尝试过边框间距时,我假设是一个表格,也许实际的行并不是真正的表格行 - tr's - 你试过添加 style="margin: 10px 0;"看看这是否有任何作用,我认为它确实接受 style 属性,因为这就是您在示例中使用的属性
    • 顺便说一句,我确实尝试访问 primefaces 网站以查看是否可以找到更多信息,但这对我来说时机未到
    • @clairesuzy:我认为展示会暂时停止。似乎他们正在将展示柜迁移到 PF3.0 M1。给它几个小时,它应该会重新上线
    • @Harry Pham,我看到你现在已经修复了,所以不用担心。我还用特定的样式规则信息更新了我的答案,在我看到 @BalusC 已经帮助你之前......但很高兴你得到了它排序了,BalusC 得到了我的支持;)