Я пытаюсь масштабировать изображения, чтобы они соответствовали ширине родительского элемента, особенно для изображений, расположенных в таблицах.
Проблема заключалась в том, что разные браузеры и платформы ведут себя по-разному, когда речь идет об определении ширины.родительского элемента.
Поэтому я попытался получить ширину родительского элемента td в $(document).ready
:
$('td').each(function () {
var width = $(this).width();
$(this).width(width);
});
А затем в $(window).load
(когда изображения должны быть загружены) Я пытаюсь установить ширину изображений в соответствии со стилем width css в td:
var parentWidth = $(this).parent().width();
if ($(this).closest('td')) {
parentWidth = $(this).closest('td').css('width').replace('px', '');
}
Но это кажется ненадежным.Иногда это работает, и в некоторых браузерах, но иногда это приводит к сбою, давая неправильное значение ширины td
.
Я хочу иметь возможность получить ширину td
до того, как изображениязагружен, так что ширина не искажается изображениями, расширяющими его.
Конечно, ничего из этого не потребовалось бы, если бы не IE8 и ниже, не поддерживающие max-width и max-высота, но это не так.
Как я могу это сделать и получить ширину родительского элемента перед загрузкой изображений?
Кстати: td
может иметь процентное значение ширины для начала св таблице шириной 100%.