Browser-Stile
Ihre Erweiterung kann Benutzeroberflächenelemente enthalten - Popup-Fenster Popups, Sidebars und Optionsseiten - die wie folgt definiert sind:
- Erstellen einer HTML-Datei, die die Struktur des UI-Elements definiert.
- Hinzufügen eines
manifest.json
-Schlüssels (action
,browser_action
,page_action
,sidebar_action
oderoptions_ui
), der auf diese HTML-Datei verweist.
Sie können diese Elemente so gestalten, dass sie zum Stil des Browsers passen. Die manifest.json
-Schlüssel enthalten eine optionale Eigenschaft, die dabei hilft: browser_style
. Wenn diese eingeschlossen und auf true
gesetzt ist, erhält Ihr Dokument ein oder mehrere zusätzliche Stylesheets, die dabei helfen, es mit der Benutzeroberfläche des Browsers und anderen Erweiterungen, die die browser_style
-Eigenschaft verwenden, konsistent aussehen zu lassen.
Hinweis:
Die Unterstützung für browser_style
in Manifest V3 ist veraltet. Ab Firefox 115 ändert sich der Standardwert von options_ui.browser_style
und sidebar_action.browser_style
von true
auf false
. In Firefox 118 wird "browser_style": true
in Manifest V3-Erweiterungen nicht mehr unterstützt.
Wenn Ihre Manifest V3-Erweiterung von den "browser_style": true
-Stilen abhängt, folgen Sie der Manifest V3-Migrationsanleitung für browser_style
.
Siehe (Firefox-Bug 1827910) für mehr Informationen.
Wenn Sie Ihren Erweiterungen den Firefox-Stil verleihen möchten, sehen Sie sich den Firefox Style Guide an.
Wenn Sie überlegen, ob Sie browser_style: true
verwenden möchten, testen Sie Ihre Erweiterung mit verschiedenen Themen (eingebaute oder von AMO), um sicherzustellen, dass die UI der Erweiterung wie erwartet funktioniert.
Warnung:
Wenn browser_style: true
im Manifest Ihrer Web-Erweiterung enthalten ist, wird die Textauswahl in der UI Ihrer Erweiterung außer in Eingabefeldern deaktiviert. Wenn dies ein Problem darstellt, fügen Sie stattdessen browser_style:false
hinzu.
Hinweis:
Google Chrome und Opera verwenden chrome_style
anstelle von browser_style
in Manifest V2. Für browserübergreifende Erweiterungen müssen Sie beide Schlüssel hinzufügen. chrome_style
ist in Manifest V3 nicht verfügbar.
In Firefox kann das Stylesheet unter chrome://browser/content/extension.css
eingesehen werden. Das zusätzliche Stylesheet unter chrome://browser/content/extension-mac.css
wird auch auf macOS einbezogen.
Die meisten Stilarten werden automatisch angewendet, aber einige Elemente erfordern, dass Sie die nicht standardisierte browser-style
-Klasse hinzufügen, um deren Styling zu erhalten, wie in der folgenden Tabelle beschrieben:
Element | Beispiel |
---|---|
<button>
|
html
|
html
|
|
<textarea>
|
html
|
Eltern eines
<input>
|
html
|
Manifest V3 Migration
Da browser_style
in Manifest V3 veraltet ist, möchten Sie möglicherweise die Unterstützung entfernen, wenn Sie Ihre Manifest V2-Erweiterungen migrieren. Wenn Sie options_ui
verwenden, würden Sie diese Schritte unternehmen, um die Unterstützung für browser_style
zu entfernen:
- Setzen Sie
options_ui/browser_style
auffalse
. - Ändert sich das Aussehen der UI Ihrer Erweiterung?
- Wenn sich das Aussehen nicht ändert, entfernen Sie den Schlüssel.
- Wenn sich das Aussehen ändert, experimentieren Sie, um festzustellen, welche Abhängigkeiten existieren, und fügen Sie die relevanten Eigenschaften in das Stylesheet der Erweiterung ein. Die Stile, die am ehesten Layoutänderungen verursachen, sind
box-sizing:
,border-box
unddisplay: flex
. Wenn Sie die Abhängigkeiten nicht identifizieren können, fügen Sie den Inhalt von extension.css in die Erweiterung ein und löschen Sie alle Teile, die nicht relevant sind, üblicherweise diebody
- undbody *
-Blöcke, da die meisten Erweiterungen diebrowser-style
-Klasse nicht verwenden.
Firefox-Panelkomponenten (Legacy)
Hinweis: Diese Funktion ist nicht standardisiert und funktioniert nur in Firefox.
Das Stylesheet chrome://browser/content/extension.css
enthält auch die Stile für die Legacy-Firefox-Panelkomponenten (Navigationskomponenten).
Der Legacy Firefox Style Guide dokumentiert die ordnungsgemäße Verwendung.
Element | Beispiel |
---|---|
Kopfzeile |
html
|
Fußzeile |
html
|
Registerkarten |
html
|
Formular |
html
|
Menü |
html
|
Beispiel
HTML
<header class="panel-section panel-section-header">
<div class="icon-section-header"><!-- An image goes here. --></div>
<div class="text-section-header">Header</div>
</header>
<div class="panel-section panel-section-list">
<div class="panel-list-item">
<div class="icon"></div>
<div class="text">List Item</div>
<div class="text-shortcut">Ctrl-L</div>
</div>
<div class="panel-list-item">
<div class="icon"></div>
<div class="text">List Item</div>
<div class="text-shortcut"></div>
</div>
<div class="panel-section-separator"></div>
<div class="panel-list-item disabled">
<div class="icon"></div>
<div class="text">Disabled List Item</div>
<div class="text-shortcut"></div>
</div>
<div class="panel-section-separator"></div>
<div class="panel-list-item">
<div class="icon"></div>
<div class="text">List Item</div>
<div class="text-shortcut"></div>
</div>
<div class="panel-list-item">
<div class="icon"></div>
<div class="text">List Item</div>
<div class="text-shortcut"></div>
</div>
</div>
<footer class="panel-section panel-section-footer">
<button class="panel-section-footer-button">Cancel</button>
<div class="panel-section-footer-separator"></div>
<button class="panel-section-footer-button default">Confirm</button>
</footer>
Ergebnis
Browser-Kompatibilität
>webextensions.manifest.action
Loading…
webextensions.manifest.browser_action
Loading…
webextensions.manifest.page_action
Loading…
webextensions.manifest.sidebar_action
Loading…
webextensions.manifest.options_ui
Loading…