Внешний Css

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем kreasl, 6 сен 2007.

  1. kreasl

    kreasl Гость

    Здравствуйте.

    Возник такой вопрос: на страницу загружается внешний CSS и в процессе работы скрипта нужно определить значение color для класса highlite.
    Были такие варианты:

    Код (Text):
    tmpDiv = document.createElement("DIV");
    tmpDiv.className = "highlite";
    tmpDiv.style.display = "none";
    document.getElementById("gb_body").appendChild(tmpDiv);
    highliteColor = tmpDiv.currentStyle ? tmpDiv.currentStyle.color : tmpDiv.style.color;
    document.getElementById("gb_body").removeChild(tmpDiv);
    Код (Text):
    var ruls = document.styleSheets[0].rules ? document.styleSheets[0].rules : document.styleSheets[0].cssRules;
    for (i=0;i<ruls.length;i++)
    if (ruls[i].selectorText.indexOf("highlite") + 1){
    highliteColor = ruls[i].style.color;
    i = ruls.length;
    }
    Оба либо работают не во всех браузерах, либо не работают :rolleyes:.

    А есть ли ещё способы?
     
  2. sir Aurum

    sir Aurum Гость

    Пользуйся функцией, она очень полезная B)

    Код (Text):
    function getElementComputedStyle(elem, prop){
    if(typeof elem != "object"){
    elem = document.getElementById(elem);
    }  

    // external stylesheet for Mozilla, Opera 7+ and Safari 1.3+
    if(document.defaultView && document.defaultView.getComputedStyle){
    if (prop.match(/[A-Z]/)) prop = prop.replace(/([A-Z])/g, "-$1").toLowerCase();
    return document.defaultView.getComputedStyle(elem, "").getPropertyValue(prop);
    }

    // external stylesheet for Explorer and Opera 9
    if (elem.currentStyle){
    var i;
    while ((i=prop.indexOf("-"))!=-1) prop = prop.substr(0, i) + prop.substr(i+1,1).toUpperCase() + prop.substr(i+2);
    return elem.currentStyle[prop];
    }
    return "";
    };
     
  3. kreasl

    kreasl Гость

    Давно сюда не заглядывал: решено было пойти обходным путём, но за функцию спасибо, работает отлично и думаю не раз пригодится :)
     
Загрузка...

Поделиться этой страницей