Мне нужно установить ограничение ширины изображения до 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:
По просьбе, вот пример кода:
И простой 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, я буду рад ошибиться :-)