непонятно работает getComputedStyle с %
Есть такая функция получения CSS свойств в любой единице измерения:
function getStyleValue(e, name) { if (name == 'float') name = 'cssFloat'; function getIEComputedStyle(e, name) { var value = e.currentStyle[name] || 0; if (isNaN(parseInt(value))) { value = 0; } var leftCopy = e.style.left var runtimeLeftCopy = e.runtimeStyle.left e.runtimeStyle.left = e.currentStyle.left e.style.left = (name === "fontSize") ? "1em" : value value = e.style.pixelLeft + "px"; e.style.left = leftCopy e.runtimeStyle.left = runtimeLeftCopy return value } return window.getComputedStyle ? (window.getComputedStyle(e, null)[name] || 0) : getIEComputedStyle(e, name); } Она взята отсюда, работает везде правильно. Вот в этом участке возникает вопрос при задании внутренних отступов в процентах availableWidth = VisibleWidth - parseInt(getStyleValue(e, 'borderLeftWidth')) - parseInt(getStyleValue(e, 'borderRightWidth')) - parseInt(getStyleValue(e, 'paddingLeft')) - parseInt(getStyleValue(e, 'paddingRight')) + "px"; e.style.width = availableWidth; availableHeight = VisibleHeight - parseInt(getStyleValue(e, 'borderTopWidth')) - parseInt(getStyleValue(e, 'borderBottomWidth')) - parseInt(getStyleValue(e, 'paddingTop')) - parseInt(getStyleValue(e, 'paddingBottom')) + "px"; e.style.height = availableHeight; availableWidth вычисляется правильно, availableHeight - нет, т.к. процентаж вычисляется почему-то от ширины, т.е если задано в CSS width:500px; height:400px; padding:10%; я получаю pLeft-50px, pRight-50px, pTop-50px and pBottom-50px (instead 40px). Результат такой везде. Видел кто такое? Что не так? |
Часовой пояс GMT +3, время: 18:51. |