appearance
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.
* Some parts of this feature may have varying levels of support.
Die appearance
CSS-Eigenschaft wird verwendet, um UI-Elemente mit plattformspezifischem Styling, basierend auf dem Theme des Betriebssystems, anzuzeigen.
Probieren Sie es aus
appearance: none;
appearance: auto;
<section id="default-example">
<div class="background">
<button id="example-element">button</button>
</div>
</section>
.background {
display: flex;
place-content: center;
place-items: center;
width: 150px;
height: 150px;
background-color: white;
}
Vor der Standardisierung erlaubte diese Eigenschaft, Elemente als Widgets anzuzeigen, wie z.B. Schaltflächen oder Kontrollkästchen. Es wurde als Fehlfunktion angesehen, und Autoren werden ermutigt, jetzt nur noch standardmäßige Schlüsselwörter zu verwenden.
Hinweis:
Wenn Sie diese Eigenschaft auf Websites verwenden möchten, sollten Sie sie sehr sorgfältig testen. Obwohl sie in den meisten modernen Browsern unterstützt wird, variiert ihre Implementierung. In älteren Browsern hat selbst das Schlüsselwort none
nicht dieselbe Wirkung auf alle Formularelemente in verschiedenen Browsern, und einige unterstützen es überhaupt nicht. Die Unterschiede sind in den neuesten Browsern geringer.
Syntax
/* CSS Basic User Interface Module Level 4 values */
appearance: none;
appearance: auto;
appearance: menulist-button;
appearance: textfield;
appearance: base-select;
/* Global values */
appearance: inherit;
appearance: initial;
appearance: revert;
appearance: revert-layer;
appearance: unset;
/* <compat-auto> values have the same effect as 'auto' */
appearance: button;
appearance: checkbox;
Werte
Für die folgenden Schlüsselwörter wählt der Benutzeragent das passende Styling basierend auf dem Element aus. Einige Beispiele werden bereitgestellt, aber die Liste ist nicht vollständig.
none
-
Wenn das Element ein Widget (native Formsteuerung) ist, wird es gezwungen, ein standardisiertes primitives Aussehen anstelle eines plattformeigenen oder betriebssystemspezifischen Aussehens zu verwenden, das die üblichen Regeln von CSS unterstützt. Dieser Wert hat keine Auswirkung auf Nicht-Widget-Elemente, einschließlich ersetzter Elemente wie
<img>
und<video>
. auto
-
Wirkt wie
none
auf Elemente ohne spezielles Styling. base-select
-
Wählt das
<select>
-Element und das::picker(select)
-Pseudo-Element in die vom Browser definierten Standardstile und das Verhalten für anpassbare Auswahl-Elemente ein.Hinweis: Die Spezifikation definiert derzeit den
base
-Wert, der allgemeinere Basisstile des Browsers für UI-Elemente, bei denen sie verfügbar sind, anwenden soll. Dies wird jedoch derzeit in keinem Browser unterstützt. <compat-special>
-
Einer von
menulist-button
odertextfield
. Beide dieser Werte sind gleichbedeutend mitauto
auf Elementen ohne spezielles Styling. <compat-auto>
-
Mögliche Werte sind
button
,checkbox
,listbox
,menulist
,meter
,progress-bar
,push-button
,radio
,searchfield
,slider-horizontal
,square-button
undtextarea
. Schlüsselwörter, die das Äquivalent zuauto
für die Aufrechterhaltung der Kompatibilität mit älteren Browsern sind.
Nicht standardisierte Werte
Die folgenden Werte können in historischen Browserversionen mit dem Präfix -moz-appearance
oder -webkit-appearance
funktionsfähig sein, aber nicht in der standardisierten appearance
-Eigenschaft.
Nicht standardisierte Werte
- Firefox-Einträge zeigen Unterstützung mit
-moz-appearance
. - Chrome-, Edge- und Safari-Einträge unten zeigen die Versionsunterstützung für Werte, die mit der Eigenschaft
-webkit-appearance
verwendet werden. - Werte mit einem Sternchen (*) haben klare Absichten zur Entfernung.
- Für jede Zelle von Browserversion und Wert:
Y{version}
: gibt an, dass ein Wert bis einschließlich{version}
unterstützt wird.N{version}
: Unterstützung wurde in einer früheren Veröffentlichung als{version}
entfernt.- Eine leere Zelle bedeutet, dass die Unterstützung nie hinzugefügt wurde.
Wert | Safari | Firefox | Chrome | Edge |
---|---|---|---|---|
attachment |
Y(13.1) | |||
borderless-attachment |
Y(13.1) | |||
button-bevel |
Y(13.1) | N(75) | N(80) | |
caps-lock-indicator |
Y(13.1) | N(80) | ||
caret |
Y(13.1) | N(75) | Y(73) | N(80) |
checkbox-container |
N(75) | |||
checkbox-label |
N(75) | |||
checkmenuitem |
N(75) | |||
color-well |
Y(13.1) | |||
continuous-capacity-level-indicator |
Y(13.1) | |||
default-button |
Y(13.1) | N(80) | ||
discrete-capacity-level-indicator |
Y(13.1) | |||
inner-spin-button |
Y(13.1) | N(75) | Y(118) * | Y(119) |
image-controls-button |
Y(13.1) | |||
list-button |
Y(13.1) | |||
listitem |
Y(13.1) | N(75) | Y(73) | N(80) |
media-enter-fullscreen-button |
Y(13.1) | Y(73) | ||
media-exit-fullscreen-button |
Y(13.1) | Y(73) | ||
media-fullscreen-volume-slider |
Y(13.1) | |||
media-fullscreen-volume-slider-thumb |
Y(13.1) | |||
media-mute-button |
Y(13.1) | N(80) | ||
media-play-button |
Y(13.1) | N(80) | ||
media-overlay-play-button |
Y(13.1) | Y(73) | ||
media-return-to-realtime-button |
Y(13.1) | |||
media-rewind-button |
Y(13.1) | |||
media-seek-back-button |
Y(13.1) | N(73) | ||
media-seek-forward-button |
Y(13.1) | N(73) | ||
media-toggle-closed-captions-button |
Y(13.1) | Y(73) | ||
media-slider |
Y(13.1) | Y(117) | Y(80) | |
media-sliderthumb |
Y(13.1) | Y(117) | Y(80) | |
media-volume-slider-container |
Y(13.1) | Y(73) | ||
media-volume-slider-mute-button |
Y(13.1) | |||
media-volume-slider |
Y(13.1) | Y(117) | Y(80) | |
media-volume-sliderthumb |
Y(13.1) | Y(117) | Y(80) | |
media-controls-background |
Y(13.1) | Y(73) | ||
media-controls-dark-bar-background |
Y(13.1) | |||
media-controls-fullscreen-background |
Y(13.1) | Y(73) | ||
media-controls-light-bar-background |
Y(13.1) | |||
media-current-time-display |
Y(73) | |||
media-time-remaining-display |
Y(13.1) | Y(73) | ||
menulist-text |
Y(13.1) | N(75) | Y(73) | N(80) |
menulist-textfield |
Y(13.1) | N(75) | Y(73) | N(80) |
meterbar |
Y(100) | |||
number-input |
Y(75) | |||
progress-bar-value |
Y(13.1) | Y(73) | ||
progressbar |
Y(100) | |||
progressbar-vertical |
Y(75) | |||
range |
Y(75) | |||
range-thumb |
Y(75) | |||
rating-level-indicator |
Y(13.1) | |||
relevancy-level-indicator |
Y(13.1) | |||
scale-horizontal |
Y(75) | |||
scalethumbend |
Y(75) | |||
scalethumb-horizontal |
Y(75) | |||
scalethumbstart |
Y(75) | |||
scalethumbtick |
Y(75) | |||
scalethumb-vertical |
Y(75) | |||
scale-vertical |
Y(75) | |||
scrollbarthumb-horizontal |
Y(75) | |||
scrollbarthumb-vertical |
Y(75) | |||
scrollbartrack-horizontal |
Y(75) | |||
scrollbartrack-vertical |
Y(75) | |||
searchfield-decoration |
Y(13.1) | N(80) | ||
searchfield-results-decoration |
Y(13.1) | N(75) | N(73) | N(80) |
searchfield-results-button |
Y(13.1) | N(80) | ||
searchfield-cancel-button |
Y(13.1) | N(75) | Y(118) * | Y(119) |
snapshotted-plugin-overlay |
Y(13.1) | |||
sheet |
||||
slider-vertical |
Y(118) * | Y(119) | ||
sliderthumb-horizontal |
Y(117) | Y(80) | ||
sliderthumb-vertical |
Y(117) | Y(80) | ||
textfield-multiline |
Y(100) | |||
-apple-pay-button |
Y(13.1) |
Formale Definition
Anfangswert | none |
---|---|
Anwendbar auf | alle Elemente |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | diskret |
Formale Syntax
Beispiele
Benutzerdefiniertes Styling anwenden
Das folgende Beispiel zeigt, wie man das Standardstyling eines Kontrollkästchens und eines Auswahl-Elements entfernt und benutzerdefiniertes Styling anwendet. Das Aussehen des Kontrollkästchens wird in einen Kreis geändert, und das Auswahl-Element zeigt, wie man den Pfeil entfernt, der anzeigt, dass die Liste erweitert werden kann.
HTML
<input type="checkbox" />
<input type="checkbox" checked />
<select>
<option>default</option>
<option>option 2</option>
</select>
<select class="none">
<option>appearance: none</option>
<option>option 2</option>
</select>
CSS
input {
appearance: none;
width: 1em;
height: 1em;
display: inline-block;
background: red;
}
input:checked {
border-radius: 50%;
background: green;
}
select {
border: 1px solid black;
font-size: 1em;
}
select.none {
appearance: none;
}
Ergebnis
Grundlegende Benutzung eines benutzerdefinierten Auswahl-Elements
Um die Funktionalität eines benutzerdefinierten Auswahl-Elements zu aktivieren, müssen das <select>
-Element und dessen Picker beide einen appearance
-Wert von base-select
setzen:
select,
::picker(select) {
appearance: base-select;
}
Sie könnten dann beispielsweise die Standard-Schwarz border
des Pickers entfernen:
::picker(select) {
border: none;
}
Spezifikationen
Specification |
---|
CSS Basic User Interface Module Level 4 # appearance-switching |