IE 7/8 ошибка с фиксированной разметкой TABLE и шириной TD в процентах - PullRequest
1 голос
/ 29 июня 2011

http://jsfiddle.net/michelpm/jywqh/

Таблица имеет ширину 1000 пикселей, поэтому столбцы таблицы с 3,9%, 2,9%, 1,9%, 0,9% и 0,4% должны иметь размеры точно 39, 29, 19, 9 и 4 пикселя. Вот как я думаю, что он должен вести себя и как он на самом деле ведет себя в любом современном браузере, но я должен заставить его работать и в IE 7, и в IE 8.

В IE 7 эти ячейки имеют размеры 30 (3,0%), 20 (2,0%), 10 (1,0%), 0 (0,0%), 0 (0,0%) и 940 (94%) пикселей. В IE 8 эти ячейки имеют размеры 30 (3,0%), 20 (2,0%), 10 (1,0%), 313 (31,3%), 313 (31,3%) и 313 (31,3%) пикселей. В IE 9 и других браузерах эти ячейки имеют размеры 39 (3,9%), 29 (2,9%), 19 (1,9%), 9 (0,9%), 4 (0,4%) и 900 (90,0%) пикселей.

Если это возможно, какой самый простой (с меньшим количеством переписывания) или лучший (менее уродливый) способ заставить его работать как в тех древних IE, так и в современных браузерах?

1 Ответ

2 голосов
/ 29 июня 2011

Цитировать OP: "... какой самый простой (с меньшим количеством переписывания) или лучший (менее уродливый) способ заставить его работать как в тех древних IE, так и в современных браузерах?"

В элементе <table> нет ничего хитрого; он такой же древний, как древние ИЭ. Если таблица имеет ширину ровно 1000 пикселей, почему вы используете проценты для столбцов? Просто укажите каждый столбец в пикселях, убедившись, что общее количество всех столбцов составляет до 1000 ... тогда не должно быть проблем с кросс-браузерной конверсией Это самый простой и лучший способ.

EDIT:

В ОП явно указывалось: "Таблица имеет ширину 1000 пикселей" , однако, основываясь на последних комментариях, теперь заявляет, "Я не могу принять 1000 пикселей" . Я не вижу, как это что-то меняет. Мой ответ работает для любой ширины.

IE не может обрабатывать дробные проценты и, похоже, просто игнорирует что-либо после десятичной точки. Самое простое решение - придерживаться целых чисел или переключаться на пиксели.

...