1.Zeile in einem userChrome.css Skript

  • Guten morgen Andreas
    Ich habe eine kurze Frage und bitte dich um eine kurze Antwort. :)

    Bei jedem Skript steht fast immer als Erstes diese Zeile zuoberst, ist mir aufgefallen:

    Code
    @-moz-document url-prefix(chrome://browser/content/browser.xul){

    Wenn ich meine Skripte nach deiner (übrigens genialen!) Methode organisiere (https://www.camp-firefox.de/forum/viewtopi…049281#p1049281), gehört diese Zeile immer automatisch über jeden Skript(?).

    Ja/Nein genügt.

    Bruno

    Firefox 106.0 Standardbrowser & Portabler.
    Windows 10/64 Pro 22H2, 19045.2193, Malwarebytes Premium, Adwcleaner, Thunderbird, Windows Firewall. Keine Tuningsoftware.

  • Ich versuche das mal mit einem einfachen Beispiel zu erklären warum der Eintrag immer vorhanden sein sollte.

    Ohne den Eintrag wird bei diesem Code:

    Code
    *{
    color:red!important}

    Jeder Text auf der Webseite UND vom Firefox rot.
    [attachment=1]Screenshot (335).png[/attachment]

    Setze ich aber den Eintrag, dann wird nur der Text vom Browser rot.
    [attachment=0]Screenshot (336).png[/attachment]

    D.h., sollte eine Bezeichnung innerhalb vom Firefox durch Zufall auch auf einer Webseite oder innerhalb einer Erweiterung sein, dann würde die auch angesprochen werden.
    Man kann ja auch erkennen dass im Stylishfenster der Text auch rot ist.

  • Road-Runner
    Sicherer aber ist es vermutlich besser ich nimm sie jedesmal dazu, wenn ich meine userChrome.css nach der Andreas-Methode in die einzelnen Skripte zerlege.

    Nützt's nüt, schadet's nüt. Oder auf Hochdeutsch: Nützt es nichts, schadet es nicht. ;)

    Edit: Sehe gerade Andreas' Antwort ...

    Firefox 106.0 Standardbrowser & Portabler.
    Windows 10/64 Pro 22H2, 19045.2193, Malwarebytes Premium, Adwcleaner, Thunderbird, Windows Firewall. Keine Tuningsoftware.

    Einmal editiert, zuletzt von bigpen (5. Oktober 2017 um 11:00)

  • Diese erste Zeile kann unterschiedlich sein:

    einmal so:

    Code
    @-moz-document url-prefix("chrome://browser/content/browser.xul") {

    oder so:

    Code
    @-moz-document url(chrome://browser/content/browser.xul) {

    Das macht wohl keinen Unterschied?

    Firefox 106.0 Standardbrowser & Portabler.
    Windows 10/64 Pro 22H2, 19045.2193, Malwarebytes Premium, Adwcleaner, Thunderbird, Windows Firewall. Keine Tuningsoftware.


  • Das macht wohl keinen Unterschied?


    Kommt drauf an.
    Wenn du nur eine Webseite ansprechen willst reicht: url

    Soll sich der Code auf mehrere Seiten beziehen muss es url-prefix heißen.

    Beispiel wenn ein Code auf mehrere Seiten von Google greifen soll.

    Code
    @-moz-document url-prefix(https://www.google.de),
    url-prefix(https://www.google.de/maps),
    url-prefix(https://www.google.de/videohp?hl=de),
    url-prefix(https://www.google.de/imghp), 
    url-prefix(https://www.google.de/ig?),

    https://developer.mozilla.org/de/docs/Web/CS…c75fc13fd59c@@@

    Das bezieht sich aber nicht nur auf Webseiten, sondern kann auch den Browser oder eine Erweiterung betreffen.

    Hier mal ein Auszug für TMP wenn auch div. Unterfenster angesprochen werden sollen.

    Code
    @-moz-document url-prefix(chrome://tabmixplus/content/preferences/preferences.xul),
    url-prefix(chrome://tabmixplus/content/preferences/subdialogs/pref-appearance.xul),
    url-prefix(chrome://tabmixplus/content/preferences/subdialogs/pref-filetype.xul),
  • Naja, ihr elenden Programmierer ... ;)

    Früher war es für mich auch einfacher. Heute, in meinem Alter, bin ich oft auf nur einen Punkt fokussiert, so dass ich das rundherum, die Zusammenhänge, gar nicht mehr mitbekomme.
    Dann wird es Zeit, dass ich mit der Videokamera nach draussen gehe.

    Firefox 106.0 Standardbrowser & Portabler.
    Windows 10/64 Pro 22H2, 19045.2193, Malwarebytes Premium, Adwcleaner, Thunderbird, Windows Firewall. Keine Tuningsoftware.

  • Das beruhigt mich. :)
    Übrigens habe ich meine .css'rs jetzt auch alle umgebaut und es läuft bis auf ein paar Kleinigkeiten. Aber dazu später. Wir haben heute unser wöchentlichen Generalputztag ... :traurig:

    Firefox 106.0 Standardbrowser & Portabler.
    Windows 10/64 Pro 22H2, 19045.2193, Malwarebytes Premium, Adwcleaner, Thunderbird, Windows Firewall. Keine Tuningsoftware.

  • Vieles kann ich so nicht nachvollziehen. Ich vermute, daß es mit einigen besonderen Eigenarten/Einstellungen des Betriebssystems zusammen hängt. Vielleicht wieviel Fehlertoleranz die Betriebssytemkonfiguration zuläßt. Ich habe hier OpenSuse Leap.

    1. @-moz-document url-prefix(chrome://browser/content/browser.xul){ Code... }

    Egal ob mit oder ohne diese zusätzliche Angabe zur Einschränkung ist es hier so, daß der Code hier nur im Browser wirkt. Auf Webseiten und auch z.B. auf about:addons wirkt der Code nicht, unabhängig ob der Code in der userChrome.css direkt steht oder in einer mit @import eingebundenen Datei.

    2. @namespace url("http://www.mozilla.org/keymaster/gate…ere.is.only.xul");

    Diese früher wichtige Zeile am Anfang darf anscheinend nicht mehr vorhanden sein, wenn man mit @import andere Dateien importieren möchte. Sonst stört sie zwar nicht, ist aber anscheinend auch nicht mehr notwendig. Ich sehe da keine Unterschiede.

    3. @import url("css/test.css");

    Auch den Hinweis unter Linux benötigt man zum einbinden der Dateien die Angabe url... sehe ich hier nicht. @import "css/test.css"; funktioniert hier auch so. Mit ist es vermutlich korrekter.

    Dann habe ich noch eine Frage die gut hierzu paßt: Gibt es eine Möglichkeit den Code auf bestimmte FF-Versionen einzuschränken? Z.B. "If FF-Version <= 56 { Code... }" ?

    Gruß Harry

    FF aktuell, 64Bit, Linux, Manjaro mit KDE


  • den Code auf bestimmte FF-Versionen einzuschränken?


    Die Frage verstehe ich nicht wirklich. :-??
    Der Ordner chrome im Profilordner greift doch nur auf dieses eine Profil zu, ergo auch auf die css Einträge.


    daß der Code hier nur im Browser wirkt.


    Hast du das mal mit meinem Beispielcode getestet?
    Es muss! keine Fehler geben ohne den Zusatz, kann aber.
    Der Zusatz besagt ja....nur im Browser ausführen...nicht auf Webseiten..Erweiterungen..etc.
    Zu 2.
    Er darf schon noch vorhanden sein.
    Aber nur einmal in einer css Datei oben als ersten Eintrag.

    Wer alle seine Codes direkt in die userChrome.css einträgt, darf diesen Zusatz auch nur 1x verwenden, nämlich oben als ersten Eintrag.


    Auch den Hinweis unter Linux benötigt man...


    Da ich kein Linux nutze hatte ich die Aussage auf Grund eines Users drunter gesetzt.

  • HT-Frogger meinte kürzlich irgendwo hier im Forum, dass er möglichst nur eine Datei pflegen möchte, die für alle Profile funktioniert. Das dürfte der Grund sein, wieso er die Version via CSS erkennen möchte.

    Allerdings wird das nicht möglich sein, CSS ist wirklich nur zum Gestalten dafür, nicht um Logik irgendeiner Form zu implementieren. Dafür ist JavaScript.

  • Zitat

    Die Frage verstehe ich nicht wirklich.


    Ich habe nur eine userStyle.css damit ich nicht jede Änderung 3 mal machen muß und dann logische Links zu den verschiedenen Profilordnern. Deshalb wirkt der Code bei mir auf verschiedenen Versionen.

    Zitat

    Hast du das mal mit meinem Beispielcode getestet?


    Ja, mit der Schriftfarbe rot. Das wirkt ja auch im Browser, aber wie auch Road-Runner schon schrieb: Es muß in der userContent.css stehen damit es auf Webseiten wirkt.

    Zitat

    Er darf schon noch vorhanden sein.
    Aber nur einmal in einer css Datei oben als ersten Eintrag.

    Auch einmal ganz am Anfang ist hier zu viel, die @import-Anweisung danach funktioniert hier nur wenn es nicht da ist. Oder muß die @import-Anweisung davor stehen? Das habe ich noch nicht probiert...

    Gruß Harry - ohhh Sören hat ein neues Bild...

    FF aktuell, 64Bit, Linux, Manjaro mit KDE

    Einmal editiert, zuletzt von HT-Frogger (5. Oktober 2017 um 15:14)