Сообщение от Gvozd
|
Если добавить в конце нехватающую фигурную скобку, то в IE11 в режиме эмуляции IE8 ваш пример прекрасно работает
|
Я неправильно сформировал свой вопрос. Постараюсь по-другому:
Объект currentStyle, через который получают значения css-свойств в IE8, возвращает, в отличии от getComputedStyle, не вычисленное значение блока, а то которое было прописано в стилях. Если в стилях его нет, то он возвращает строку "auto". У меня у блока высота в стилях не прописана, то есть она формируется его содержимым, а вычисленное значение данной высоты нужно получить для организации анимированного hide. Если он будет возвращать "auto", а не число, то в алгоритме получится NaN, что приведёт к тому, что анимация работать не будет.
Посему вопрос моей проблемы таков: как получить вычисленное (фактическое значение) свойства в IE8, если оно формируется содержимым, а не задаётся вручную в стилях?
Вот пример кода:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>title</title>
<script>
window.onload = function () {
var elem = document.getElementById("parent");
document.getElementById("output").innerHTML = getStyle(elem).height;
};
function getStyle(elem) {
var style = window.getComputedStyle ? getComputedStyle(elem, null) : elem.currentStyle;
return style;
}
</script>
<style>
#parent {
border: 1px solid gray;
background-color: #f6f6f6;
border-radius: 5px;
width: 80%;
/*height НЕ ЗАДАНА, А ФОРМИРУЕТСЯ СОДЕРЖИМЫМ*/
}
</style>
</head>
<body>
<p id="output">тут будет высота блока</p>
<div id="parent">
<div style="height: 100px; width: 100px;">fgdfgdfg</div>
<div style="height: 100px; width: 100px;">fgdfgfdg</div>
</div>
</body>
</html>
Здесь парсится в параграф не значение вычисленной высоты, как это делают IE9 и прочие браузеры, поддерживающие getComputerStyle, а строку "auto". Надеюсь, что нормально объяснил суть своей проблемы.