如何使用CSS覆盖HTML“规则”属性?

时间:2010-05-24 14:27:51

标签: html css dita dita-ot

当一个人发布到HTML时,DITA Open Toolkit会自动造成一些内联表属性,包括frame =“border”和rules =“all”。

我需要使用单元格的CSS样式覆盖这个“规则”属性,虽然我可以在IE和Chrome中获得所需的结果,但Firefox会在表格中添加纯黑色网格,并拒绝就此事做出让步。

显然我无法编辑HTML,公司政策是不编辑XSLT,那么如何仅使用CSS删除这些网格线?

我尝试了各种狡猾的border-xxxxxx样式组合并给出了它们!重要的声明没有效果。

HTML说......

<table cellpadding="4" cellspacing="0" frame="border" border="1" rules="all">
 <thead>
    <tr>
      <th class="cellrowborder">Type </th>
      <th class="cellrowborder">Comment </th>
    </tr>
 </thead>
   <tbody>
    <tr>
      <td class="cellrowborder">Caution </td>
      <td class="cellrowborder">Think twice. </td>
    </tr>
    <tr>
      <td class="cellrowborder">Attention </td>
      <td class="cellrowborder">Be careful. </td>
    </tr>
    <tr>
      <td class="cellrowborder">Danger </td>
      <td class="cellrowborder" >Be scared. Be very scared. </td>
    </tr>
   </tbody>
</table>

CSS说

table {border: 1px solid black;
 font-family: Arial, Helvetica, sans-serif; 
 border-collapse: collapse; 
 font-size: 9pt;
 margin-top: 1em;
 margin-bottom: 1em;
 padding: 4px;}

tr {border: none;}

.cellrowborder {border: none;}

因此,虽然它看起来像我在IE中所期望的那样,但它并不在Firefox中,除非我删除HTML中的那些frame / border / rules属性。哪个我不能生产。

4 个答案:

答案 0 :(得分:2)

在文档加载中使用jQuery的remove属性来一起删除旧属性。

api.jquery.com/removeAttr

答案 1 :(得分:2)

我与<table frame="border" rules="all">进行了快速游戏。关键似乎是用另一个边框覆盖它,例如:

table {
    border: none;
    border-collapse: collapse;
}
    td {
        border: 1px solid silver;
    }

如果您需要完全删除边框,这是不理想的,但我想您可以将border-color与页面背景相匹配?

答案 2 :(得分:1)

border-color似乎适用。

答案 3 :(得分:0)

使用FireBug Inspect Element可以帮助您检测CSS属性,并允许您在Firefox中定位它(instructions here)。

您可以发布代码示例吗?