今回は、「メールアドレス」入力欄と「お名前」入力欄の横幅を揃えようと思います。
入力欄の横幅を揃えるのが本当にスタイルとして良いかどうかはともかく、現在の表示領域に対して横幅70%で統一することにします。
入力欄のスタイルを指定するのですから、input要素にスタイル指定すれば良いように思います。
そこで、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に追加した部分を、以下のように書き換えてください。
@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ソースでは、
input[type=”text”]
と
input[type=”email”]
という2つのセレクタを、カンマ区切りで並べています。
これは、「input要素のtype属性の値がtextの場合、および、input要素のtype属性の値がemailの場合」という意味です。
セレクタをカンマで区切って並べると、複数のセレクタに対して同じスタイルをまとめて指定することができます。
セレクタA, セレクタB { スタイル内容 }
input[type=”text”]
は「input要素のtype属性の値がtextの場合」という意味です。
input[type=”email”]
は「input要素のtype属性の値がemailの場合」という意味です。
このような属性値セレクタを使えば、特定の属性値を持つ要素にだけスタイルを適用できます。
input[type="text"]{ スタイル内容 }
属性値セレクタを使うことで、ラジオボタンにはスタイルが適用されずに、テキスト入力欄とメール入力欄のみに横幅70%のスタイルを適用することが可能になります。
ここまででフォームの入力画面(contact_jisaku )が完成しました。
ただし、あくまでも入力画面であり、実際には問い合わせメールを送信することはできません。
これを実際にメールが送信できるものにしたいのですが、メール送信フォームをすべて自力で作成しようとすると、CGIやPHPなどのサーバー側で処理するプログラムの知識が必要となってきます。
これらの知識はHTMLとCSSの範囲を超えているため、このチュートリアルではメール送信のプログラム部分については扱いません。
メール送信フォームをすべて自力で作成したい方は、さらにCGIやPHPなどのプログラムの勉強をされると良いでしょう。
しかし、実際にメール送信できない単なるフォーム入力画面では、ウェブサイトとして使いものになりません。
そこで、インターネット上で提供されているフォームサービスを利用することで、HTMLとCSSの範囲で実際にメール送信ができるお問合せページを作成していくことにします。
ここまでの制作段階で、「お問合せ(自作)」ページは以下の状態となっています。
<前へ | 目次へ | 次へ> |