FireFox CSS Table Extra Border Line - PullRequest
       22

FireFox CSS Table Extra Border Line

4 голосов
/ 08 октября 2010

Я столкнулся с проблемой CSS с границей таблицы в Firefox, когда CSS-граница - это коллапс, и у него есть 2 объединенных ячейки, одна из которых имеет границу 1px.Дополнительная нежелательная граница существует справа.Эта проблема не существует в других браузерах, IE и Chrome не имеют проблемы.

Версия Firefox

Mozilla / 5.0 (Windows; U; Windows NT 5.1; zh-CN; rv: 1.9.2.8) Gecko / 20100722 Firefox / 3.6.8 (.NET CLR 3.5.30729)

Мой проверенный тип документа:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

.


alt text

<table cellspacing="0" cellpadding="0" style="position: absolute; width: 217px; left: 0px;border-collapse:collapse">
<colgroup><col col="0" style="width: 72px;"><col col="1" style="width: 72px;"><col col="2" style="width: 72px;">
</colgroup>
<tbody>
<tr tridx="0" style="height: 19px;">
<td rowspan="2" colspan="2" style="border: 1px solid #000000"></td><td row="0" col="2"></td>
</tr>
<tr tridx="1" style="height: 19px;"><td row="1" col="2"></td></tr>
<tr tridx="2" style="height: 19px;"><td row="2" col="0"></td><td row="2" col="1"></td><td row="2" col="2"></td></tr>
<tr tridx="3" style="height: 19px;"><td rowspan="3" colspan="2" style="border: 1px solid #000000"></td><td></td></tr>
<tr tridx="4" style="height: 19px;"><td ></td></tr>
<tr tridx="5" style="height: 19px;"><td></td></tr>
</tbody>
</table>

1 Ответ

3 голосов
/ 08 октября 2010

Я не знаю, есть ли лучшее решение для этого, но проблема заключается в colspan и использовании border-collapse.

Я переписал код только потому, что он показался мне беспорядочным, но в основном решение было использовать border-spacing: 0; вместо border-collapse: collapse;

Это не идеально, потому что это не одно и то же. Поэтому, если бы у всех ваших ячеек были границы, то те, которые находились внутри таблицы, удвоились бы, создавая границу размером 2 пикселя.

Однако в этой ситуации вы ничего не заметите, и вы все равно можете использовать border-collapse.

Ну, я думаю, что сказал достаточно.

Вот мой код (немного отличается от вашего, но он делает то же самое):

CSS:

<style type="text/css">
.tableStyle {
 position: absolute;
 left: 0px;
 border-spacing: 0;
}
.tableStyle td {
 height: 19px;
 width: 72px;
}
.blackBorder {
 border: 1px solid #000;
}
</style>

HTML:

<table class="tableStyle">
 <tr>
  <td rowspan="2" colspan="2" class="blackBorder">1</td>
  <td>2</td>
 </tr>
 <tr>
  <td>3</td>
 </tr>
 <tr>
  <td>4</td>
  <td>5</td>
  <td>6</td>
 </tr>
 <tr>
  <td rowspan="3" colspan="2" class="blackBorder">7</td>
  <td>8</td>
 </tr>
 <tr>
  <td>9</td>
 </tr>
 <tr>
  <td>10</td>
 </tr>
</table>
...