Как я могу переопределить атрибут HTML "rules", используя CSS? - PullRequest
4 голосов
/ 24 мая 2010

DITA Open Toolkit автоматически применяет некоторые атрибуты встроенной таблицы при публикации в HTML, включая frame = "border" и rules = "all".

Мне нужно переопределить этот атрибут "rules" с помощью стилей 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 этого не происходит, ЕСЛИ Я не удаляю этиАтрибуты frame / border / rules в HTML.Что я не могу в производстве.

Ответы [ 4 ]

2 голосов
/ 24 мая 2010

У меня была быстрая игра с <table frame="border" rules="all">. Кажется, ключ заключается в том, чтобы переопределить его другой границей, например:

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

Это не идеально, если вам нужно полностью удалить границу, но я думаю, вы могли бы сопоставить border-color с фоном страницы?

2 голосов
/ 24 мая 2010

Используйте атрибут удаления jQuery при загрузке документа, чтобы удалить все старые атрибуты вместе.

api.jquery.com / removeAttr

1 голос
/ 24 мая 2010

border-color, кажется, применимо.

0 голосов
/ 24 мая 2010

Может быть, использование FireBug Inspect Element поможет вам определить свойство CSS и позволить вам указать его в Firefox ( инструкции здесь ).

Можете ли вы опубликовать пример кода?

...