4

当发布到 HTML 时,DITA Open Toolkit 会自动添加一些内联表格属性,包括 frame="border" 和 rules="all"。

我需要使用单元格的 CSS 样式来覆盖这个“规则”属性,虽然我可以在 IE 和 Chrome 中获得所需的结果,但 Firefox 在表格中放置了纯黑色网格线并且拒绝让步。

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

我尝试了各种巧妙的border-xxxxxx 样式组合,并给了它们 !important 声明无效。

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 中的那些框架/边框/规则属性。我不能在生产中。

4

4 回答 4

2

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

api.jquery.com/removeAttr

于 2010-05-24T14:38:23.970 回答
2

我玩得很快<table frame="border" rules="all">。关键似乎是用另一个边框覆盖它,例如:

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

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

于 2010-05-24T15:16:29.327 回答
1

border-color似乎适用。

于 2010-05-24T14:42:09.660 回答
0

也许使用 FireBug Inspect Element 可以帮助您检测 CSS 属性并允许您在 Firefox 中定位它(此处的说明)。

您可以发布代码示例吗?

于 2010-05-24T14:34:52.743 回答