Domanda

Sulla mia pagina Sto cambiando alcuni stili CSS tramite JavaScript. Quando provo e tiro di un valore che è stato ereditato - si tratta up vuoto. Si consideri il seguente:

    .Sliding
    {
        display: none;
        overflow: hidden;
    }

    .Sliding #FilterBox
    {
        height: 185px;
        background-color: Fuchsia;
    }

E il codice html:

<div class="Sliding" id="FilterBox">
        <h3>Test Form</h3>
        This is a test/<br />
        12345
</div>

Se guardo l'elemento ' document.getElementById (objname) .style.display ' il suo vuoto? Come posso leggere il valore del display via via javascript?

È stato utile?

Soluzione

Ti consigliamo di utilizzare getComputedStyle .

La struttura .style è un mezzo di accesso e impostazione di stile in linea (cioè come l'attributo stile).

Si noti, tuttavia, che il vostro esempio non ha nulla a che fare con l'ereditarietà. Basta set di regole che si applicano direttamente agli elementi che vi interessano. L'ereditarietà è quando un elemento assume lo stesso stile come il suo genitore tramite la parola chiave inherit.

span {
    color: inherit;
}

getComputedStyle darà il valore calcolato finale però, quindi si riprenderà valori ereditati troppo.

Altri suggerimenti

La seconda regola CSS:

.Sliding #FilterBox
{
    height: 185px;
    background-color: Fuchsia;
}

corrisponderà nulla con id "FilterBox" che è un discendente di qualsiasi cosa con una classe "scorrevole", quindi questa regola non si applica al vostro div.

E per ottenere lo stile calcolato, è possibile fare riferimento alla risposta di Fabien, o considerare l'utilizzo di jQuery, il che rende questo materiale molto più facile:

utilizzando jQuery, $ ( "# FilterBox"). Css ( "visualizzazione") restituirebbe il valore corrente di "display".

È necessario guardare lo stile calcolato, vedi qui

if (!window.getComputedStyle) 
{
    window.getComputedStyle = function(el, pseudo) 
    {
        this.el = el;
        this.getPropertyValue = function(prop) {

        var re = /(\-([a-z]){1})/g;
        if (prop == 'float') 
            prop = 'styleFloat';
        if (re.test(prop)) 
        {
            prop = prop.replace(re, function () {

            return arguments[2].toUpperCase();
           });
        }

        return el.currentStyle[prop] ? el.currentStyle[prop] : null;
      }

      return this;
   }
}

function GetCompStyle()
{   
    var compStyle = window.getComputedStyle(document.getElementById('FilterBox'), "");
    alert(compStyle.getPropertyValue("display"));   
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top