★input要素のスタイルを属性値で指定し分ける

私たちはカジノサイトを独自にレビューしています。当社のリンクを通じてサインアップすると、追加料金なしで当社に手数料が発生する場合があります。

input要素のスタイルを属性値で指定し分ける

広告



今回は、「メールアドレス」入力欄と「お名前」入力欄の横幅を揃えようと思います。
入力欄の横幅を揃えるのが本当にスタイルとして良いかどうかはともかく、現在の表示領域に対して横幅70%で統一することにします。

入力欄のスタイルを指定するのですから、input要素にスタイル指定すれば良いように思います。
そこで、form.cssに以下の記述を追加してみましょう。

CSSソース(form.css)

@charset "utf-8";

/***************************************
入力フォーム
***************************************/
#form1 input, #form1 textarea {
	font-size:16px;			/*フォントサイズ*/
	border:1px solid #999999;	/*ボーダー*/
	padding:2px;			/*パディング*/
	border-radius:3px;		/*角丸にする*/
	box-shadow: 1px 1px 1px 1px rgba(0,0,0,0.1) inset;	/*影を付ける*/
}
#form1 input:focus, #form1 textarea:focus {
	box-shadow: 0px 0px 5px 2px #ccccee;		/*影を付ける*/
	outline-style:none;				/*アウトライン無しにする*/
}
#form1 p input {
	width:300px; height:40px;	/*幅と高さ*/
	border:0;			/*ボーダー無し*/
}
#form1 p {
	text-align:center;		/*センタリング*/
	text-indent:0;			/*字下げ幅をゼロにする*/
}
#form1 input {
	width:70%;
}

保存をしたらブラウザで表示してみましょう。

上記のCSSソースで良いように思ったのですが、
「メールアドレス」入力欄と「お名前」入力欄だけではなく、「お問合せ区分」のラジオボタンまで横幅が広がってしまっています。

ラジオボタンはHTMLで
<input type=”radio”>
と指定しているので、CSSで
#form1 input {width:70%;}
と指定すると、ラジオボタンまでスタイル指定の影響を受けてしまうのです。

このような場合には、属性値セレクタをします。
先ほどform.cssに追加した部分を、以下のように書き換えてください。

CSSソース(form.css)

@charset "utf-8";

/***************************************
入力フォーム
***************************************/
#form1 input, #form1 textarea {
	font-size:16px;			/*フォントサイズ*/
	border:1px solid #999999;	/*ボーダー*/
	padding:2px;			/*パディング*/
	border-radius:3px;		/*角丸にする*/
	box-shadow: 1px 1px 1px 1px rgba(0,0,0,0.1) inset;	/*影を付ける*/
}
#form1 input:focus, #form1 textarea:focus {
	box-shadow: 0px 0px 5px 2px #ccccee;		/*影を付ける*/
	outline-style:none;				/*アウトライン無しにする*/
}
#form1 p input {
	width:300px; height:40px;	/*幅と高さ*/
	border:0;			/*ボーダー無し*/
}
#form1 p {
	text-align:center;		/*センタリング*/
	text-indent:0;			/*字下げ幅をゼロにする*/
}
input[type="text"] ,input[type="email"] {
	width:70%;
}

保存をしたらブラウザで表示してみましょう。
「メールアドレス」入力欄と「お名前」入力欄の横幅が70%で統一され、かつ、ラジオボタンへのスタイルの影響が無くなれば成功です。

今回追加したCSSソースを確認

今回追加したCSSソースの内容を確認しておきましょう。

カンマ区切りでセレクタを並べる

今回追加したCSSソースでは、
input[type=”text”] と
input[type=”email”] という2つのセレクタを、カンマ区切りで並べています。
これは、「input要素のtype属性の値がtextの場合、および、input要素のtype属性の値がemailの場合」という意味です。

セレクタをカンマで区切って並べると、複数のセレクタに対して同じスタイルをまとめて指定することができます。

例:セレクタAとセレクタBに同じスタイルをまとめて指定

セレクタA, セレクタB {
	スタイル内容
}
属性値セレクタ

input[type=”text”] は「input要素のtype属性の値がtextの場合」という意味です。
input[type=”email”] は「input要素のtype属性の値がemailの場合」という意味です。
このような属性値セレクタを使えば、特定の属性値を持つ要素にだけスタイルを適用できます。

例:属性値がtextの場合にだけスタイルを適用

input[type="text"]{
	スタイル内容
}

属性値セレクタを使うことで、ラジオボタンにはスタイルが適用されずに、テキスト入力欄とメール入力欄のみに横幅70%のスタイルを適用することが可能になります。

インターネット上で提供されているフォームサービスを利用

ここまででフォームの入力画面(contact_jisaku )が完成しました。
ただし、あくまでも入力画面であり、実際には問い合わせメールを送信することはできません。

これを実際にメールが送信できるものにしたいのですが、メール送信フォームをすべて自力で作成しようとすると、CGIやPHPなどのサーバー側で処理するプログラムの知識が必要となってきます。

これらの知識はHTMLとCSSの範囲を超えているため、このチュートリアルではメール送信のプログラム部分については扱いません。
メール送信フォームをすべて自力で作成したい方は、さらにCGIやPHPなどのプログラムの勉強をされると良いでしょう。

しかし、実際にメール送信できない単なるフォーム入力画面では、ウェブサイトとして使いものになりません。
そこで、インターネット上で提供されているフォームサービスを利用することで、HTMLとCSSの範囲で実際にメール送信ができるお問合せページを作成していくことにします。

ここまでの制作段階で、「お問合せ(自作)」ページは以下の状態となっています。

まとめ
  1. input要素を対象にスタイル指定すると、一行テキストボックス・ラジオボタンなどがすべて影響を受けてしまう
  2. 要素名[属性名=”属性値”] { ~ } の書式で、属性に特定の値が指定されている要素だけを対象にスタイル指定できる
  3. 例えば、input[type=”email”] { ~ } なら、「type属性の値がemailのinput要素」がスタイル適用対象になる
<前へ 目次へ 次へ>

広告



山田 太郎
テック・リード
山田太郎は、ウェブ開発やグラフィックスプログラミングに10年以上の経験を持つテクノロジーの専門家です。特にHTML5 CanvasやJavaScript、インタラクティブメディアに精通しており、動的なユーザーインターフェースや最先端のウェブアプリケーションの開発に携わってきました。複雑な図形描画や画像操作、リアルタイムグラフィックスに関する知識が豊富で、ウェブ技術の限界を追求する開発者たちにとって頼りになる存在です。知識の共有に情熱を持ち、初心者からプロフェッショナルまで幅広く支援するため、技術フォーラムやブログにも積極的に貢献しています。

ギャンブルガイド もっと見る

カジノファインダー

どのカジノが自分に最適か分からないですか?

サインアップは必要なく、1 分以内に最適なブックメーカーを簡単に見つけることができます。
カジノを探す
Back
質問
Select one of the following options
{"is_any_tile":true}

どのカジノが自分に最適か分からないですか?

Back
Restart
やったー!
これはあなたの選択に基づいた最高のカジノです...
63 users signed up
もっと表示する