Как получить значения CSS в IE7, когда возвращается «auto» - PullRequest
1 голос
/ 22 сентября 2011

Я пытаюсь прочитать высоту div в IE7. Element.currentStyle возвращает «авто». Как мне теперь рассчитать высоту этого элемента? Как JQuery достигает этого? Его функция height () может получить значение (http://api.jquery.com/height/), когда панель разработчика IE показывает мне, что значение установлено на auto?

РЕДАКТИРОВАТЬ: я не использую jQuery, поэтому я надеюсь на решение, которое делает это в чистом JavaScript

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

Может быть document.getElementById("idHere").offsetHeight работает!

0 голосов
/ 22 сентября 2011

Я думаю, что это функция jQuery, которая вычисляет высоту:

function getWH( elem, name, extra ) {

    // Start with offset property
    var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
        which = name === "width" ? cssWidth : cssHeight;

    if ( val > 0 ) {
        if ( extra !== "border" ) {
            jQuery.each( which, function() {
                if ( !extra ) {
                    val -= parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
                }
                if ( extra === "margin" ) {
                    val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
                } else {
                    val -= parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
                }
            });
        }

        return val + "px";
    }

    // Fall back to computed then uncomputed css if necessary
    val = curCSS( elem, name, name );
    if ( val < 0 || val == null ) {
        val = elem.style[ name ] || 0;
    }
    // Normalize "", auto, and prepare for extra
    val = parseFloat( val ) || 0;

    // Add padding, border, margin
    if ( extra ) {
        jQuery.each( which, function() {
            val += parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
            if ( extra !== "padding" ) {
                val += parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
            }
            if ( extra === "margin" ) {
                val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
            }
        });
    }

    return val + "px";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...