::picker()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Das ::picker()
CSS Pseudo-Element zielt auf den Auswahlsystemteil eines Elements ab, zum Beispiel den Dropdown-Auswahlteil eines anpassbaren Auswahl-Elements.
Syntax
::picker(<ident>) {
/* ... */
}
Parameter
Beschreibung
Das ::picker()
Pseudo-Element zielt auf den Auswahlsystemteil eines Formularelements ab, also den Popup-Teil, der erscheint, um eine Auswahl zu treffen, wenn Sie die Steuerungstaste drücken. Es kann nur anvisiert werden, wenn das ursprungsgebende Element ein Auswahlsystem hat und das Grundaussehen über die appearance
-Eigenschaft auf den Wert base-select
gesetzt ist.
Der ::picker(select)
Selektor zielt auf alle Nachfahren des anpassbaren <select>
Elements ab, außer auf das erste <button>
Kind; diese Nachfahren werden vom Browser zusammengefasst und als das Auswahlsystem dargestellt. Das erste <button>
Kind repräsentiert die Steuerungstaste, die das Auswahlsystem öffnet, wenn sie gedrückt wird.
Dies ermöglicht es Ihnen, alle Inhalte des Auswahlsystems als eine einzelne Einheit zu gestalten, zum Beispiel wenn Sie dessen Rand anpassen, es beim Erscheinen und Verschwinden animieren oder es an anderer Stelle als der Standardposition positionieren möchten. Unser Leitfaden für anpassbare Auswahl-Elemente zeigt viele Beispiele für die Verwendung von ::picker(select)
.
Picker-Popup-Verhalten
Das <select>
Element und das Auswahlsystem haben automatisch eine implizite Aufrufer-/Popup-Beziehung zugewiesen, wie sie durch die Popover-API festgelegt ist. Siehe Verwendung der Popover-API für mehr Details zum Popup-Verhalten, und siehe Animation des Dropdown-Auswahlsystems mit Popup-Zuständen für einen typischen Anwendungsfall, der durch die implizite Popup-Assoziation ermöglicht wird.
Picker-Anker-Positionierung
Ein weiterer Nebeneffekt der oben genannten impliziten Aufrufer-/Popup-Beziehung ist, dass das <select>
Element und das Auswahlsystem auch eine implizite Ankerreferenz haben, was bedeutet, dass das Auswahlsystem automatisch mit dem select
über CSS-Anker-Positionierung verknüpft ist. Dies hat mehrere Vorteile, insbesondere:
-
Die Standardeinstellungen des Browsers positionieren das Auswahlsystem relativ zur Schaltfläche (dem Anker) und Sie können diese Position anpassen, wie in Positionierung von Elementen relativ zu ihrem Anker erläutert. Zur Referenz sind die zugehörigen Standardstile wie folgt:
cssinset: auto; margin: 0; min-inline-size: anchor-size(self-inline); min-block-size: 1lh; /* Go to the edge of the viewport, and add scrollbars if needed. */ max-block-size: stretch; overflow: auto; /* Below and span-right, by default. */ position-area: block-end span-inline-end;
-
Die Standardeinstellungen des Browsers definieren auch einige Positionsfehlversuche, die das Auswahlsystem neu positionieren, wenn die Gefahr besteht, dass es den Ansichtsbereich überläuft. Positionsfehlversuche sind im Leitfaden über Fallback-Optionen und bedingtes Verstecken bei Überlauf erklärt. Zur Referenz sind die zugehörigen Standardfallback-Stile wie folgt:
cssposition-try-order: most-block-size; position-try-fallbacks: /* First try above and span-right, */ /* then below but span-left, */ /* then above and span-left. */ block-start span-inline-end, block-end span-inline-start, block-start span-inline-start;
Hinweis:
Wenn Sie die implizite Ankerreferenz entfernen möchten, um zu verhindern, dass das Auswahlsystem an das <select>
Element angeheftet wird, können Sie dies tun, indem Sie die position-anchor
-Eigenschaft des Auswahlsystems auf einen Ankernamen setzen, der im aktuellen Dokument nicht existiert, wie --not-an-anchor-name
. Siehe auch Entfernung einer Ankerassoziation.
Beispiele
>Grundlegende Verwendung von kundenspezifischen Auswahlmöglichkeiten
Um die Funktionalität für kundenspezifische Auswahlmöglichkeiten und minimale grundlegende Browserstile zu aktivieren und das vom Betriebssystem bereitgestellte Styling zu entfernen, müssen das <select>
Element und sein Auswahlsystem beide den appearance
Wert base-select
gesetzt haben:
select,
::picker(select) {
appearance: base-select;
}
Sie könnten dann zum Beispiel den standardmäßigen schwarzen border
des Auswahlsystems entfernen:
::picker(select) {
border: none;
}
Spezifikationen
Specification |
---|
CSS Form Control Styling Level 1> # picker-pseudo> |
Browser-Kompatibilität
Loading…