このコードが期待どおりに機能しないという不幸な事実を克服するための良い方法は何ですか?
<div class="required">
<label>Name:</label>
<input type="text">
</div>
<style>
.required input:after { content:"*"; }
</style>
完璧な世界では、必要なすべてinput
のsに、フィールドが必要であることを示す小さなアスタリスクが表示されます。CSSは要素自体の後にではなく、要素のコンテンツの後に挿入されるため、この解決策は不可能ですが、そのようなものが理想的です。何千もの必須フィールドがあるサイトでは、入力の前にアスタリスクを1行(:after
to :before
)に変更して移動するか、ラベルの最後(.required label:after
)またはラベルの前に移動するか、または収納ボックスの位置など...
これは、アスタリスクをどこに配置するかについて考えが変わった場合だけでなく、フォームレイアウトでアスタリスクを標準の位置に配置できない奇妙な場合にも重要です。また、フォームをチェックしたり、不適切に完了したコントロールを強調表示したりする検証ともうまく機能します。
最後に、追加のマークアップは追加されません。
不可能なコードのすべてまたはほとんどの利点を備えた優れたソリューションはありますか?