楽しみのために、昼食時に純粋な CSS (画像や JavaScript なし) で Webkit のみのバージョンを少し作りました。必ずしもこのアプローチをお勧めするわけではありませんが、試してみることに抵抗できませんでした。
これは非常に単純なアプローチです。スライダーの代わりにラジオ ボタンのグループを使用しました。これにより、:checked
疑似クラスを使用して、選択した値に応じて口の色と形を変更できます。口の形は と だけで表しheight
ますborder-radius
。例えば:
#feel-0:checked ~ #mouth {
border-radius: 30px 30px 0 0;
height: 20px;
margin-top: -5px;
}
説明テキストは、選択したラジオ ボタンのラベル フィールドです。最初はすべてのラベルが非表示になっていますが、フィールドがチェックされると隣接するラベルが表示されます。
#happiness input:checked + label {
visibility: visible;
}
矢印キーを使用して、選択されているフィールドを変更できます (視覚的にスライダーを左右に動かします)。これは、ラジオ グループの組み込みの動作です。
少し手を加えるだけで、これを適応させて、非 WebKit ブラウザーでのスライダーの見栄えを良くすることができます。ただし、一部の古いブラウザーでは動作が不安定になる場合があり、スライダーを左右にドラッグすることはできません。本番環境では、JavaScript スライダー (利用可能な多くのjQuery オプションの 1 つなど) を使用し、CSS 疑似クラス マジックを JS の散らばったものと少数のクラスに置き換えます。