IE не уважает ширину ТД - PullRequest
3 голосов
/ 25 мая 2011

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

Я попытался определить ширину в качестве обоих атрибутов иСтили CSS, но ни один из них не помогает. См. Скрипту для демонстрации.

Я хочу:

+------------------------------------------+
|  320          | 20 | 39   |  320         |
|               |    |      |              |
+------------------------------------------+

Я получаю: (округлено, значения десятичные)

+------------------------------------------+
|  324          | 19 | 34   |  321         |
|               |    |      |              |
+------------------------------------------+

Сфактический контент вместо заполнителя - разница еще более преувеличена, крайний левый столбец 357 и самый правый 299 пикселей в ширину.

Изначально у меня было только двастолбцы с отступами по краям, но переключены на текущую версию в качестве попытки исправить.Это не имело никакого эффекта.

Это для новостной рассылки HTML, поэтому использование макета без таблиц не вариант.

Ответы [ 4 ]

3 голосов
/ 25 мая 2011

В прошлом я обнаружил, что это практически невозможно решить, если вы не оставите один из элементов таблицы без фиксированной ширины.

Если вы сделаете это, то обнаружите, чтостолбец будет тем, который изменяет размеры, в то время как остальные должны принимать размер, который вы запрашиваете.

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

1 голос
/ 26 мая 2011

Я наконец нашел решение проблемы. С четырьмя ячейками все было в порядке, но этот код, содержащий заголовок и вход бюллетеня, сломал его:

<tr><td colspan="4">Some long text here</td></tr>

Я изменил это на это, и он начал работать:

<tr><td colspan="4" width="700">Some long text here</td></tr>

Ширина широкого столбца составляет 700 пикселей, независимо от того, форсирую я его или нет, но если я этого не сделаю, ширина ячеек одного столбца будет искажена. Я считаю это явной ошибкой в ​​IE.

1 голос
/ 25 мая 2011

Помогло бы увидеть ваши CSS и HTML. Но не забывайте подсчитывать границы при измерении общей ширины таблицы.

поле + рамка + отступы + ширина = реальная ширина.

Кроме того, убедитесь, что в одной из этих ячеек нет элемента, который больше ширины ячейки.

0 голосов
/ 25 мая 2011
<table width="699" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="320" height="50" valign="top"><!--test-->&nbsp;</td>
    <td width="20" valign="top"><!--test-->&nbsp;</td>
    <td width="39" valign="top"><!--test-->&nbsp;</td>
    <td width="320" valign="top"><!--test-->&nbsp;</td>
  </tr>
</table>

это должно работать

...