一部の人はすでに知っているかもしれませんが、select 要素のスタイリングは悪夢であり、JavaScript のトリッキーなしでは文字通り不可能です。HTML5 の新しいデータリストは、ユーザーにオプションのリストが表示され、値が入力テキスト フィールドに記録されるため、同じ目的を果たすことができます。
ここでの制限は、ユーザーがテキスト フィールドに何かを入力し始めるまでリストが表示されず、入力に基づいて可能な一致のみが表示されることです。私が望む動作は、フィールドにフォーカスがあるとすぐに、オプションのリスト全体が表示されるようにすることです。
だから私はこのコードを持っています-jsbinで見る
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Input - Datalist</title>
</head>
<body>
<input list="categories">
<datalist id="categories">
<option value="Breakfast">Breakfast</option>
<option value="Brunch">Brunch</option>
<option value="Lunch">Lunch</option>
<option value="Dinner">Dinner</option>
<option value="Desserts">Desserts</option>
</datalist>
</body>
</html>
そして、私はそれをこのJavascriptで表示しようとしています:
var catVal = document.getElementsByTagName("input")[0],
cat = document.getElementById("categories");
catVal.style.fontSize = "1.3em";
catVal.addEventListener("focus", function(event){
cat.style.display = "block";
}, false);
どんな助けでも大歓迎です、
乾杯