@-moz-document url-prefix(datei) funktioniert nicht
gaby
- css
Hallo Forum,
Ich möchte ein alternatives Stylesheet für eine Datei schreiben, in der auch ein iframe enthalten ist.
Die Farben im Iframe sollen in gleicher Weise geändert werden, wie die Farben in der Hauptdatei.
Nun gebe ich in der Webdeveloper-Toolbar für das Stylesheet, das in die Hauptdatei geladen wird, folgendes an:
p {
color: red ! important;
font-weight: bold ! important }
@-moz-document url-prefix("http://gaby77.ga.funpic.de/forum/fr/userstylesheet/iframedat.html")
{
h2 { color: red !important; }
}
Der Selektor für das p-Element der Hauptdatei funktioniert einwandfrei, aber die Anweisung für die Iframe-Datei zeigt keine Wirkung.
Der Validator sagt:
"Leider ist die At-Regel @-moz-document nicht implementiert."
aber in meiner userContent.css zum Beispiel (die, die im Profile-Verzeichnis liegt), habe ich etliche Userstylesheets in der gleichen Art deklariert, und das funktioniert einwandfrei.
Was muß ich denn nun im Stylesheet der Hauptdatei angeben, damit h2 in der iframe-Datei geändert wird?
Grüße
gaby
hier ein Beispiel.
http://gaby77.ga.funpic.de/forum/fr/userstylesheet/hauptdat.html
Hi,
Der Selektor für das p-Element der Hauptdatei funktioniert einwandfrei, aber die Anweisung für die Iframe-Datei zeigt keine Wirkung.
verfügt das Dokument, welches in diesem <iframe> liegt, denn über das entsprechende Stylesheet?
Der Validator sagt:
"Leider ist die At-Regel @-moz-document nicht implementiert."
Ja, schon das "-moz-" zeigt, dass dies eine proprietäre Angabe ist.
Was muß ich denn nun im Stylesheet der Hauptdatei angeben, damit h2 in der iframe-Datei geändert wird?
Gar nichts, Magie wurde in CSS noch nicht implementiert. Das Dokument, welches von den Styles betroffen sein soll, muss sie auch kennen. Eine einschränkende(!) Bedingung hilft hierbei nicht.
Cheatah
Hi,
Der Selektor für das p-Element der Hauptdatei funktioniert einwandfrei, aber die Anweisung für die Iframe-Datei zeigt keine Wirkung.
verfügt das Dokument, welches in diesem <iframe> liegt, denn über das entsprechende Stylesheet?
Auch Hi,
Nein, dort gibt es nur ein internes Stylesheet.
An der HTML-Datei, die ins Iframe geladen wird, darf ich auch nichts ändern.
Ich möchte ja im Haupt-Dokuments-Stylesheet die Formatierung für die IFrame-Datei angeben.
Ich beschreib mein Problem jetzt mal mit anderen Worten:
Ich möchte im Haupt-Dokument einen Stylesheet-Switch einbauen, der als einfaches Beispiel einmal die Schrift rot, blau oder grün färbt.
_Gleichzeitig_ soll aber auch die Schrift im eingebundenen iframe entsprechend geändert werden.
Da muß ich doch die CSS-Formatierungen für beide Dateien im _gleichen_ Stylesheet angeben?
Der Validator sagt:
"Leider ist die At-Regel @-moz-document nicht implementiert."Ja, schon das "-moz-" zeigt, dass dies eine proprietäre Angabe ist.
Das macht nichts ;-)
Es braucht nur im Firefox zu funktionieren.
Was muß ich denn nun im Stylesheet der Hauptdatei angeben, damit h2 in der iframe-Datei geändert wird?
Gar nichts, Magie wurde in CSS noch nicht implementiert. Das Dokument, welches von den Styles betroffen sein soll, muss sie auch kennen.
Was meinst Du damit: "muss sie auch kennen" ?
Ich habe doch bei "@-moz-document" die URL der Iframe-Datei angegeben.
Grüße
gaby
Ich möchte ja im Haupt-Dokuments-Stylesheet die Formatierung für die IFrame-Datei angeben.
das geht nicht, auf keinen fall (mit ausnahme, sie verwenden das selbe stylesheet und die selektoren treffen in in beiden fälle zu)
Ich beschreib mein Problem jetzt mal mit anderen Worten:
Ich möchte im Haupt-Dokument einen Stylesheet-Switch einbauen, der als einfaches Beispiel einmal die Schrift rot, blau oder grün färbt.
_Gleichzeitig_ soll aber auch die Schrift im eingebundenen iframe entsprechend geändert werden.
siehe oben
Da muß ich doch die CSS-Formatierungen für beide Dateien im _gleichen_ Stylesheet angeben?
siehe oben
Was meinst Du damit: "muss sie auch kennen" ?
siehe oben, das css file muss im entsprechenden dokument eingebunden werden
Ich habe doch bei "@-moz-document" die URL der Iframe-Datei angegeben.
das hilft nix, siehe oben
eine lösung könnte ggf javascript sein, du kannst damit ggf das stylesheet des frames verändern
eine lösung könnte ggf javascript sein, du kannst damit ggf das stylesheet des frames verändern.
Danke für den Vorschlag.
Das behalte ich mal als Notlösung im Kopf.
Ich habe doch bei "@-moz-document" die URL der Iframe-Datei angegeben.
das hilft nix, siehe oben
Was mich aber dann wundert, ist, daß ich mir ein Userstylesheet schreiben kann, das mit zb
@-moz-document url-prefix(http://forum.de.selfhtml.org/)
{
body {
background-color: yellow ! important;
color: green ! important; }
}
die Farben dieses Forums überschreibt.
Mein Userstylesheet ist auch nicht in die Forumsdatei eingebunden, und trotzdem funktioniert das Überschreiben.
Was ist denn da nun der Unterschied zu meinem Überschreibenwollen der Iframedatei?
Grüße
gaby
Hi,
Mein Userstylesheet ist auch nicht in die Forumsdatei eingebunden,
Doch.
Implizit, das macht der Browser automatisch.
cu,
Andreas
Hi,
Mein Userstylesheet ist auch nicht in die Forumsdatei eingebunden,
Doch.
Implizit, das macht der Browser automatisch.
Hmmm, na gut, dann ist das halt so.
Aber verstehen tue ich es immer noch nicht, _warum_ das so ist.
Beide Stylesheets (Userstylesheet und das Stylesheet in meinem bsp) haben keinen Bezug zu der zu überschreibenden Datei, außer der Anweisung
@-moz-document url-prefix(http://www.datei.html), welche den Bezug herstellt.
Wieso klappt das im ersten Fall, im zweiten aber nicht?
Grüße
gaby
Aber verstehen tue ich es immer noch nicht, _warum_ das so ist.
auch wenn ich dir etwas zu nahe trete: aber etwas hausverstand wäre angebracht
Wieso klappt das im ersten Fall, im zweiten aber nicht?
wenn ich in mein benutzer-stylesheet vom firefox reinschreibe, dass der body von microsoft.com visibility: hidden hat, kann mich nichts und niemand daran hindern, weder der seitenautor noch sonst irgendwas
in diesem fall willst du aber, dass jeder firefox-benutzer einfach mal so bei einer wildfremden seite die du in deinen iframe einbindest andere stilinformationen zuweisen
Wieso klappt das im ersten Fall, im zweiten aber nicht?
wenn ich in mein benutzer-stylesheet vom firefox reinschreibe, dass der body von microsoft.com visibility: hidden hat, kann mich nichts und niemand daran hindern, weder der seitenautor noch sonst irgendwas
in diesem fall willst du aber, dass jeder firefox-benutzer einfach mal so bei einer wildfremden seite die du in deinen iframe einbindest andere stilinformationen zuweisen.
Dein Beispiel hinkt.
Natürlich sehe _nur ich_ die Auswirkungen, die mein Userstylesheet hat, denn das Stylesheet befindet sich ja auch nur auf meiner Festplatte.
Das Stylesheet aber, welches die Haupt- und die Iframe-Datei überschreiben soll, befindet sich auf einem _Webserver_. Demnach sollte es für _alle_ Firefox-Besucher gelten.
Einen Kommentar auf deine ersten Zeilen erspare ich mir jetzt mal.
Hi,
Dein Beispiel hinkt.
Dein Verstaendnis von dem, was die genannten Selektoren bewirken (koennen, und was nicht) ja auch.
Einen Kommentar auf deine ersten Zeilen erspare ich mir jetzt mal.
Ach komm, er hat doch Recht - mit ein bisschen logischem Nachdenken sollte man den Sachverhalt durchaus kapieren koennen.
MfG ChrisB
Dein Beispiel hinkt.
Dein Verstaendnis von dem, was die genannten Selektoren bewirken (koennen, und was nicht) ja auch.
Das mag ja sein.
Aber das ständige Behaupten, daß mir der Verstand oder das Verständnis fehlt, hilft mir jetzt auch nicht auf die Sprünge.
Einen Kommentar auf deine ersten Zeilen erspare ich mir jetzt mal.
Ach komm, er hat doch Recht -
sein Vergleich hinkt von vorne und von hinten.
Ich glaube, das habe ich auch hinreichend begründet (Festplatte=nur für mich - Webserver=für alle)
mit ein bisschen logischem Nachdenken sollte man den Sachverhalt durchaus kapieren koennen.
Ich kapiere es aber nunmal leider nicht, oder komme gerade nicht drauf, was auch immer.
Und nachvollziehbar erklärt hat es bis jetzt ja auch keiner.
Naja, ich sage dann mal Gute Nacht.
Vielleicht habe ich ja morgen einen Geistesblitz.
Grüße
gaby
Hi,
sein Vergleich hinkt von vorne und von hinten.
Nein.
Ich glaube, das habe ich auch hinreichend begründet (Festplatte=nur für mich - Webserver=für alle)
Diese Selektoren wirken nur in deinem Userstylesheet - weil nur dieses "automatisch" auf "alle" Seiten angewandt wird.
Wenn dem nicht so waere - dann koenntest du ja beliebige andere Seiten mit deinen eigenen Formatierungen versehen, sofern du sie nur in einem Iframe o.ae. eingebunden anzeigen wuerdest, und im *umgebenden* Dokument dein eigenes Stylesheet mit diesen Regeln angibst.
Das *darf* nicht moeglich sein.
MfG ChrisB
Diese Selektoren wirken nur in deinem Userstylesheet - weil nur dieses "automatisch" auf "alle" Seiten angewandt wird.
OK, dann habe ich dem Selektor "@-moz-document url-prefix" die ganze Zeit Fähigkeiten angedichtet, die er nicht hat.
Wenn dem nicht so waere - dann koenntest du ja beliebige andere Seiten mit deinen eigenen Formatierungen versehen, sofern du sie nur in einem Iframe o.ae. eingebunden anzeigen wuerdest, und im *umgebenden* Dokument dein eigenes Stylesheet mit diesen Regeln angibst.
Das *darf* nicht moeglich sein.
Da hast du natürlich Recht. *g*
Aber es würde mir ja schon genügt, wenn es einen Selektor gäbe, der nur für Dokumente, die innerhalb der gleichen Domain liegen, das macht, was ich vorhabe. Dann wäre ja sichergestellt, daß ich auch berechtigt bin, die Formatierungen zu überschreiben, weil es meine eigenen Dateien sind.
Gibt es denn so etwas?
Grüße
gaby
Hi,
OK, dann habe ich dem Selektor "@-moz-document url-prefix" die ganze Zeit Fähigkeiten angedichtet, die er nicht hat.
Gut, dann haben wir das jetzt also geklaert :-)
Aber es würde mir ja schon genügt, wenn es einen Selektor gäbe, der nur für Dokumente, die innerhalb der gleichen Domain liegen, das macht, was ich vorhabe. Dann wäre ja sichergestellt, daß ich auch berechtigt bin, die Formatierungen zu überschreiben, weil es meine eigenen Dateien sind.
Gibt es denn so etwas?
Nein.
Aber wozu auch? Das im Iframe angezeigte Dokument unterliegt doch auch deiner Kontrolle - also binde (auch) dort das Stylesheet ein, welches dort Wirkung zeigen soll.
MfG ChrisB
Hi,
OK, dann habe ich dem Selektor "@-moz-document url-prefix" die ganze Zeit Fähigkeiten angedichtet, die er nicht hat.
Gut, dann haben wir das jetzt also geklaert :-)
Ja, manchmal, wenn ich mich in irgendetwas total festgebissen habe, dauerts eben etwas länger, mich da wieder loszueisen. *g*
Aber es würde mir ja schon genügt, wenn es einen Selektor gäbe, der nur für Dokumente, die innerhalb der gleichen Domain liegen, das macht, was ich vorhabe. Dann wäre ja sichergestellt, daß ich auch berechtigt bin, die Formatierungen zu überschreiben, weil es meine eigenen Dateien sind.
Gibt es denn so etwas?
Nein.
Aber wozu auch? Das im Iframe angezeigte Dokument unterliegt doch auch deiner Kontrolle - also binde (auch) dort das Stylesheet ein, welches dort Wirkung zeigen soll.
Ich habe zwar Zugriff auf den Server, aber es sind nicht meine Dateien, und das Dokument, welches ins iframe geladen wird, enthält Werbung, da darf ich nichts verändern.
Das Problem ist,
Ich möchte im Haupt-Dokument einen Stylesheet-Switch einbauen, der als einfaches Beispiel einmal die Schrift rot, blau oder grün färbt.
_Gleichzeitig_ soll aber auch die Schrift im eingebundenen iframe entsprechend geändert werden.
Deshalb kann ich der Iframedatei kein festes Stylesheet geben, sondern dieses Stylesheet steht immer in Abhängigkeit zu dem des Hauptdokuments.
Grüße
gaby
PS
Danke nochmals für deine Geduld bis hierher. ;-)
Hi,
Ich habe zwar Zugriff auf den Server, aber es sind nicht meine Dateien, und das Dokument, welches ins iframe geladen wird, enthält Werbung, da darf ich nichts verändern.
Das Problem ist,
Ich möchte im Haupt-Dokument einen Stylesheet-Switch einbauen, der als einfaches Beispiel einmal die Schrift rot, blau oder grün färbt.
_Gleichzeitig_ soll aber auch die Schrift im eingebundenen iframe entsprechend geändert werden.Deshalb kann ich der Iframedatei kein festes Stylesheet geben, sondern dieses Stylesheet steht immer in Abhängigkeit zu dem des Hauptdokuments.
Dann bliebe dir noch die Moeglichkeit, ein Link-Element fuer die Einbindung des Stylesheets dynamisch zu generieren und ins Dokument im Iframe einzuhaengen.
MfG ChrisB
Dann bliebe dir noch die Moeglichkeit, ein Link-Element fuer die Einbindung des Stylesheets dynamisch zu generieren und ins Dokument im Iframe einzuhaengen.
Hi,
Das ließe sich machen.
Danke für den Vorschlag. :-)
Grüße
gaby
Hi,
Mein Userstylesheet ist auch nicht in die Forumsdatei eingebunden,
Doch.
Implizit, das macht der Browser automatisch.Hmmm, na gut, dann ist das halt so.
Aber verstehen tue ich es immer noch nicht, _warum_ das so ist.
Beide Stylesheets (Userstylesheet und das Stylesheet in meinem bsp) haben keinen Bezug zu der zu überschreibenden Datei, außer der Anweisung
@-moz-document url-prefix(http://www.datei.html), welche den Bezug herstellt.
Wieso klappt das im ersten Fall, im zweiten aber nicht?
Weil das erste dein *Userstylesheet* ist - dessen *Sinn* und *Zweck* ist es, vom Browser auf das jeweils angezeigte Dokument zusaetzlich zu dessen eigener Formatierung angewendet zu werden.
Wie Andreas schon sagte, macht der Browser das *implizit* - er "tut" so, als ob es wirklich per <link> o.ae. in das jeweilige Dokument eingebunden waere.
Selektoren wie @-moz-document url-prefix dienen dann dazu, von allen Regeln aus deinem User-Stylesheet nur die auf das jeweilige Dokument anzuwenden, die auch zu diesem "gehoeren" - wo also die Dokumentadresse "passt".
Dein selbstgebasteltes Stylesheet ist aber *kein* Userstylesheet - also tut der Browser auch nicht so, als wenn es ins aktuelle Dokument eingebunden waere.
Du hast also ein Dokument mit Formatierungsregeln, die zwar vom Selektor her auf die Adresse des im Iframe angezeigten Dokumente passen wuerden - aber dieses Dokument "weiss" von der Existenz dieser Regeln und dieses Stylesheets nichts, *weil* *du* es in diesem Dokument nicht eingebunden hast. Das passiert da natuerlich *nicht* automatisch, weil es *kein* Userstylesheet ist.
MfG ChrisB
Hi,
Mein Userstylesheet ist auch nicht in die Forumsdatei eingebunden,
Doch.
Implizit, das macht der Browser automatisch.Hmmm, na gut, dann ist das halt so.
Aber verstehen tue ich es immer noch nicht, _warum_ das so ist.
Beide Stylesheets (Userstylesheet und das Stylesheet in meinem bsp) haben keinen Bezug zu der zu überschreibenden Datei, außer der Anweisung
@-moz-document url-prefix(http://www.datei.html), welche den Bezug herstellt.
Wieso klappt das im ersten Fall, im zweiten aber nicht?Weil das erste dein *Userstylesheet* ist - dessen *Sinn* und *Zweck* ist es, vom Browser auf das jeweils angezeigte Dokument zusaetzlich zu dessen eigener Formatierung angewendet zu werden.
Wie Andreas schon sagte, macht der Browser das *implizit* - er "tut" so, als ob es wirklich per <link> o.ae. in das jeweilige Dokument eingebunden waere.
Selektoren wie @-moz-document url-prefix dienen dann dazu, von allen Regeln aus deinem User-Stylesheet nur die auf das jeweilige Dokument anzuwenden, die auch zu diesem "gehoeren" - wo also die Dokumentadresse "passt".Dein selbstgebasteltes Stylesheet ist aber *kein* Userstylesheet - also tut der Browser auch nicht so, als wenn es ins aktuelle Dokument eingebunden waere.
Du hast also ein Dokument mit Formatierungsregeln, die zwar vom Selektor her auf die Adresse des im Iframe angezeigten Dokumente passen wuerden - aber dieses Dokument "weiss" von der Existenz dieser Regeln und dieses Stylesheets nichts, *weil* *du* es in diesem Dokument nicht eingebunden hast. Das passiert da natuerlich *nicht* automatisch, weil es *kein* Userstylesheet ist.
Oh sorry, dein Posting hatte ich übersehen.
Danke für deine Erklärung.
Grüße
gaby