2013-03-19 5 views
10

Gibt es eine Möglichkeit, das CSS von globalen Klassen mit JavaScript oder jQuery zu setzen? Das heißt, fügen Sie an das <style/> Tag der Seite an?Definieren Sie globale CSS-Klassen mit JavaScript oder jQuery?

+0

möglich Duplikat [Ist es möglich, einen CSS-Stylesheet mit Hilfe von JavaScript zu ändern? (NICHT der Stil eines Objekts, sondern das Stylesheet selbst)] (http://stackoverflow.com/questions/6620393/is-it-possible-to-alter-a-css-stylesheet-using-javascript-not-the- -style-of-an) – Quentin

+0

Mögliches Duplikat: [jQuery create CSS rule/class @ runtime] (http://stackoverflow.com/questions/1212500/jquery-create-css-rule-class-runtime) – Boaz

+0

Ja aber setzen eine ** große Warnung ** in der Quelle Ihrer Website, die alle Personen benachrichtigt, die zukünftig auf der Site arbeiten. In meiner Erfahrung sind Websites mit dynamisch erstellten/geänderten Stylesheets die verwirrendsten Dinge im bekannten Universum. –

Antwort

14

reine Javascript -

var style=document.createElement('style'); 
style.type='text/css'; 
if(style.styleSheet){ 
    style.styleSheet.cssText='your css styles'; 
}else{ 
    style.appendChild(document.createTextNode('your css styles')); 
} 
document.getElementsByTagName('head')[0].appendChild(style); 
+0

Nun, es gibt zwei richtige Antworten ... Auswahl von Math.random(). – MaiaVictor

+1

Während beide Antworten eine korrekte Lösung für die gegebene Frage bieten, bevorzuge ich aus Performancegründen immer reines Javascript, wenn ich nicht versuche, alte IE-Versionen zu unterstützen. – vastlysuperiorman

+1

@vastlysuperiorman Es ist falsch, irgendeine Version von IE zu unterstützen. – Leif

13

Ja, Sie können in jQuery tun:

var styleTag = $('<style>.my_class { foo: bar; }</style>') 
$('html > head').append(styleTag); 

Es funktioniert durch einfaches <style>-Tag am Ende des <head> anhängt.

+0

Nun, es gibt zwei richtige Antworten ... Auswahl durch Math.random(). – MaiaVictor

Verwandte Themen