Мы используем свойство CSS table-layout: fixed
для нашего мобильного приложения. (Я не помню всю причину, но я полагаю, что это связано с возможностью переноса некоторых слов) ...таблица-макет: исправленная проблема с шириной столбца
У меня возникла проблема, когда нам нужно определить один из двух столбцов две таблицы столбцов. Не очень важно, обычно мы делаем это:
<table>
<tbody>
<tr>
<th width="20%">hello world</th>
<td>hello world</td>
</tr>
</tbody>
</table>
Это работает нормально.
Однако, если нам нужно создать строку, которая охватывает обе колонки перед этим:
<table>
<tbody>
<tr>
<td colspan="2">hello world</th>
</tr>
<tr>
<th width="20%">hello world</th>
<td>hello world</td>
</tr>
</tbody>
</table>
Что происходит, по крайней мере, в Chrome, является то, что две колонки привязываются к 50% ширины. У меня есть образец jsbin здесь:
Является ли это нормальное поведение? Ошибка Chrome? Способ обойти эту проблему?
Извините, что он плотный, но является решением для * not * use table-layout: fixed? or to использовать col и colgroup в дополнение к table-layout: исправлено, если эта фиксированная «перенос слов»? (TBH Я не знаю, почему таблица-макет будет использоваться вообще в этом примере, и просто ее удаление решит проблему? – MrWhite
' table-layout: fixed' может потребоваться для разрыва длинных слов (см. http://jsbin.com/utifiy/2/edit). В общем, если вам нужен точный контроль макета, значение 'fixed' дает вам это, тогда как default делает больше магии: но вам нужно заменить магический размер h * something * - поэтому вам нужно либо явно изменить спецификации элемента ** first row ** или 'col'. Проблема OP заключалась в том, что если в первой строке есть ячейки, которые охватывают столбцы, вы * не можете объявить размер столбцов в ячейках, поэтому решение должно использовать калибровку на основе 'col'. –