SelectMenu HTMLタグ
selectmenu
の導入:革新的なフォームコントロール
この記事では、実験的なselectmenu
フォームコントロールに分かれ、従来のスタイリング機能を強調しています<select></select>
要素。その開発の背後にある理由と、Webフォームの設計に革命をもたらす可能性を探ります。
Web開発者は、主要なプラットフォームの欠陥として、スタイリングフォームコントロールの制限を頻繁に引用しています。 2020年のCSS調査では、トップ10の最も必要な改善の中でフォームスタイリングをランク付けしました。<select></select>
スタイルを効果的にスタイリングするための最も問題のある要素として具体的に識別されます。一方、aのボタン部分<select></select>
スタイルが比較的簡単で、ドロップダウン内のオプションをカスタマイズすることは非常に挑戦的なままです。
その結果、多くの設計システムとコンポーネントライブラリは、HTML、CSS、およびJavaScriptを使用して、ゼロからカスタム選択要素を作成します。ただし、適切なアクセシビリティ、キーボードナビゲーション、および正確なポップアップポジショニングを実現することは複雑で時間がかかり、多くの場合、アクセスできない選択メニューになります。
selectmenu
コントロールは、組み込みの非常にスタイル性のある代替品を提供することにより、この永続的な問題を解決することを目的としています。
オープンUIイニシアチブ
オープンUIイニシアチブは、開発者、デザイナー、ブラウザーの実装者が関与する共同の取り組みであり、 selectmenu
の開発を推進しています。その目標は、開発者がselectmenu
、ドロップダウン、チェックボックス、ラジオボタンなどの組み込みのUIコントロールを完全にスタイルし、拡張できるようにすることです。これには、実装の仕様を作成し、アクセシビリティ要件に対処することが含まれます。
まだ初期段階にある間、プロジェクトは急速に進行しており、結果は有望です。オープンUIコミュニティに参加して、その開発に貢献できます。
selectmenu
コントロール
Chromium(主にMicrosoft Edge Teamによって、Google Chromeとのコラボレーション)で実装されたselectmenu
、おなじみのオプション選択エクスペリエンスを提供する新しい組み込みコントロールです。選択した値を表示するボタン、ボタンをクリックすることでトリガーされるポップアップ、ポップアップ内のオプションのリストが備わっています。
なぜ新しい名前ですか?
「selectmenu」という名前はプレースホルダーです。主に既存のものを大幅に変更するため<select></select>
要素は、広範囲にわたる互換性の問題を引き起こします。したがって、 selectmenu
は独立したコントロールとして設計されています。
はじめる
まだ制作可能ではありませんが、次のようにselectmenu
を試してみることができます。
- Chromiumベースのブラウザ(ChromeまたはEdge)のカナリアバージョンを使用します。
- 「Experimental Webプラットフォームの機能」フラグを
about:flags
とRestartで有効にします。 - 交換する
<select></select>
selectmenu
を使用したWebページの要素。
基本的な機能はデフォルトで提供されますが、 selectmenu
の真の力は、そのスタイリングと拡張性オプションにあります。
フィードバックが奨励されました!
オープンUIチームはフィードバックを歓迎します。早期テストは、コントロールの改善に役立ちます。オープンUI GitHubリポジトリを介してバグまたは制限を報告します。
selectmenu
解剖学を理解する
selectmenu
スタイリングには、その内部構造を理解する必要があります。
-
<selectmenu></selectmenu>
:ボタンとリストボックスを含むルート要素。 -
<button></button>
:リストボックスの可視性をトリガーします。 -
<label></label>
:(オプション)選択した値を表示します。必ずしも内部ではありません<button></button>
。 -
<listbox></listbox>
:ラップ<option></option>
そして<optgroup></optgroup>
要素。 -
<optgroup></optgroup>
:グループ<option></option>
オプションのラベル付きの要素。 -
<option></option>
:選択可能な値を表します。
デフォルトの動作
selectmenu
の動作を模倣します<select></select>
。最小限のマークアップで十分です:
<selectmenu> <option value="Option 1">オプション1</option> <option value="Option 2">オプション2</option> <option value="Option 3">オプション3</option> </selectmenu>
デフォルト<button></button>
、<label></label>
、 そして<listbox></listbox>
要素は自動的に生成されます。
::part()
とのスタイリング
::part()
pseudo-elementは、個々のコンポーネントのスタイリングを許可します。
.My-Select-Menu :: part(button){ 色:白; バックグラウンドカラー:#f00; パディング:5px; ボーダーラジウス:5px; } .My-Select-Menu :: part(listbox){ パディング:10px; マージントップ:5px; 境界線:1px固体赤; ボーダーラジウス:5px; }
これにより、ボタンとリストボックスがスタイリングされます。 ::part()
で動作します<button></button>
、<label></label>
、 そして<listbox></listbox>
。
カスタムマークアップ
コントロールを大きくするには、名前付きスロットを使用してデフォルトマークアップを交換します。
<selectmenu class="my-custom-select"> <div slot="button"> <button behavior="button">開ける</button> <span class="label">オプションを選択します</span> </div> <option value="Option 1">オプション1</option> <option value="Option 2">オプション2</option> <option value="Option 3">オプション3</option> </selectmenu>
slot="button"
属性は、デフォルトボタンを置き換えます。 behavior="button"
ボタンの動作とアクセシビリティを割り当てます。同様の手法が適用されます<listbox></listbox>
。
拡張マークアップ
機能を拡張するために新しい要素を追加します:
<selectmenu class="my-custom-select"> <div slot="listbox"> <div behavior="listbox" popup=""> <h3 id="花">花</h3> <option value="Rose">薔薇</option> <h3 id="木">木</h3> <option value="Willow">柳</option> </div> </div> </selectmenu>
これにより、カスタムグループ化とスタイリングが追加されます。
ShadowDomの交換(Advanced)
完全に制御するには、 attachShadow()
を使用してShadow Domを交換します。これは最大のカスタマイズを提供しますが、より高度な手法が必要です。
結論
selectmenu
、スタイリングと伝統の拡張において大幅な改善を提供します<select></select>
要素。組み込みのブラウザの実装により、アクセシビリティと適切なポジショニングが保証されます。まだ実験的ですが、 selectmenu
Webフォームの設計を強化するための計り知れない可能性を保持しています。 Open UIイニシアチブに参加して、その将来を形作るのを支援します。
以上がSelectMenu HTMLタグの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

購入またはビルドは、テクノロジーの古典的な議論です。自分で物を構築することは、あなたのクレジットカードの請求書にはラインアイテムがないため、安価に感じるかもしれませんが

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

CSSやJavaScript(および画像とフォントなど)などのアセットにファーアウトキャッシュヘッダーを確実に設定する必要があります。それはブラウザを伝えます

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:
