Symbole in den Kontextmenüs [ Update ]

  • Fehlende Elemente, bzw, deren Selektoren, suche ich dann ebenfalls mithilfe der Browserwerkzeuge.
    Womit ich dann aber große Schwierigkeiten habe, die richtigen Parameter zu finden!
    [label = XXX] ist klar, aber :where(#IrgendeinenSelektor) ist mir schon ein Rätsel.
    [fxastatus], absolut keine Ahnung.

    Bei [data-l10n-id="bookmarks-bookmark-edit-panel"]::before und [data-l10n-id="bookmarks-current-tab"]::before
    wusste ich mir nicht anders zu Helfen.

    Für diese zwei Selektoren habe ich Stunden gebrauch, um sie zu selektieren.

    Code
    /* Liste der letzten Tabs löschen */
    #tabContextUndoList > menupopup[hasbeenopened="true"] > menuitem.restoreallitem[label="Alle Tabs wieder öffnen"]::before,
    /* Liste der letzten Tabs löschen */
    #tabContextUndoList > menupopup[hasbeenopened="true"] > menuitem[label="Liste der letzten Tabs löschen"]::before

    Oje.
    Ich mach dann mal Pause. :whistling:

    Vielleicht kann Sören noch generell was dazu sagen, das würde uns bestimmt helfen.

  • [label = XXX] ist klar, […] [fxastatus], absolut keine Ahnung.

    Was zwischen den eckigen Klammern steht, ist für das grundlegende Verständnis egal. Mit den eckigen Klammern sprichst du Attribute an, d.h. was in HTML foo="bar" ist, ist in CSS [foo="bar"]. Wenn im CSS die Zuweisung fehlt und da nur [foo] steht, dann heißt das, dass das Attribut foo einfach nur im HTML vorkommen muss, ganz egal, mit was für einem Wert.

    aber :where(#IrgendeinenSelektor) ist mir schon ein Rätsel

    :where() ist im Prinzip genau das Gleiche wie :is(), bloß mit einer anderen Spezifität. Die Spezifität wird dann relevant, wenn du mehrere Regeln hast, die das gleiche Element ansprechen, und es darum geht, welche Regel Priorität erhält. Bei :is() hast du immer die Spezifität des stärksten Selektors, bei :where() hast du immer eine Spezifität von 0, was den Selektor sehr leicht überschreibbar macht.

    Beispiel:

    :is(#foo, div)

    Ein div hat normalerweise eine sehr geringe Spezifität von 0,0,1. Dadurch, dass das gemeinsam mit #foo in einem :is() steht und ein Selektor mit einer ID eine Spezifität von 1,0,0 hat, hat auch das div eine Spezifität von 1,0,0.

    :where(#foo, div)

    Hier ist die Spezifität wie gesagt 0.

    Angenommen, das div hätte jetzt noch eine Klasse .bar. Klassen haben eine Spezifität von 0,1,0. Würdest du jetzt mit einer weiteren Regel .bar ansprechen, würdest du damit die :where()-Regel überschreiben, weil 0,1,0 > 0 ist, aber nicht die :is()-Regel, weil 1,0,0 > 0,1,0 ist.

    Im Inspektor-Werkzeug von Firefox siehst du die Spezifität einer Regel als Tooltip, wenn du mit der Maus über einen CSS-Selektor fährst. Du kannst sonst auch mit einem Web-Tool wie diesem hier spielen:

    CSS Selector Specificity Calculator | Polypane
    Quickly calculate any CSS selector specificity score along with explanations. With full support for complex CSS selectors.
    polypane.app
  • Hier ist das Ganze gut erklärt.

    Auch praktisch, Code aus den Browserwerkzeugen kopieren (Rechts-Klick auf Element).

    ZB.:

    CSS Pfad für ein bestimmtes Element:

    CSS
    html#main-window body popupset#mainPopupSet menupopup#placesContext menuitem#placesContext_open:newprivatewindow

    Äusseres HTML dazu mit allen möglichen Details, Ids, Attribute, etc. (Vorsicht, enthält auch Child Elemente wie hier zB label):

    HTML
    <menuitem xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="placesContext_open:newprivatewindow" command="placesCmd_open:privatewindow" data-l10n-id="places-open-in-private-window" selection-type="single" node-type="link" hide-if-private-browsing="true" label="In neuem privaten Fenster öffnen" accesskey="p"><label class="menu-text" crop="end" aria-hidden="true" value="In neuem privaten Fenster öffnen" accesskey="p"/><hbox class="menu-accel-container" aria-hidden="true"><label class="menu-accel"/></hbox></menuitem>

    Der gesamte Inhalt vom übergeordneten Kontextmenü #placesContext; inneres HTML, mit einem Formatiertool etwas lesbarer gemacht (langer Text...):

  • Ich glaube, ich bin fertig.










    icons.zip

    Mit <3lichem Gruß

    Mira

    3 Mal editiert, zuletzt von Mira_Belle (3. März 2026 um 19:46)

  • Ich glaube, ich bin fertig.

    Sehr schön, vielen Dank für die viele Arbeit.

    Wäre schön, wenn du mir jetzt bitte nochmal genau erklären könntest, was ich machen muss, damit das ganze auch funzt (wohin mit den CSS Dateien, den Icons und wie rufe ich das dann auf?).


    Vielen Dank nochmal und ich wäre froh, wenn du mir das ganze erklären könntet.

    Gruß

    Michael

  • mkpcxxl Mach ich.

    Im Profil befindet sich doch der Ordner "chrome".
    C:\Users\"mkpcxxl"\AppData\Roaming\Mozilla\Firefox\Profiles\"mkpcxxl"\chrome
    Ist nur Beispielhaft!

    In diesem Ordner erstellst Du Dir a. den Ordner "css" und b. den Ordner "icons".
    In "css" kommen die CSS-Dateien!
    Bezeichnungen der Dateien stehen ja oben in der Box,
    z.B. "08 Symbole_Leisten_Kontextmenu.css".

    Die Symbole gehören in den Ordner "icons"

    Jetzt musst Du nur noch Deine userChrome.css bearbeiten.

    Kopiere dies einfach und füge es ein.

    Code
    @import url("./css/00 Settings.css");
    @import url("./css/01 Symbole_Menüleiste.css");
    @import url("./css/02 Settings_Hamburger.css");
    @import url("./css/03 Symbole_Hamburger.css");
    @import url("./css/04 Symbole_Tabs_Kontextmenu.css ");
    @import url("./css/05 Symbole_Adressfeld_Kontextmenu.css ");
    @import url("./css/06 Symbole_Lesezeichensymbolleiste.css ");
    @import url("./css/07 Symbole_Kontextmenü.css ");
    @import url("./css/08 Symbole_Leisten_Kontextmenu.css ");


    Solltest Du schon CSS in der userChrome.css stehen haben, steht wohl ganz oben
    @-moz-document url(chrome://browser/content/browser.xhtml) {

    Bitte füge den Code "@import ...." davor ein, sonnst funktioniert es nicht!

    Das sollte es auch schon gewesen sein.

    Mit <3lichem Gruß

    Mira

  • Ich glaube, ich bin fertig.

    Ich hab das ganze nur mal schnell in mein altes Paket reingepackt - das komplette CSS in einer Datei - und es scheinen die linken Abstände im Lesezeichen Kontextmenü zu fehlen, Checkboxen funktionieren hier nicht, va in den Untermenüs, und es fehlen Icons für ein paar Menüeinträge in einigen Kontextmenümenüs. :/

    Aus schon erwähnten Gründen, würde ich selber das CSS und die Icons nicht in irgendein Profil einfügen wollen, ohne ein - einfach zu erstellendes - Paket zu bekommen, das den Inhalt separiert.

  • Aus schon erwähnten Gründen, würde ich selber das CSS und die Icons nicht in irgendein Profil einfügen wollen, ohne ein - einfach zu erstellendes - Paket zu bekommen, das den Inhalt separiert.

    Erst einmal danke für Deinen Kurztest.
    Aber das mit dem Separieren solltest Du doch selber hinbekommen, oder etwa nicht?
    Ich weiß jetzt nicht wie Du auf Deinem Rechner Ordnung hältst,
    aber einfach "CSS" umbenennen z.B: "css-org", den Ordner neu erstellen und die Dateien reinpacken,
    gleiches für Deinen Ordner für Deine Symbole und von Deiner userChrome.css ein Backup machen,
    sollte doch so, oder weil MAC, so ähnlich machbar sein.

    Aber das erwarte ich gar nicht. Du hast mir auch so schon genug geholfen.


    es scheinen die linken Abstände im Lesezeichen Kontextmenü zu fehlen

    Oh, Du hast recht, Danke. Da muss ich dann noch mal ran.


    FEHLER behoben:!:
    Die 07 Symbole_Kontextmenü.css nochmal neu ziehen.

    Mit <3lichem Gruß

    Mira

    2 Mal editiert, zuletzt von Mira_Belle (3. März 2026 um 17:55) aus folgendem Grund: Ein Beitrag von Mira_Belle mit diesem Beitrag zusammengefügt.

  • Mira_Belle : Danke für die Super Anleitung, habe es so gemacht und es funktioniert soweit alles.

    Nur beim Tab Kontext Menü habe ich bei "Tab entladen" als Icon ein rotes Fragezeichen.

    Habe mal in der CSS geschaut und "Tab entladen" ist nicht zu finden.

    Dann bei Rechtsklick auf einen leeren Bereich der Tableiste kommt bei "Vertikale Tabs aktivieren" ein rotes Herz.

    Nur so als Info.

    Der Rest, soweit ich es in der kurzen Zeit übeblicken konnte funktioniert.


    Nochmals danke für deine Mühe.

    Gruß

    Michael

  • Das mit dem Tab entladen habe ich jetzt hin bekommen (Danke Andreas).

    Habe das Icon "reload.svg" um 180 Grad gedreht und dann als "unload.svg" gespeichert und in die CSS eingetragen.

    Geht und sieht gut aus.

    Nur das mit dem roten Herz muss ich noch suchen.