Подтвердить что ты не робот

Почему моя ширина ячейки таблицы ошибочна в Chrome?

У меня есть таблица с двумя строками. В первой строке всего три ячейки. Вторая строка имеет две ячейки, первая ячейка которой содержит другую таблицу, которая должна заполнять всю ячейку.

<table border="1" style="border-collapse:collapse;">
    <tr>
        <td style="WIDTH: 205px;">1</td> <!--This width doesn't apply in Chrome-->
        <td style="width:100%;">2</td>
        <td style="WIDTH: 5px;">3</td>
    </tr>                

    <tr>
        <td colspan="2">

                <TABLE width="100%" border="1" style="border-collapse:collapse;table-layout: fixed;">
                    <TR>
                        <TD style="width:130px;">
                            A</TD>
                        <TD style="width:90px;">
                            B</TD>
                        <TD style="width:230px;">
                           C</TD>
                    </TR>

                </TABLE>        
        </td>
        <td>
            D
        </td>
    </tr>
</table>  

Достаточно просто, действительно... или так я думал.

Похоже, я бы ожидал в IE. Но Chrome, похоже, неправильно применяет ширину первой ячейки. Кажется, что это влияет на таблицу в ячейке ниже.

enter image description here

Почему это происходит, и как я могу обойти это?

4b9b3361

Ответ 1

Две вещи, которые вы должны сделать:

  • В элементе таблицы используйте table-layout: fixed;
  • Вставьте столбцы и дайте им ширину
    • (Вы также можете назначить ширину заголовкам/ячейкам таблицы первой строки)

Вот так:

<table border="1" style="table-layout: fixed; width: 100%;">
    <colgroup>
        <col style="width: 205px;">
        <col style="width: auto;">
          <!-- Use "width: auto;" to apply the remaining (unused) space -->
        <col style="width: 5px">
    </colgroup>

    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr> 

    <!-- Etc. -->