2009-03-27 1 views
1

Wenn ich mein CSS-Stylesheet entfernen und alle Eigenschaften über eine JavaScript-Datei festlegen würde, wäre das möglich? Das heißt, gäbe es irgendetwas, auf das ich nicht über die JS DOM API zugreifen konnte?Gibt es CSS-Eigenschaften, auf die das JavaScript-DOM nicht zugreifen kann?

+0

Dies ist eine beängstigende Idee, auch wenn es Ihnen nichts ausmacht, Leute auszuschalten, die Javascript deaktivieren. CSS so viel schneller als Javascript ist es nicht einmal lustig. – Chuck

+0

Auch, wenn der Unterschied zwischen CSS und JS ist, ich weiß nicht, in der Größenordnung von Hunderten von ms, ich glaube nicht, dass es * das * große Deal ist. – cdmckay

+0

Das ist nicht unbedingt der Fall. Ich habe vor kurzem eine echte Seite eingerichtet, von der sich die Leute beschwerten "es dauerte ewig, um sie zu laden". Es war stark mit Javascript gestylt. Ich habe in den meisten Javascript, aber äquivalente CSS hinzugefügt und einfach so, dass die Seite nutzbar wurde. – Chuck

Antwort

5

Alles in CSS kann über JS zugegriffen werden, aber bedenken Sie, dass Benutzer mit JS deaktiviert überhaupt keinen Stil bekommen!

  • CSS ist für das Styling
  • JavaScript ist für Funktionalität zu verändern

Sie sie nicht, wenn dies unbedingt notwendig verschmelzen.

+2

Ja, aber ich denke daran, sie zu rein explorativen Zwecken zusammenzuführen. Ich möchte nicht vorschlagen, dass wir alle unsere Stylesheets in JS definieren. – cdmckay

+0

Das ist in Ordnung, nur ein Vorschlag;) – Seb

0

Ich bin mir nicht sicher, ob Sie in javascript verschiedene Medientypen wie "print" einstellen können.

[bearbeiten]
Eigentlich nehme ich das zurück. Sie können möglicherweise cssText dazu verwenden.

1

Die einzigen, die ich denken kann, sind möglicherweise IE CSS Ausdrücke (wie diejenigen, die häufig verwendet werden, um PNGs in IE6 zu beheben).

Ich denke jedoch nicht, dass dies in der Regel eine gute Idee ist, wie Sie Ihre Inhalte (HTML), Layout (CSS) und Logik (Javascript) aus Gründen der Wartungsfreundlichkeit getrennt halten möchten. Ganz zu schweigen davon, wenn Leute Ihre Seite mit deaktiviertem JavaScript besuchen.

+0

ehh, ich stimme nicht überein – Shawn

+0

ich würde denken, wenn der Browser es unterstützt, ist es zugänglich, es dreht sich alles um das DOM-Baby! Das DOM ist deine Seite, es ist, was der Browser im Speicher manipuliert und auf deinem Bildschirm rendert ... –

+0

Dem stimme ich zu. Sie sollten CSS-Klassen so weit wie möglich in JavaScript setzen (außer bei Animationen, bei denen Sie bestimmte Eigenschaften anpassen müssen). Weniger Code in JavaScript, sauberere Trennung und einfacher alle Stile zu finden. –

0

Eine Menge interessanter Informationen über die DOM zu CSS Schnittstelle kann aus dem W3C Document Object Model CSS2 Specification. gelesen werden. Für CSS3 sind sie immer noch working on it.

So ist es möglich, jede CSS-Eigenschaft über CSS-DOM-Stylesheets zu bearbeiten, aber es hängt davon ab, was der Browser unterstützt.

0

Ich bin mir ziemlich sicher, dass die Ausführung des gesamten JS durch den Browser, nur um einen Stil zu setzen, viel langsamer wäre, als ein Stylesheet anzuwenden und möglicherweise anfälliger für Browserprobleme zu sein.

0

Große Frage: "Würde es etwas geben, auf das ich nicht über die JS DOM API zugreifen konnte?"

Ich denke, die Antwort ist ja. Siehe unten:

IE8 jetzt dies will für die Opazität Eigenschaft: -ms-Filter: "progid: DXImageTransform.Microsoft.Alpha (Opazität = 50)"

so jemand nicht weiß, wie man diese Eigenschaft ändern dynamisch mit Javascript DOM-Zugriff (DHTML)?

Punkt genommen?

+0

Ich dachte, es gab eine Filtereigenschaft, die gesetzt werden konnte - oder zumindest über JS hinzugefügt wurde – Hugoware

1

Es stellt sich heraus, dass wir nicht auf mehrere Hintergründe zugreifen können, selbst wenn sie vollständig in CSS unterstützt werden.

Verwandte Themen