Установка max-width в Internet Explorer

Мне нужно установить ограничение ширины изображения до 100% в Internet Explorer, как это делают другие браузеры с помощью max-width. То есть, если ширина изображения больше ширины содержащей области, оно уменьшается, чтобы соответствовать ширине содержащей области, но если меньше, его размер не изменяется. Аналогично, если изображение находится внутри ячейки таблицы (td) и оно больше ячейки, я хочу, чтобы оно масштабировалось до размера ячейки, а не расширялось.

Хотя есть и другие вопросы и ответы, которые, похоже, об этом, я не могу заставить ни один из них работать. Например, это решение обычно предлагается для эмуляции max-width в Internet Explorer:

http://www.svendtofte.com/code/max_width_in_ie/

По сути, используя это:

width:expression( 
    document.body.clientWidth > (500/12) * 
    parseInt(document.body.currentStyle.fontSize)?
        "30em":
        "auto" );
}

Однако, когда я пробую это, я совсем не получаю ожидаемых результатов. В некоторых случаях я получаю значения ширины -1 и не отображаемое изображение вообще, когда я проверяю в Firebug или что-то подобное.

И я также не вижу, как это решение может работать.

EDIT:

По просьбе, вот пример кода:

Bild 1. Uponor Push 12

Bild 2. Uponor ElPush 12

И простой css (работает для всех браузеров, кроме IE):

img
{
    max-width : 100%;
    max-height : 100%;
}

Но он не работает для этого кода в IE. Возможно, это как-то связано с тем, что он помещен в таблицу, я не знаю, но когда я пробую этот пример div на W3Schools, он работает нормально: http://www.w3schools.com/cssref/playit.asp?filename=playcss_max-width&preval=50%25

EDIT 2:

Пример полной HTML страницы:



    
        Image test

        
    
    
        

Image test

На этой странице та же проблема. Изображения не уменьшаются, чтобы поместиться в ячейки таблицы. В других браузерах я могу изменять размер окна сколько угодно, а изображения продолжают уменьшаться. В IE8 и 9 этого не происходит. Похоже, IE8 и 9 поддерживают max-width и max-height, но только для пиксельных значений, а не для процентных - т.е. поддержка только частичная... Если я прав, то я действительно удивлен, что так трудно найти какую-либо информацию об этом в Интернете. Все только и говорят о том, что эти браузеры наконец-то поддерживают это, после того как IE6 этого не сделал...

В любом случае, я написал обходной путь на jQuery, но я бы предпочел, чтобы он не понадобился. Так что если кто-то может сказать мне, что я не прав, и показать, что IE8 и 9 действительно поддерживают процентные значения max-width, я буду рад ошибиться :-)

5
задан Anders 11 January 2012 в 23:52
поделиться