[49-7] input要素で「色」を選んでもらおう (color)
最終更新日:2018年01月31日 (初回投稿日:2013年04月16日)<input type="color">で色を選んでもらう部品を作りましょう。
これもHTML5からの新しいtype属性の値です。
対応ブラウザでは「カラーピッカー」で色を選べます。
入力できる値は、#ff0000 のような16進数による色指定の値なので、カラーピッカーが出ないと、ユーザーが入力するのは無理だよね。
type属性の値 | 部品の役割 | |
---|---|---|
<input>要素で作る 「色」入力の部品 |
type="color" new | 色の入力 |
ほかの属性で機能を追加できます
この color も、type属性以外の属性を使って、さらに機能を追加できます。
(各属性については、それぞれのリンクで詳細をご覧ください。)
- list属性で、選択肢を表示する(<datalist>要素も併用します。)
- autofocus属性で、HTML文書のロード後すぐに「フォーカス(記入のための選択)」する
- form属性で <form>要素の外に出してレイアウトする
- autocomplete属性で「オートコンプリート(履歴から入力予測する)」機能の指定をする
- disabled属性で「使用不可」にする
required属性、readonly属性は使えません(指定しても機能しない)。
type="color" の対応ブラウザは…
<input type="color>は、Edge, Chrome, Firefox が対応しています。
ただし、Firefox は list属性には対応していません。
Safari は ver.11 から対応。IE は未対応です。
モバイルでは Android は対応(標準ブラウザも Android Chrome も)
iOS Safari, Opera Mini は未対応です。
(2017年12月記 / 参考:Can I use | Color input type)
type="color" で「色」をチョイスしてもらおう
colorは、カラーピッカーで色を選ぶための部品。単純なので決まり事は少ないです。
- 送信する値は「# (ハッシュ) 」で始まる16進数のウェブの色指定です。
16進数の色指定については「 [14-4] 色指定について(16進数、色名、10進数、パーセント)」をご覧ください - value属性を省略すると、初期値は「#000000(黒)」
全部デフォルト状態のサンプル
value属性を指定せず、name属性で部品名だけつけたサンプルです。
デフォルトで valueは #000000 (黒) 。
対応ブラウザでは、クリックで OS のカラーピッカーが開き、色を選べます。
<form class="sample">
<span>色を選んでください。</span>
<label><input type="color" name="ex"></label>
<input type="submit" value="送信">
</form>
list属性で color の選択肢を作る
list属性で選択肢を絞り込めます。(<datalist>要素も併用します。)
こちらのほうが、ユーザーが選びやすくて、実用性がありますね。
(Firefox は color の list属性には未対応なので、先ほどのサンプルと変わりませんが)
対応ブラウザでは クリックでリストが現れます。(これは Chrome on Mac)
下のサンプルは、色を選ぶことで <form>要素の背景色が変わるようにしてみました。
HTML(と JavaScript)はこちら。
<form class="sample" id="bgChenge">
<span>色を選んでください。背景色が変わります。</span>
<label><input type="color" name="ex" id="bgColor" list="exlist" value="#ddeaf6">
<datalist id="exlist">
<option value="#ddd2aa"></option>
<option value="#ffe3d5"></option>
<option value="#d4ecad"></option>
<option value="#ddeaf6"></option>
<option value="#5888bd"></option>
<option value="#cdbbd3"></option>
</datalist></label>
</form>
<script>
var bgColor = document.getElementById('bgColor');
bgColor.onchange = function () {
document.getElementById('bgChenge').style.backgroundColor = this.value;
console.log('bgColor:'+this.value);
}
</script>
ここでは、リストの中の1色を <input type="color"> の value属性の値として書いてます(3行目)。この value値を設定しないと デフォルトの黒になります。
リスト内の色を1つ選んで value値にしておかないと、ユーザに「黒もあるんじゃん」と誤解を与えるので要注意ですね。
スクリプトは、changeイベントを使っています。
16行目の「.style.backgroundColor」で背景色を指定していますが、これを「.style.color」で文字色、「.style.borderColor」でボーダーカラーなどと、変化させられます。
変化させるターゲットの要素は ID で選んでいますので(14行目)、他の要素でもOK。
<input>要素の 索引ページ
<input>要素は「type属性の値」でいろいろなフォームの部品になります。
今回の「色」の選択の部品以外は、下記の一覧をご覧ください。
- <input>要素の type属性の値一覧
<input>要素は、type属性以外にもたくさんの属性があり、それによってフォーム部品に機能などを加えられます。詳しくは下記の一覧をご覧ください。
- <input>要素の 他の属性一覧
次回予告
次回は、ユーザがファイルを選んで送信できる <input type="file">を使いましょう。
これは昔からある値です。
ファイルを選択する画面が表示され、ユーザが自分のドライブに保存しているファイルを選んで、送信する事ができます。
- 関連記事
-
- (ちょっとメモ)整理しよう。フォームのボタン比較
- [50] button要素で送信・リセット・汎用ボタンを自由に作ろう
- [49-11] input要素で画像の送信ボタンを作ろう (image)
- [49-10-2] input要素で作るボタンの見た目を CSSで変えよう
- [49-10] input要素で 送信ボタンなどを作ろう (submit, reset, button)
- [49-9] input要素で非表示のデータを送ろう ( hidden )
- [49-8] input要素でファイルを送ってもらおう (file)
- [49-7] input要素で「色」を選んでもらおう (color)
- [49-6] input要素で「レンジ(割合)」を選んでもらおう(range)
- [49-5] input要素で「数」を入力してもらおう (number)
- [49-4] input要素で時間を入力してもらおう (datetime-local, date, month, week, time)
- [49-3] input要素で ラジオボタン や チェックボックスを作ろう (radio, checkbox)
- [49-2] input要素でテキストを入力してもらおう ( text, search, tel, url, email, password )
- [49-1] input要素の属性一覧・ type属性の値一覧
- [48] フォーム部品のグループ化のための fieldset要素と legend要素
初心者にも使いやすい(と思う)レンタルサーバー
「初心者ですがレンタルサーバーはどこがいい?」というご質問をよくいただきます。
自由にファイルをアップロードできる自分のサーバがあると便利ですよね。ローカル環境じゃなくサーバ上で試してみたい時がありますからね。
私が使っているのは、
スターサーバーや ロリポップ!
です。どちらも管理画面がわかりやすく、マニュアルも充実していて、料金も安い。どちらもライトプラン以上で WordPress が使えます。
初心者が始めやすいサーバだと思います。
ちょっと料金は高いけど、さくらのレンタルサーバや、エックスサーバー
は、やはり老舗なのでおすすめです。
両方とも高スペックでコスパが良く、老舗でユーザーが多いので、質問する場がたくさんあります。初心者だけど仕事でサーバが欲しい場合は、安心なのではないかと思います。
スポンサーリンク