Tableisten CSS anpassen

  • Hast du den Code von oben denn mal getestet? :/
    Nochmal:

    Bei mir tut sich da nichts. Und dürfte sich m. E. auch nicht viel tun. Du definierst --ug-tabs-position für #tabbrowser-tabs:not([overflow]) und nur dafür. Du verwendest es aber nicht dafür. Dann wendest du --ug-tabs-position auf scrollbox[orient="horizontal"] an, für das --ug-tabs-position gar nicht definiert ist. Im allgemeinen definiert man eine CSS-Variable unter :root, so, wie du es in deinem von mir verlinkten Code mit --ug-tab-gap gemacht hast. Dann gilt die Variable für alle Elemente.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Du definierst --ug-tabs-position für #tabbrowser-tabs:not([overflow]) und nur dafür. Du verwendest es aber nicht dafür. Dann wendest du --ug-tabs-position auf scrollbox[orient="horizontal"] an, für das --ug-tabs-position gar nicht definiert ist.

    Das passt doch, da die scrollbox ein Kindelement von #tabbrowser-tabs ist. Die Variablen-Definition gilt immer für den kompletten Elemente-Baum darunter. Ansonsten müsste man Variablen immer dort definieren, wo sie verwendet werden, was die komplette Idee von Variablen ad absurdum führen würde, weil man dann gleich den Variableninhalt direkt verwenden könnte. Und du schriebst ja sogar selbst:

    Im allgemeinen definiert man eine CSS-Variable unter :root, so, wie du es in deinem von mir verlinkten Code mit --ug-tab-gap gemacht hast. Dann gilt die Variable für alle Elemente.

    Das ist genau das gleiche Prinzip, bloß dass :root dem html-Element entspricht und die Gültigkeit entsprechend für das komplette DOM setzt. Du kannst Variablen aber an jeder beliebigen Stelle definieren und damit Variablen nur für bestimmte Teile gültig machen beziehungsweise Variablen für bestimmte Stellen überschreiben. Aus Performance-Sicht ist es besser, je kleiner der Wirksamkeitsbereich ist.

    Der Vollständigkeit halber noch: Der Unterschied zwischen :root und html ist die höhere Spezifität von :root, weil das eine Pseudoklasse ist. Außerdem funktioniert :root auch in Nicht-HTML-Dokumenten wie SVG-Dateien. Was den Aspekt betrifft, für welche Elemente die Variable gilt, gibt es aber keinen Unterschied zwischen diesen beiden Selektoren.

  • Das passt doch, da die scrollbox ein Kindelement von #tabbrowser-tabs ist. Die Variablen-Definition gilt immer für den kompletten Elemente-Baum darunter.

    Ach so, danke. Ich habe die Hierarchie nicht überprüft.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Bei mir tut sich da nichts. Und dürfte sich m. E. auch nicht viel tun. Du definierst --ug-tabs-position für #tabbrowser-tabs:not([overflow]) und nur dafür. Du verwendest es aber nicht dafür. Dann wendest du --ug-tabs-position auf scrollbox[orient="horizontal"] an, für das --ug-tabs-position gar nicht definiert ist. Im allgemeinen definiert man eine CSS-Variable unter :root, so, wie du es in deinem von mir verlinkten Code mit --ug-tab-gap gemacht hast. Dann gilt die Variable für alle Elemente.

    Danke für's Testen! :)

    Wie von Sören schon erklärt, die Variable wirkt auf die Child Elemente; die Begrenzung auf #tabbrowser-tabs:not([overflow]) soll die Auswirkung der Regel auf eben diesen Bereich eingrenzen, weil ansonsten andere scrollbox Elemente mit angesprochen würden.
    Das hat unerwünschte Konsequenzen, wie auch in der von dir verlinkten Thread weiter unten erwähnt.
    Ich halte Variablen generell meistens so begrenzt wie möglich, weil die einem sonst auch mal anderorts in die Quere kommen können.

    Der Umweg über die Variable deshalb, weil scrollbox in einem shadow Dingens (Fachbegriff) sitzt, und nicht Jeder den Umweg über Javascript gehen möchte oder kann.

    Schade daß es nicht klappt; ich kann momentan hier nur durch den Code auf searchfox stöbern und dann raten...

  • Der Umweg über die Variable deshalb, weil scrollbox in einem shadow Dingens (Fachbegriff) sitzt, und nicht Jeder den Umweg über Javascript gehen möchte oder kann.

    Genauso ist es, scrollbox sitzt hier in einem shadow-Dingens, :) korrekt: Es befindet sich unter shadow-root. Auch erkennbar am Attribut part. Da musst du dann schon das Skript userChromeShadow.uc.js zusammen mit der userChromeShadow.css verwenden. Die Variable nutzt dir hier m. E. nichts, weil scrollbox dann dennoch unter shadow-root liegt. Auch mit Variable greifst du ja auf scrollbox unter shadow-root zu.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Meine Meinung, mit Kritik sollte immer sparsam umgegangen werden, erst recht, wenn man keine Lösung anbieten kann.

    Danke für dein Verständnis :)!

    // Ich finde sowieso, dass Animositäten (komischerweise meist in letzter Zeit von Mitleser und auch von .DeJaVu ins Feld geführt werden) nicht zielführend sind. Ich bin in solchen Dingen einfach zu blöd. Da hilft es auch nicht, immer wieder darauf rumzureiten, ich solle mich in meiner Freizeit damit beschäftigen. Wer keine Lösung anbieten kann oder will, sollte vielleicht einfach sein M.... halten. Danke!

    Sören Hentzschel Ich hatte weiter unten auch den ganzen CSS Code gepostet, der sich mit den Tabs beschäftigt. Ein Script konnte ich durch Testdurchgänge ausschließen ebenso weitere CSS-Codes

    Es scheint ja so zu sein, dass mein Code (und der anderer Nutzer) bis 130 funktionierte. Die Frage ist bisher unbeantwortet, ob man das heilen kann?

    Wenn das nicht mehr möglich ist, dann ist es eben so.

    Und vielleicht nochmal als Info an alle: Ich habe keinen einzigen Code selbst entworfen sondern hier und da (vor allem bei Endor ) abgeschrieben und mit der Hilfe von Einigen für mich weiter angepasst. Ich nutze eine Vielzahl von CSS die mittels UserCSSLoader.uc.js geladen werden. Die userChrome.js sieht dementsprechend so aus:

    Code
    // userChrome.js
    userChrome.ignoreCache = true;
    userChrome.import("*", "UChrm");
  • Genauso ist es, scrollbox sitzt hier in einem shadow-Dingens, :) korrekt: Es befindet sich unter shadow-root. Auch erkennbar am Attribut part. Da musst du dann schon das Skript userChromeShadow.uc.js zusammen mit der userChromeShadow.css verwenden. Die Variable nutzt dir hier m. E. nichts, weil scrollbox dann dennoch unter shadow-root liegt. Auch mit Variable greifst du ja auf scrollbox unter shadow-root zu.

    Der Code funktioniert in der Form, die Variable greift auch in der relevanten shadow-root, jedenfalls bis 115esr; das Script braucht man hier nicht.
    Das ist praktische Erfahrung, keine Theorie.;)

    Ich hab den Trick schon oft benutzt, um ::part Gedöns zu manipulieren; meine Vermutung wöre eher, daß sich inzwischen im Fx Code ein paar Funktionen innerhalb der Hierarchie verlagert haben, oder Attribute geändert/hinzugefügt wurden.

    Sowas könnte zB noch funktionieren:

    CSS
    #tabbrowser-tabs {
        --ug_outline: 4px solid red;
    }
    
    #scrollbutton-up,
    #scrollbutton-down {
      outline: var(--ug_outline, 4px solid cyan) !important;
      outline-offset: -2px !important;
    }

    Damit sollten die Scrollbuttons im Tab overflow rot umrandet sein, aber zB in einem überlaufenden Ordner in der Lesezeichenleiste cyan.

    Nimmt man #tabbrowser-tabs {   --ug_outline: 4px solid red;} raus, sollten alle scrollbuttons cyan umrandet sein.

    Einmal editiert, zuletzt von Horstmann (24. August 2024 um 15:52)

  • jedenfalls bis 115esr

    Ich teste hier im Nightly und auch bei ESR sind wir ja schon bei Fx 128, wenn auch noch nicht definitiv. Die Diskussion ging ja von Boersenfeger aus, der ja ebenfalls das Nightly nutzt, auch wenn er deine Variable in seinem Code nur definiert und nicht anwendet.

    Abgesehen davon, funktioniert es hier auch mit userChromeShadow.uc.js und userChromeShadow.css nicht. Ich muss auch noch einmal nachfragen, da ich kein Power-Tabber bin: Die beiden Regeln sollen die Tabs in der Tableiste zentrieren und den Inhalt des Popup-Menüs unter der Pfeilspitze rechts zentrieren?

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Sören Hentzschel Ich hatte weiter unten auch den ganzen CSS Code gepostet, der sich mit den Tabs beschäftigt. Ein Script konnte ich durch Testdurchgänge ausschließen ebenso weitere CSS-Codes

    Es scheint ja so zu sein, dass mein Code (und der anderer Nutzer) bis 130 funktionierte. Die Frage ist bisher unbeantwortet, ob man das heilen kann?

    Wie gesagt: Der von dir gezeigte Code zentriert auch in Firefox 129 nichts. Und du führst eine Variable an, die in dem Code auch überhaupt nicht genutzt wird. Irgendwas fehlt im gezeigten Code also, wenn das bis Firefox 130 funktionierte.

    So sieht Firefox mit dem vermeintlich vollständigen Code aus Beitrag #25 in Firefox 129 aus:

  • Irgendwas fehlt im gezeigten Code

    Das wurde jetzt wie oft geschrieben? Also irgendwann sollte es doch mal kligeln.

    Boersenfeger - das ist deine Sache, als was du dich bezeichnest, nur ist das ja wiederholt so. Und nie bekommt man das gesamte CSS von dir, immer nur Häppchen. Es wurde mehr als 3 Mal festgestellt, dass was fehlt, und wieder kommt da nix. Also bitte, alles packen, anfügen.

    Eine Bitte, könnte man bitte endlich Firefox 115 aussen vor lassen? Das hilft nun wirklich nicht. Seit 115 habe auch ich mein CSS anpassen müssen, das nicht abwärtskompatibel ist.


    Hier ists noch richtig im 129.0.2

    äh, nö, siehe Bild (Nightly im Hintergrund)

    und so sieht es im Nightly aus

    auch hier, aber keines richtig

  • Der Code von Andreas aus Beitrag #50 funktioniert bei mir ebenfalls – in Fx 129. In Fx 131 jedoch nicht. Auch der Code mit CSS-Variable funktioniert in Fx 129:

    CSS
    #tabbrowser-tabs:not([overflow="true"]) {
    	--ug_tabs_position: center;
    }
    scrollbox[smoothscroll="true"] {
       display: flex !important;
       justify-content: var(--ug_tabs_position, initial) !important;
    }

    Zeile 5 kann man auch weglassen, ich nehme mal an, das Firefox erkennt, dass es sich bei justify-content um eine Eigenschaft für Flex-Boxen handelt.


    Habe gerade gesehen, scrollbox hat das Attribut flex mit dem Wert 1. Da ist display: flex nicht erforderlich.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

    Einmal editiert, zuletzt von milupo (24. August 2024 um 16:43) aus folgendem Grund: Ein Beitrag von milupo mit diesem Beitrag zusammengefügt.

  • Ich wäre auch verbunden, wenn die Nebendiskussion über "Shadow-Dingens" woanders weitergeführt würde, auch das Design von Scrollbuttons ist für mich nicht relevant. Danke!

  • :/

    Offensichtlich funktioniert der Code nur via userChrome.css, nicht über die Entwicklerwerkzeuge. Das ist ungut zum Testen…

    ---

    Mit der Ergänzung funktioniert der Code auch in Firefox Nightly:

    CSS
    slot {
      display: contents !important;
    }

    Nur ist das halt sehr unspezifisch und ich weiß nicht, an welchen Stellen sich das ggf. negativ auswirkt. Ich empfehle hier wirklich dringend, den Weg über userChromeShadow.uc.js zu gehen und den Code spezifischer zu schreiben, damit sich das nur in der Tableiste auswirkt.

    Generell sind aktuell im Bereich der Tabs praktisch täglich Änderungen zu erwarten, da mit sowohl vertikalen Tabs als auch Tab-Gruppen, deren Implementierung gestartet ist, gerade zwei große Baustellen bestehen, welche ganz direkt die Tabs betreffen. Und dann kommt noch allgemeines Aufräumen dazu, welches die Implementierung dieser neuen Features begünstigen soll, wozu die Änderung zählt, welche das Problem verursacht hat:

    1913322 - Remove overflow / underflow event usage from arrowscrollbox / tabs.js.
    RESOLVED (emilio) in Toolkit - UI Widgets. Last updated 2024-08-23.
    bugzilla.mozilla.org

    Es ist gerade nicht die Zeit, um Firefox Nightly zu verwenden und sich darauf zu verlassen, dass individuelle Anpassungen des Tab-Codes stabil bleiben.

  • Beitrag von Horstmann (24. August 2024 um 16:59)

    Dieser Beitrag wurde vom Autor gelöscht (24. August 2024 um 17:00).
  • Sören Hentzschel Vielen Dank für die (ggf. kurzfristig wirkende Lösung) und auch für den Hinweis auf die Latenz!

    Damit ist mein Anliegen fürs Erste erledigt. Warten wir ab, was sich da noch tut. ^^
    Ich danke auch FuchsFan und 2002Andreas für die lösungsorientierte Mitwirkung! :thumbup:

  • Wo hast du denn das her? Hab ich was übersehen?

    Aus Horstmanns Beitrag von hier:

    Horstmann
    23. August 2024 um 21:41

    Dafür wurde --ug-tabs-position definiert, in dieser Zeile wird es angewendet. Und Boersenfeger hatte nur --ug-tabs-position definiert, aber nicht unter scrollbox[…] angewendet.


    Mit der Ergänzung funktioniert der Code auch in Firefox Nightly:

    Auch von mir ein :thumbup:.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

    Einmal editiert, zuletzt von milupo (24. August 2024 um 17:12) aus folgendem Grund: Ein Beitrag von milupo mit diesem Beitrag zusammengefügt.