無料で使えるオンライン画像編集ツール!Photopeaの使い方をご紹介
用意するもの
前回まででホームページがほぼほぼ出来上がってきましたね。あとはお問い合わせフォームの調整をしてやれば完成ですので、もう少し頑張っていきましょう。
フォーム部分では「form」タグ内にさまざまなタグを用いて情報を処理する事ができます。今回はinputタグとtextareaタグを使ってテキスト入力欄を作ります。
こちらの「デモサイト」から実際のページを確認して頂けます。
目次 [閉じる]
慣れないと記述が複雑なのでよくわからないと思いますので、ゆっくりとひとつひとつ確認していってください。入力フォームはinput.htmlに記述します。
input.html
- <section id="contact">
- <div class="imageWrap"></div>
- <div class="inner" id="contactInner">
- ~「.title」の記述省略~
- ~「.txt」の記述省略~
- <div class="formBox">
- <form method="post" action="./#contactInner" enctype="multipart/form-data">
- <input type="hidden" name="csrf_token" value="{$csrf_token}">
- <div class="itemWrap">
- <label><p>お名前<i class="required"></i></p><input type="text" name="お名前" value="{$お名前}"></label>
- <input type="hidden" name="required[]" value="お名前">
- {if:$required.お名前}<em data-rule="required">※{$required.お名前}</em>{/if:$required.お名前}
- </div>
- <div class="itemWrap">
- <label><p>メールアドレス<i class="required"></i></p><input type="text" name="メールアドレス" value="{$メールアドレス}"></label>
- <input type="hidden" name="required[]" value="メールアドレス">
- {if:$required.メールアドレス}<em data-rule="required">※{$required.メールアドレス}</em>{/if:$required.メールアドレス}
- <input type="hidden" name="email[]" value="メールアドレス">
- {if:$email.メールアドレス}<em data-rule="email">※{$email.メールアドレス}</em>{/if:$email.メールアドレス}
- </div>
- <div class="itemWrap">
- <label><p>お問い合わせ内容<i class="required"></i></p><textarea name="お問い合わせ内容">{$お問い合わせ内容}</textarea></label>
- <input type="hidden" name="required[]" value="お問い合わせ内容">
- {if:$required.お問い合わせ内容}<em data-rule="required">※{$required.お問い合わせ内容}</em>{/if:$required.お問い合わせ内容}
- </div>
- <div class="fonmBtn">
- <input type="submit" value="確認する">
- </div>
- </form>
- </div>
- </div>
- </section>
今回は一番シンプルな形で「お名前」「メールアドレス」「お問い合わせ内容」の3点のみを記入するフォームを作ります。この3点は必須項目となり、どれかひとつが未記入でも送信できない仕様です。
まずformタグのaction属性には「./#contactInner」を指定しています。前回、少しお話しましたがこの記述があると確認ページに遷移したりエラーメッセージが表示されても「#contactInner」へ移動します。
この記述がないとページ上部へ画面が移動してしまうので注意してください。
inputタグにはいくつも使い方があるんですが、「お名前」と「メールアドレス」には「type=”text”」として文字の記入欄を作っています。「確認する」などの機能を付けるならinputを「type=”sumit”」とします。
そしてtextareaタグも文字の記入欄を作るんですが、複数行にまたがる文章などを記入してもらう際に使用します。逆に言うとinputタグでは複数行の文字の記入はできません。
- <label><p>お名前<i class="required"></i></p><input type="text" name="お名前" value="{$お名前}"></label>
- <input type="hidden" name="required[]" value="お名前">
- {if:$required.お名前}<em data-rule="required">※{$required.お名前}</em>{/if:$required.お名前}
わかりやすくするために「お名前」の部分だけ取り出して確認していきましょう。
inputタグのname属性には「お名前」をvalue属性には「{$お名前}」を記述します。「type=”hidden”」が付いているinputはvalue属性を「お名前」とします。
そして「お名前」を必須項目とするために「type=”hidden”」のinputタグのname属性を「required[]」とします。「{if:$required.お名前}~{/if:$required.お名前}」の記述は「お名前」欄が未記入の時に表示するエラーメッセージを設定しています。
textareaは記述が少し違っていてvalue属性は記述しません。その代わりに「<textarea>」と「</textarea>」の間に「{$お問い合わせ内容}」を記述します。
またメールアドレスの「{if:$email.メールアドレス}~{/if:$email.メールアドレス}」の部分では、記入された文字列がメールアドレスとして正しい文字列じゃなければエラーメッセージを返します。
それではinput.htmlのフォーム部分をデザインしていきます。
style.css
- /* input */
- #contact .formBox { margin-top: 60px }
- #contact .formBox .itemWrap {
- width: 100%;
- padding: 20px 10px;
- border-bottom: 1px dashed #c1c1c1
- }
- #contact .formBox .itemWrap:first-child { border-top: 1px dashed #c1c1c1 }
- #contact .formBox .itemWrap label { display: table }
- #contact .formBox .itemWrap label p {
- width: 240px;
- font-size: 1.6rem;
- letter-spacing: 0.09em;
- vertical-align: top;
- text-align: left;
- padding: 13px 0 0 0;
- display: table-cell;
- position: relative
- }
- #contact .formBox .itemWrap label p .required {
- color: #e21412;
- font-size: 1.3rem;
- letter-spacing: 0.09em;
- font-style: normal;
- position: absolute;
- top: 18px;
- right: 20px
- }
- #contact .formBox .itemWrap label p .required::after { content: "必須" }
- #contact .formBox .itemWrap input {
- width: 620px;
- height: 50px;
- font-size: 1.6rem;
- vertical-align: middle;
- padding: 0 10px;
- border: 2px solid #c1c1c1;
- transition: all 0.2s
- }
- #contact .formBox .itemWrap input:hover,
- #contact .formBox .itemWrap input:active {
- border: 2px solid #1f1f1f
- }
- #contact .formBox .itemWrap textarea {
- width: 620px;
- height: 120px;
- font-size: 1.6rem;
- vertical-align: middle;
- padding: 10px;
- border: 2px solid #c1c1c1;
- transition: all 0.2s
- }
- #contact .formBox .itemWrap textarea:hover,
- #contact .formBox .itemWrap textarea:active {
- border: 2px solid #1f1f1f
- }
- #contact .formBox .itemWrap em {
- color: #e21412;
- font-size: 1.3rem;
- font-style: normal;
- letter-spacing: 0.09em;
- text-align: left;
- padding: 0 10px 0 240px;
- margin-top: 10px;
- display: block
- }
- #contact .formBox .itemWrap em + em { margin-top: 0 }
- #contact .formBox .fonmBtn {
- width: 360px;
- text-align: center;
- margin: 20px auto 0
- }
- #contact .formBox .fonmBtn input {
- width: 100%;
- color: #fff;
- font-size: 1.6rem;
- font-weight: 600;
- font-family: inherit;
- letter-spacing: 0.09em;
- line-height: 60px;
- border: none;
- background: #e21412;
- position: relative;
- display: block
- }
- @media screen and (max-width: 768px) {
- #contact .formBox { margin-top: 40px }
- #contact .formBox .itemWrap { padding: 20px 0 }
- #contact .formBox .itemWrap label { display: block }
- #contact .formBox .itemWrap label p {
- width: 100%;
- padding: 6px 0;
- display: block
- }
- #contact .formBox .itemWrap label p .required {
- top: 10px;
- right: 0
- }
- #contact .formBox .itemWrap input { width: 100% }
- #contact .formBox .itemWrap textarea { width: 100% }
- #contact .formBox .itemWrap em { padding: 0 }
- #contact .formBox .fonmBtn { width: 300px }
- }
「ロゴとグローバルナビの設置【PC】」の部分でもお話しした疑似要素を使って「必須」という文字を表記います。グローバルメニューの部分では区切り線を表示しましたが今回は文字列を表記しています。
疑似要素はいろんな場面で使えるのでぜひ覚えておいてください。
フォーム部分はちょっとした細かいデザインも必要になってきますのでいくつか紹介します。まずは記入欄ですが、デモサイトではinputタグとtextareaタグを共に文字サイズを「1.6rem」と設定しています。
この文字サイズであれば問題ないのですが、文字のサイズが小さければスマホで操作する時に自動でズームがかかってしまいます。
みなさんもスマホでフォームの操作をする際に文字の記入や数値を選択しようとして、通常の画面から少しズームしてしまったという経験はないでしょうか?僕はたまにそういうフォームに出会います。
そういうフォームは記入が終了してもズームしたままなのでピンチアウトなどをおこなって通常の画面サイズに戻します。この操作を知らない方もおられるので出来るだけズームは起こさないようにしましょう。
あとはスマホのデザインを整えていてもiPhoneなどではinputタグなどを独自のデザインに変更されてしまいます。特にinputタグをボタンとして使用する際は「border」「background」「border-radius」の設定は記述するようにしましょう。
そしてもうひとつ、一番最初に紹介した共通デザインにも記述していますが「-webkit-appearance: none」の指定もおこなう必要があります。
次に確認ページの確認をします。このコードはconfirm.htmlに記述していきます。
confirm.html
- <section id="contact">
- <div class="imageWrap"></div>
- <div class="inner" id="contactInner">
- ~「.title」の記述省略~
- ~「.txt」の記述省略~
- <div class="formBox">
- <p class="confirmTxt">下記の項目をご確認の上、送信してください。</p>
- <div class="confirmBox">
- <table>
- {loop:$params}
- <tr>
- <th>{$params[].key} </th>
- <td>{$params[].value.nl2br} </td>
- </tr>
- {/loop:$params}
- </table>
- </div>
- <div class="btnWrap">
- <form method="post" action="./#contactInner">
- {$hiddens}
- <input type="hidden" name="page_name" value="input">
- <input type="submit" value="入力画面に戻る">
- </form>
- <form method="post" action="./#contactInner">
- {$hiddens}
- <input type="hidden" name="page_name" value="finish">
- <input type="submit" value="送信する">
- </form>
- </div>
- </div>
- </div>
- </section>
input.htmlに比べればわかりやすですかね(笑)。こちらもひとつずつ確認していきましょう。記入してもらった値はtableレイアウトで表示しています。
「{loop:$params}~{/loop:$params}」を記述すると記入した項目を繰り返して出力できます。thタグには「{$params[].key}」として項目名を、tdタグには「{$params[].value.nl2br}」として記入して頂いた値を表示します。
形としては記入して頂いた情報を一覧で表示し、それで間違いがなければ「送信する」をクリック、書き直したい場合は「入力画面に戻る」をクリックするというものです。
なのでtableタグの下には「type=”submit”」のinputタグを2つ表示する事になります。ここもaction属性に「./#contactInner」を記述してページ内リンクを利用します。
次は確認ページのデザインを整えていきましょう。
style.css
- /* comfirm */
- #contact .formBox .confirmTxt {
- font-size: 1.6rem;
- letter-spacing: 0.09em
- }
- #contact .formBox .confirmBox { margin-top: 10px }
- #contact .formBox .confirmBox table {
- width: 900px;
- border: 1px solid #c1c1c1
- }
- #contact .formBox .confirmBox th,
- #contact .formBox .confirmBox td {
- letter-spacing: 0.09em;
- text-align: left;
- padding: 10px;
- border: 1px solid #c1c1c1
- }
- #contact .formBox .confirmBox th {
- width: 200px;
- background: #f0f0f0
- }
- #contact .formBox .btnWrap {
- font-size: 0;
- text-align: center;
- margin-top: 20px
- }
- #contact .formBox .btnWrap form {
- width: 300px;
- vertical-align: middle;
- display: inline-block
- }
- #contact .formBox .btnWrap form + form { margin-left: 40px }
- #contact .formBox .btnWrap form:nth-child(1) input[type=submit] {
- width: 100%;
- height: 60px;
- font-size: 1.6rem;
- font-weight: 600;
- font-family: inherit;
- letter-spacing: 0.09em;
- line-height: 60px;
- vertical-align: middle;
- border: none;
- background: #c1c1c1;
- position: relative;
- text-decoration: none;
- display: block
- }
- #contact .formBox .btnWrap form:nth-child(2) input[type=submit] {
- width: 100%;
- color: #fff;
- font-size: 1.6rem;
- font-weight: 600;
- font-family: inherit;
- letter-spacing: 0.09em;
- line-height: 60px;
- border: none;
- background: #e21412;
- position: relative;
- text-decoration: none;
- display: block
- }
- @media screen and (max-width: 768px) {
- #contact .formBox .confirmBox table {
- width: 100%;
- border-bottom: none
- }
- #contact .formBox .confirmBox th,
- #contact .formBox .confirmBox td {
- width: 100%;
- border: none;
- border-bottom: 1px solid #c1c1c1;
- display: block
- }
- #contact .formBox .btnWrap form { width: 100% }
- #contact .formBox .btnWrap form + form {
- margin-top: 10px;
- margin-left: 0
- }
- #contact .formBox .btnWrap form:nth-child(1) input[type=submit],
- #contact .formBox .btnWrap form:nth-child(2) input[type=submit] {
- width: 300px;
- margin: 0 auto
- }
- }
tableのデザインが出てきましたけどそんなに難しくないですね。thタグとtdタグを横並びに表示していますけど、スマホ表示の時にはthタグもtdタグも1行ずつ表示しています。以前やったdlタグと同じ形です。
フォーム関連でもうひとつ言っておくと、inputタグやtextareaタグは共通デザインで指定した「font-family」が適応されなかったりします。
なのでデモサイトでは「type=”submit”」のinputタグに対しては「font-family:inherit;」の指定を付け加えています。記入欄はそのままにしているので文字の種類を合わせたい方はここにも設定を追加してみてください。
残りの完了ページ(finish.html)とエラーページ(error.html)は形がほぼほぼ同じなのでまとめて見ていきます。
finish.html
- <section id="contact">
- <div class="imageWrap"></div>
- <div class="inner" id="contactInner">
- ~「.title」の記述省略~
- ~「.txt」の記述省略~
- <div class="formBox">
- <h3 class="finishTitle">お問い合わせありがとうございます。</h3>
- <p>お問い合わせ内容を確認の後、2営業日以内にご連絡させて頂きます。<br>連絡がない場合はメールが届いていない恐れがありますのでお手数ですがお電話にてご連絡ください。</p>
- </div>
- </div>
- </section>
完了ページというのはフォーム送信が完了した後に「お問い合わせありがとうございます」などのメッセージを添えて表示されるページです。
今回は記入欄が3つしかありませんが、ユーザーが手間をかけてわざわざ送ってくれたメッセージです。ここでは感謝の気持ちを表し、「送信が完了した」という事をしっかりと伝えましょう。
error.html
- <section id="contact">
- <div class="imageWrap"></div>
- <div class="inner" id="contactInner">
- ~「.title」の記述省略~
- ~「.txt」の記述省略~
- <div class="formBox">
- <h3 class="errorTitle">エラーが発生しました</h3>
- <p>お手数をおかけしますが、再度、お問い合わせフォームからご連絡頂くか、<br>「06-○○○○-○○○○」へ直接ご連絡ください。(営業時間 : 10:00 ~ 23:00)</p>
- <div class="errorBtn">
- <a href="./">お問い合わせフォームへ戻る</a>
- </div>
- </div>
- </div>
- </section>
個人的にはTransmitMailを使っていてエラーは出た事がないんですが、もしもの時のためにこのページも用意しておきましょう。
何らかの不具合によってフォームシステムがうまく機能しない時にこのページに遷移するんですが、その場合、「もう一度試して頂くか、お電話でご連絡ください」と記入があれば良いかと思います。
Webの操作に慣れないユーザーさんであれば、「頑張って記入したのに、もうエエわっ!」って怒ってサイトを離れてしまう事もあるのでアフターフォローも大切です。
いよいよ最後の完了ページとエラーページのデザイン調整です。下記のコードをコピペしてください。
style.css
- /* finish & error */
- #contact .formBox h3 {
- font-size: 2rem;
- letter-spacing: 0.09em;
- text-align: center;
- margin-bottom: 40px
- }
- #contact .formBox h3.finishTitle,
- #contact .formBox h3.errorTitle {
- color: #e21412
- }
- #contact .formBox h3.errorTitle + p,
- #contact .formBox h3.finishTitle + p {
- font-size: 1.6rem;
- letter-spacing: 0.09em;
- text-align: center
- }
- #contact .formBox p + p { margin-top: 10px }
- #contact .formBox .errorBtn {
- width: 300px;
- text-align: center;
- margin: 60px auto 0
- }
- #contact .formBox .errorBtn a {
- color: #fff;
- font-size: 1.6rem;
- letter-spacing: 0.09em;
- line-height: 60px;
- background: #e21412;
- position: relative;
- display: block;
- }
- @media screen and (max-width: 768px) {
- #contact .formBox h3.errorTitle + p br,
- #contact .formBox h3.finishTitle + p br {
- display: none
- }
- }
はい、という訳でここまででお問い合わせページも完成です。ちなみにフォームシステムはサーバーへアップロードしないと動作しないので注意してください。
input.htmlやconfirm.htmlのファイルを先ほどのように、直接、ブラウザへドラッグ&ドロップしてローカルでチェックしても「{$お名前}」などの記述がそのまま表示されてしまいます。
これはデザイン崩れじゃないので安心してください(笑)。フォームの動作確認をおこなう時はご自身のサーバーへファイルをアップロードしてからおこなってください。
ではこのページで追加したコードをひと通り確認しておきます。
input.html
- <!DOCTYPE html>
- <html>
- <head>
- ~head内の記述省略~
- </head>
- <body>
- <header>
- ~headerの記述省略~
- </header>
- <main>
- <section id="contact">
- <div class="imageWrap"></div>
- <div class="inner" id="contactInner">
- <div class="title">
- <h2>お問い合わせ</h2>
- </div>
- <div class="txt">
- <p>いやしのカレー サンプルへのお問い合わせや団体様のご予約などお気軽にご連絡ください。<br>お問い合わせ内容を確認の後、改めてご連絡させて頂きます。(定休日 : 水曜日)<br>お急ぎの場合はお電話にて「06-○○○○-○○○○」へ直接ご連絡ください。(営業時間 : 10:00 ~ 23:00)</p>
- </div>
- <div class="formBox">
- <form method="post" action="./#contactInner" enctype="multipart/form-data">
- <input type="hidden" name="csrf_token" value="{$csrf_token}">
- <div class="itemWrap">
- <label><p>お名前<i class="required"></i></p><input type="text" name="お名前" value="{$お名前}"></label>
- <input type="hidden" name="required[]" value="お名前">
- {if:$required.お名前}<em data-rule="required">※{$required.お名前}</em>{/if:$required.お名前}
- </div>
- <div class="itemWrap">
- <label><p>メールアドレス<i class="required"></i></p><input type="text" name="メールアドレス" value="{$メールアドレス}"></label>
- <input type="hidden" name="required[]" value="メールアドレス">
- {if:$required.メールアドレス}<em data-rule="required">※{$required.メールアドレス}</em>{/if:$required.メールアドレス}
- <input type="hidden" name="email[]" value="メールアドレス">
- {if:$email.メールアドレス}<em data-rule="email">※{$email.メールアドレス}</em>{/if:$email.メールアドレス}
- </div>
- <div class="itemWrap">
- <label><p>お問い合わせ内容<i class="required"></i></p><textarea name="お問い合わせ内容">{$お問い合わせ内容}</textarea></label>
- <input type="hidden" name="required[]" value="お問い合わせ内容">
- {if:$required.お問い合わせ内容}<em data-rule="required">※{$required.お問い合わせ内容}</em>{/if:$required.お問い合わせ内容}
- </div>
- <div class="fonmBtn">
- <input type="submit" value="確認する">
- </div>
- </form>
- </div>
- </div>
- </section>
- </main>
- <footer>
- ~footerの記述省略~
- </footer>
- ~JSファイルの読み込み省略~
- </body>
- </html>
confirm.html
- <!DOCTYPE html>
- <html>
- <head>
- ~head内の記述省略~
- </head>
- <body>
- <header>
- ~headerの記述省略~
- </header>
- <main>
- <section id="contact">
- <div class="imageWrap"></div>
- <div class="inner" id="contactInner">
- <div class="title">
- <h2>お問い合わせ</h2>
- </div>
- <div class="txt">
- <p>いやしのカレー サンプルへのお問い合わせや団体様のご予約などお気軽にご連絡ください。<br>お問い合わせ内容を確認の後、改めてご連絡させて頂きます。(定休日 : 水曜日)<br>お急ぎの場合はお電話にて「06-○○○○-○○○○」へ直接ご連絡ください。(営業時間 : 10:00 ~ 23:00)</p>
- </div>
- <div class="formBox">
- <p class="confirmTxt">下記の項目をご確認の上、送信してください。</p>
- <div class="confirmBox">
- <table>
- {loop:$params}
- <tr>
- <th>{$params[].key} </th>
- <td>{$params[].value.nl2br} </td>
- </tr>
- {/loop:$params}
- </table>
- </div>
- <div class="btnWrap">
- <form method="post" action="./#contactInner">
- {$hiddens}
- <input type="hidden" name="page_name" value="input">
- <input type="submit" value="入力画面に戻る">
- </form>
- <form method="post" action="./#contactInner">
- {$hiddens}
- <input type="hidden" name="page_name" value="finish">
- <input type="submit" value="送信する">
- </form>
- </div>
- </div>
- </div>
- </section>
- </main>
- <footer>
- ~footerの記述省略~
- </footer>
- ~JSファイルの読み込み省略~
- </body>
- </html>
finish.html
- <!DOCTYPE html>
- <html>
- <head>
- ~head内の記述省略~
- </head>
- <body>
- <header>
- ~headerの記述省略~
- </header>
- <main>
- <section id="contact">
- <div class="imageWrap"></div>
- <div class="inner" id="contactInner">
- <div class="title">
- <h2>お問い合わせ</h2>
- </div>
- <div class="txt">
- <p>いやしのカレー サンプルへのお問い合わせや団体様のご予約などお気軽にご連絡ください。<br>お問い合わせ内容を確認の後、改めてご連絡させて頂きます。(定休日 : 水曜日)<br>お急ぎの場合はお電話にて「06-○○○○-○○○○」へ直接ご連絡ください。(営業時間 : 10:00 ~ 23:00)</p>
- </div>
- <div class="formBox">
- <h3 class="finishTitle">お問い合わせありがとうございます。</h3>
- <p>お問い合わせ内容を確認の後、2営業日以内にご連絡させて頂きます。<br>連絡がない場合はメールが届いていない恐れがありますのでお手数ですがお電話にてご連絡ください。</p>
- </div>
- </div>
- </section>
- </main>
- <footer>
- ~footerの記述省略~
- </footer>
- ~JSファイルの読み込み省略~
- </body>
- </html>
finish.html
- <!DOCTYPE html>
- <html>
- <head>
- ~head内の記述省略~
- </head>
- <body>
- <header>
- ~headerの記述省略~
- </header>
- <main>
- <section id="contact">
- <div class="imageWrap"></div>
- <div class="inner" id="contactInner">
- <div class="title">
- <h2>お問い合わせ</h2>
- </div>
- <div class="txt">
- <p>いやしのカレー サンプルへのお問い合わせや団体様のご予約などお気軽にご連絡ください。<br>お問い合わせ内容を確認の後、改めてご連絡させて頂きます。(定休日 : 水曜日)<br>お急ぎの場合はお電話にて「06-○○○○-○○○○」へ直接ご連絡ください。(営業時間 : 10:00 ~ 23:00)</p>
- </div>
- <div class="formBox">
- <h3 class="errorTitle">エラーが発生しました</h3>
- <p>お手数をおかけしますが、再度、お問い合わせフォームからご連絡頂くか、<br>「06-○○○○-○○○○」へ直接ご連絡ください。(営業時間 : 10:00 ~ 23:00)</p>
- <div class="errorBtn">
- <a href="./">お問い合わせフォームへ戻る</a>
- </div>
- </div>
- </div>
- </section>
- </main>
- <footer>
- ~footerの記述省略~
- </footer>
- ~JSファイルの読み込み省略~
- </body>
- </html>
style.css
- ~共通デザイン省略~
- ~headerデザイン省略~
- ~navデザイン省略~
- ~スライダーデザイン省略~
- ~お知らせデザイン省略~
- ~メニューデザイン省略~
- ~お店情報デザイン省略~
- ~footerデザイン省略~
- ~お問い合わせ共通デザイン省略~
- /* input */
- #contact .formBox { margin-top: 60px }
- #contact .formBox .itemWrap {
- width: 100%;
- padding: 20px 10px;
- border-bottom: 1px dashed #c1c1c1
- }
- #contact .formBox .itemWrap:first-child { border-top: 1px dashed #c1c1c1 }
- #contact .formBox .itemWrap label { display: table }
- #contact .formBox .itemWrap label p {
- width: 240px;
- font-size: 1.6rem;
- letter-spacing: 0.09em;
- vertical-align: top;
- text-align: left;
- padding: 13px 0 0 0;
- display: table-cell;
- position: relative
- }
- #contact .formBox .itemWrap label p .required {
- color: #e21412;
- font-size: 1.3rem;
- letter-spacing: 0.09em;
- font-style: normal;
- position: absolute;
- top: 18px;
- right: 20px
- }
- #contact .formBox .itemWrap label p .required::after { content: "必須" }
- #contact .formBox .itemWrap input {
- width: 620px;
- height: 50px;
- font-size: 1.6rem;
- vertical-align: middle;
- padding: 0 10px;
- border: 2px solid #c1c1c1;
- transition: all 0.2s
- }
- #contact .formBox .itemWrap input:hover,
- #contact .formBox .itemWrap input:active {
- border: 2px solid #1f1f1f
- }
- #contact .formBox .itemWrap textarea {
- width: 620px;
- height: 120px;
- font-size: 1.6rem;
- vertical-align: middle;
- padding: 10px;
- border: 2px solid #c1c1c1;
- transition: all 0.2s
- }
- #contact .formBox .itemWrap textarea:hover,
- #contact .formBox .itemWrap textarea:active {
- border: 2px solid #1f1f1f
- }
- #contact .formBox .itemWrap em {
- color: #e21412;
- font-size: 1.3rem;
- font-style: normal;
- letter-spacing: 0.09em;
- text-align: left;
- padding: 0 10px 0 240px;
- margin-top: 10px;
- display: block
- }
- #contact .formBox .itemWrap em + em { margin-top: 0 }
- #contact .formBox .fonmBtn {
- width: 360px;
- text-align: center;
- margin: 20px auto 0
- }
- #contact .formBox .fonmBtn input {
- width: 100%;
- color: #fff;
- font-size: 1.6rem;
- font-weight: 600;
- font-family: inherit;
- letter-spacing: 0.09em;
- line-height: 60px;
- border: none;
- background: #e21412;
- position: relative;
- display: block
- }
- @media screen and (max-width: 768px) {
- #contact .formBox { margin-top: 40px }
- #contact .formBox .itemWrap { padding: 20px 0 }
- #contact .formBox .itemWrap label { display: block }
- #contact .formBox .itemWrap label p {
- width: 100%;
- padding: 6px 0;
- display: block
- }
- #contact .formBox .itemWrap label p .required {
- top: 10px;
- right: 0
- }
- #contact .formBox .itemWrap input { width: 100% }
- #contact .formBox .itemWrap textarea { width: 100% }
- #contact .formBox .itemWrap em { padding: 0 }
- #contact .formBox .fonmBtn { width: 300px }
- }
- /* comfirm */
- #contact .formBox .confirmTxt {
- font-size: 1.6rem;
- letter-spacing: 0.09em
- }
- #contact .formBox .confirmBox { margin-top: 10px }
- #contact .formBox .confirmBox table {
- width: 900px;
- border: 1px solid #c1c1c1
- }
- #contact .formBox .confirmBox th,
- #contact .formBox .confirmBox td {
- letter-spacing: 0.09em;
- text-align: left;
- padding: 10px;
- border: 1px solid #c1c1c1
- }
- #contact .formBox .confirmBox th {
- width: 200px;
- background: #f0f0f0
- }
- #contact .formBox .btnWrap {
- font-size: 0;
- text-align: center;
- margin-top: 20px
- }
- #contact .formBox .btnWrap form {
- width: 300px;
- vertical-align: middle;
- display: inline-block
- }
- #contact .formBox .btnWrap form + form { margin-left: 40px }
- #contact .formBox .btnWrap form:nth-child(1) input[type=submit] {
- width: 100%;
- height: 60px;
- font-size: 1.6rem;
- font-weight: 600;
- font-family: inherit;
- letter-spacing: 0.09em;
- line-height: 60px;
- vertical-align: middle;
- border: none;
- background: #c1c1c1;
- position: relative;
- text-decoration: none;
- display: block
- }
- #contact .formBox .btnWrap form:nth-child(2) input[type=submit] {
- width: 100%;
- color: #fff;
- font-size: 1.6rem;
- font-weight: 600;
- font-family: inherit;
- letter-spacing: 0.09em;
- line-height: 60px;
- border: none;
- background: #e21412;
- position: relative;
- text-decoration: none;
- display: block
- }
- @media screen and (max-width: 768px) {
- #contact .formBox .confirmBox table {
- width: 100%;
- border-bottom: none
- }
- #contact .formBox .confirmBox th,
- #contact .formBox .confirmBox td {
- width: 100%;
- border: none;
- border-bottom: 1px solid #c1c1c1;
- display: block
- }
- #contact .formBox .btnWrap form { width: 100% }
- #contact .formBox .btnWrap form + form {
- margin-top: 10px;
- margin-left: 0
- }
- #contact .formBox .btnWrap form:nth-child(1) input[type=submit],
- #contact .formBox .btnWrap form:nth-child(2) input[type=submit] {
- width: 300px;
- margin: 0 auto
- }
- }
- /* finish & error */
- #contact .formBox h3 {
- font-size: 2rem;
- letter-spacing: 0.09em;
- text-align: center;
- margin-bottom: 40px
- }
- #contact .formBox h3.finishTitle,
- #contact .formBox h3.errorTitle {
- color: #e21412
- }
- #contact .formBox h3.errorTitle + p,
- #contact .formBox h3.finishTitle + p {
- font-size: 1.6rem;
- letter-spacing: 0.09em;
- text-align: center
- }
- #contact .formBox p + p { margin-top: 10px }
- #contact .formBox .errorBtn {
- width: 300px;
- text-align: center;
- margin: 60px auto 0
- }
- #contact .formBox .errorBtn a {
- color: #fff;
- font-size: 1.6rem;
- letter-spacing: 0.09em;
- line-height: 60px;
- background: #e21412;
- position: relative;
- display: block;
- }
- @media screen and (max-width: 768px) {
- #contact .formBox h3.errorTitle + p br,
- #contact .formBox h3.finishTitle + p br {
- display: none
- }
- }
お疲れ様でした~、これで最初から最後までホームページ作り上げましたね。
このホームページの制作難易度は5段階のレベルで分けるなら「★★☆☆☆」、レベル2くらいかな(笑)。フォームはちょっと複雑ですけど全体的には簡単なホームページです。
かなりシンプルな形なので、情報だけ変えてこのまま使って頂いても良いですし、僕としてはこれをベースにしていろいろとご自身でデザインを追加して遊んでもらえたらなぁ、と思います。
僕もまだまだ知らない事だらけです。ホームページは作りながらちょっとずつ知識を積み上げていくカンジなので、そのためにも遊び心を忘れずにホームページ作りを楽しんでください。
冷凍機械責任者
消防設備士
サーバー・ドメイン
SEO
CSS
HTML
グルメ
電気主任技術者
危険物取扱者
ホームページの簡単な作り方以外にも
お得な情報や日常を紹介するブログも是非どうぞ!Webに関連するレンタルサーバーなどの特徴・料金比較や、
個人的に挑戦している資格取得についての勉強法やグルメなどを紹介しています。