Mi chiedo se esiste un modo per ottenere il valore css dal file del foglio di stile quando non ci sono elementi nel DOM che lo utilizzano? Sto usando jQuery e uso il selettore $ (". Classname"). Css() per ottenere i valori. Ma con il caso "classname" non è in alcun elemento, che cosa fare per ottenere il valore" GrazieOttieni valore css senza elemento DOM
risposta
Basta creare un elemento con quel nome classe e ispezionarlo. Non c'è nemmeno bisogno di collegarlo al DOM:
var $el = $('<div class="classname"></div>');
var opacity = $el.css('opacity') // or whatever
Anche se $el
non è effettivamente presente nel DOM, è ancora ottenere l'accesso a tutte le sue proprietà di stile.
Edit: come accennato nei commenti, questo approccio non funziona sempre come previsto (ad esempio inherited css values non definito su .classname esplicitamente, selector specificity sopra .classname, ecc).
Per esempio il seguente fallisce a causa #foo
aumentare la specificità selettore oltre che di un autonomo .bar
:
css:
#foo .bar { color: red; }
js:
var $el = $('<div class="bar"></div>');
$el.css('color'); // Expected: "red", Actual: ""
Bisogna analizzare gli stili da document.styleSheets
.
Vedi http://www.hunlock.com/blogs/Totally_Pwn_CSS_with_Javascript che presenta un approccio cross-browser per ottenere e l'aggiunta di css in modo dinamico.
funziona con document.styleSheets
ed entrambi di .rules
IE e tutti gli altri di .cssRules
Essa ha anche il vantaggio di essere un po 'astratto in modo non c'è bisogno di preoccuparsi per i dettagli.
E così un'altra risposta nello stack overflow cade per collegare il decadimento :( – Gusk
Alla soluzione il problema Chromium , devi aggiungerlo al corpo:
campione CSS:
.dummy {
min-width: 50px;
max-width: 250px;
}
JavaScript di esempio:
$(document).ready(function() {
var dummy = $('<div class="dummy" style="display: none;"></div>').appendTo('body');
console.log(dummy.css("min-width"));
console.log(dummy.css("max-width"));
dummy.remove();
});
Questo funziona su tutti i browser moderni, Chrome, FF, IE11.
- 1. Haskell - ottieni l'ennesimo elemento senza "!!"
- 2. Ottieni ComponentRef dall'elemento DOM
- 3. Ottieni tutti gli stili CSS per un elemento DOM (a la Firebug)
- 4. Ottieni un elemento DOM iframe dato il suo URL
- 5. Holder.js - Ripristina elemento DOM?
- 6. Ottieni il valore css da: hover con .css() - jquery
- 7. DOM Larghezza elemento prima aggiunta al DOM
- 8. JavaScript DOM rimuovi elemento
- 9. ottenere elemento DOM originale innerHTML senza javascript elaborazione
- 10. Ottieni altezza di div senza altezza impostata in css
- 11. Ottieni altezza riga dell'elemento senza 'px'
- 12. Elemento mobile JavaScript nel DOM
- 13. jQuery valore per 'right' su elemento fisso senza 'px'
- 14. Ottieni l'ambito dall'elemento DOM con $ compileProvider.debugInfoEnabled (false);
- 15. Selettore css per abbinare un elemento senza attributo x
- 16. Ottieni elemento selezionato in ButtonSet
- 17. Java: Crea elemento DOM da elemento, non documento
- 18. Javascript Ottieni elemento per ID e imposta il valore
- 19. Ottieni il valore di un elemento JSON specifico in Python
- 20. jQuery - Ottieni un elemento dalla matrice come elemento jQuery?
- 21. Estensione di un elemento DOM con jQuery
- 22. Come spostare un elemento nel DOM?
- 23. Ottieni un'immagine di sfondo con Nokogiri dal DOM?
- 24. Ottieni penultimo elemento
- 25. Ottieni l'ultimo elemento nell'arrayist
- 26. Come sfocare (css) div senza sfocature elemento figlio
- 27. CSS pseudo elemento ▼ diventa senza senso in IE
- 28. css problema direzione rtl elemento ordine
- 29. Ottieni le coordinate dello schermo dell'elemento DOM
- 30. Ottieni tutti i link href in DOM
Che dire di stili ereditati? Sto assumendo che si possa usare qualcosa come '$ ('
Impressionante Idea ... –
Questo non sembra funzionare in Chrome ... – xpy