だから私はに基づいてカスタムコンポーネントを作成して<ul><li>
いますが、<select><option>
それをクリックすると、その特定のコンポーネントのcssに何かを追加することで、その前景/背景をユーザーシステムのデフォルトの選択色に設定したいと思います
現在、特定のOSの特定のブラウザにのみ適したバージョンのblueにハードコードされています。
.delete_criteria li.selected {
background-color: #3399FF;
color: white;
}
上記のCSSを追加しない場合、選択しても目に見える変化はありません。この擬似コードが示すように、私がやりたいことはデフォルトに設定されています
.delete_criteria li.selected {
background-color: default-selection-background-colour;
color: default-selection-foreground-colour;
}
しかし、default-selection-background-colourとdefault-selection-foreground-colourを何に置き換えるかわかりません
htmlとjavscriptを示すより完全な例:
<div class="delete_criteria">
<ul>
<li>
<div>
<label>
Audio Format
</label>
<input name="AUDIOFORMAT" id="AUDIOFORMAT" value="AUDIOFORMAT" hidden="hidden" type="text">
</div>
</li>
<li>
<div>
<label>
Bitrate
</label>
<input name="BITRATE" id="BITRATE" value="BITRATE" hidden="hidden" type="text">
</div>
</li>
<li>
<div>
<label>
Track Length
</label>
<input name="TRACKLENGTH" id="TRACKLENGTH" value="TRACKLENGTH" hidden="hidden" type="text">
</div>
</li>
<li>
<div>
<label>
Filename
</label>
<input name="FILENAME" id="FILENAME" value="FILENAME" hidden="hidden" type="text">
</div>
</li>
<li>
<div>
<label>
File Creation Date
</label>
<input name="FILE_CREATION_DATE" id="FILE_CREATION_DATE" value="FILE_CREATION_DATE" hidden="hidden" type="text">
</div>
</li>
<li>
<div>
<label>
File Modified Date
</label>
<input name="FILE_MODIFIED_DATE" id="FILE_MODIFIED_DATE" value="FILE_MODIFIED_DATE" hidden="hidden" type="text">
</div>
</li>
</ul>
<button id="up" type="button">
Up
</button>
<button id="down" type="button">
Down
</button>
// enable moving an element up
document.getElementById('up').addEventListener('click', () => {
var li = document.querySelector('li.selected');
if (li.previousElementSibling !== null) {
li.parentNode.insertBefore(li, li.previousElementSibling);
}
});
// enable moving an element down
document.getElementById('down').addEventListener('click', () => {
var li = document.querySelector('li.selected');
if (li.nextElementSibling !== null) {
li.parentNode.insertBefore(li, li.nextElementSibling.nextElementSibling);
}
});
</script>
</div>
</td>
</tr>
</table>
<div>
.delete_criteria ul {
padding-left: 0;
width: 20em;
list-style-type: none;
border: 1px solid darkgray;
vertical-align:top;
}
.delete_criteria li {
padding: 2px 4px;
}
.delete_criteria li.selected {
background-color: #3399FF;
color: white;
}
以下の質問を読みましたが、ユーザーの状況に関係なく、値をハードコードされた値に設定する方法のみを示しています。
System Colors
CSS2で使用してみることができますが、そのCSS3
外観はすでに非推奨です。
システムの色は、ユーザーエージェントの色ではなく、オペレーティングシステムの色を指します。
.highlight {
color: HighlightText;
background-color: Highlight;
}
<div class="highlight">Highlight</div>
編集者ドラフトでの外観について話し合う
ここにいくつかのポインタがあります
appearance
仕様とその問題:注:この仕様は、このプロパティの以前の提案や実験的な実装でいくつかのUAベンダーによって以前に試みられたように、すべての可能なフォームコントロールとサブコントロールの外観を値として使用できるようにすることを意図的に控えています。経験によれば、そのようなリストは非常に長く、維持するのは実用的ではなく、UAは、フォームコントロールの実装に使用されることがある非標準の疑似要素の動作を説明するために非標準の値を追加する必要があります。さらに、このような列挙型の多くの値は、単一の要素または疑似要素でのみ意味があり、UAスタイルシートの外部で使用されることはありません。代わりに、この仕様は自動のみを提供し、何も提供しません。したがって、UAは、UAスタイルシートのappearanceプロパティを使用して、各コントロールにネイティブのルックアンドフィールを与えることはできません。ドキュメント内の特定の要素をネイティブフォームコントロールのように表示および動作させたい作成者は、このプロパティまたはその実験的なバリアントを使用するのではなく、ドキュメントのマークアップ言語で正しい要素を使用する必要があります。
この仕様の将来のバージョンでは、実験的な実装用に作成されたコンテンツとの互換性に問題があることが判明した場合、一般的に望ましい外観にさらにいくつかの値が追加される可能性があります。これまでのところ、経験によれば、これは当てはまりません。これが起こったとしても、プロパティがすべての可能なコントロールとサブコントロールをカバーするように成長することは予想されていません。
システムカラーはJavaから導入され、当時のウィンドウシステム(Windows95およびMacOS7)と一致するネイティブな外観のダイアログを作成したいと考えていました。それもできませんでした。Windows98にタイトルバーのグラデーションが導入されたことで、プラットフォームの外観を追いかけることは常にとらえどころのない、動くターゲットになることが明らかになりました。さらに、ネイティブUIを正確に偽造できることのセキュリティへの影響が明らかになりつつありました。外観は、それがどのようなものかを正確に指定せずに、ネイティブの外観と一致させる試みでした。時間枠は、UIテーマがケースの色を反映した明るい色のiMacの出現でした(そのためのフレーバーキーワードもありました)。これらの提案は漠然と表現されすぎて実際に実装できず、開発者の関心もほとんど見られなかったため、取り下げられました。
可能な限りネイティブに見えるように要素のスタイルを設定する必要があるシナリオをどのように進めますか?
細心の注意を払い、関連するなりすましのリスクを完全に理解します。どの時点でどのプラットフォームのどのUIをエミュレートするかを正確に決定することによって。そして、あなたのスタイリングは壊れやすく、数年ごとにやり直す必要があることに気づきました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加