【お問い合わせ】No.1 input・textareaをカスタマイズしよう!
Share
こんなことを説明しています!
- input・textareaのカスタマイズ方法
- tableはなるべく使わずにdivで作成すると良い!
- カーソルが当たっているときはoutline: none;に!
- resizeもしっかり設定!
- 縦揃えの方法
解説動画
コードの解説
HTMLの記述
<div class="inner"> <h2 class="title">お問い合わせフォーム<br>No.1 input・textareaをカスタマイズしよう!</h2> <form action="" class="form"> <div class="row"> <div class="head">氏名</div> <div class="data"><input type="text" placeholder="ヤマダ タロウ"></div> </div> <div class="row"> <div class="head">メールアドレス</div> <div class="data"><input type="email" placeholder="info@example.com"></div> </div> <div class="row ai-start"> <div class="head">お問い合わせ内容</div> <div class="data"><textarea placeholder="こちらに具体的にご入力ください"></textarea></div> </div> </form> </div>
ポイント
- tableタグはデフォルトでの設定が多く扱いづらいので、divタグでtableと同じように作っていくと思い通りにcssを当てやすい!
CSSの記述
//====================== // レイアウトを整えるcss //====================== .inner { margin-top: 100px; width: 80%; margin: auto; } .title { font-size: 40px; font-weight: 700; line-height: 1.5; text-align: center; margin-bottom: 40px; } //====================== // 今回のテーマ //====================== .row { display: flex; align-items: center; margin-bottom: 40px; &.ai-start { align-items: start; .head { margin-top: 10px; } } } .head { width: 20%; font-size: 20px; } .data { width: 80%; } input[type=text], input[type=email], textarea { width: 100%; height: auto; padding: 12px 20px; font-size: 16px; line-height: 1.5; background: #f4f4f4; border: none; outline: none; //focus時の枠線を消しておく &:focus { //入力をしているとき outline: 1px solid #000; } &::placeholder { color: #9f9f9f; } } textarea { height: 120px; resize: vertical; //自分でサイズを変えられるように }
ポイント
- inputやtextareaはインラインブロック要素なので、個々に幅を指定する必要がある!
- 入力時のcssは &:focus { } で対応
▶︎ デフォルトの枠線は outlineで設定されている
▶︎ カスタマイズしたい場合は outline: none; に! - textarea のデフォルトは上下左右に枠幅を変えられるようになっているので縦幅のみ変えられるよう resize: vertical; を設定!
※ 動画内でフォーカス時のcssを &:focus { border: 1px solid #000 } で当てていますが、これだと1px外側に広がってしまうので、&:focus { outline: 1px solid #000 } で当てるのが良いかと思います!