Следующий HTML-код идеально подходит во всех распространенных браузерах, включая IE7-9, но не работает в IE10. Даже при запуске IE10 в режиме совместимости он терпит неудачу.IE10 table-layout: исправлено нарушение, если используется colspan
<html>
<body>
<table style="table-layout:fixed;width:500px">
<colgroup>
<col style="width:100px" ></col>
<col ></col>
<col style="width:100px" ></col>
<col ></col>
</colgroup>
<tbody>
<tr>
<td colspan="2">
<div style="background:red;"> red </div>
</td>
<td colspan="2">
<div style="background:green;"> green </div>
</td>
</tr>
</tbody>
</table>
</body>
</html>
В то время как во всех других браузерах на 2 ячейки равны по размеру, на IE10 (по крайней мере, при работе на Windows7) первая ячейка шире, чем второй.
Этот HTML в IE 9/Windows 7:
же HTML в IE 10/Windows 7:
тестовую страницу: http://www.dinkypage.com/167605
Сообщил Bug: https://connect.microsoft.com/IE/feedback/details/781009/ie-10-fails-to-render-tables-width-fixed-layout-correctly
Кто-нибудь знает решение/обходной путь для этой проблемы?
ОБНОВЛЕНИЕ: Я попросил Microsoft повторно открыть мою сообщенную ошибку, поскольку это нарушение стандарта w3c. Ответ:
«Проблема, о которой вы сообщаете, по дизайну. Internet Explorer использует только первый набор тэгов TD для установки ширины столбца».
стандарту W3C (http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout) говорит:
В алгоритме макета фиксированной таблицы, ширина каждого столбца определяется следующим образом:
- элемент столбца со значением другого чем 'auto' для свойства 'width' задает ширину для этого столбца.
- В противном случае ячейка в первой строке со значением, отличным от 'auto' для свойства width, определяет ширину для этого столбца. Если ячейка охватывает более одного столбца, ширина делится по столбцам.
- Любые оставшиеся столбцы одинаково разделяют оставшееся горизонтальное табличное пространство (минус границы или интервал между ячейками).
Это означает, что эта функция нарушается дизайн в IE 10. Я рекомендую использовать другой браузер или остаться с IE 9 ...
Такая же проблема существует в IE 10 на Windows 8 –
Проблема также в том, что все
Просто присвойте стилям 'td' в первом 'tr' вместо' col's. – Teemu