複数行入力できるテキストエリアを作る方法
複数行入力できるテキストエリアを作る方法を紹介します。このサンプルでは、HTMLのtextarea要素を使用し、改行を含む文章を入力できるフォームを作成します。一行しか入力できないテキストボックスとは異なり、長文や複数段落の文章を入力できるため、お問い合わせ内容やコメント、備考欄などさまざまな入力フォームへ利用できます。
お問い合わせ画面、会員サイトのプロフィール編集、ECサイトの注文時に利用する備考欄、管理画面のメモ入力など、まとまった文章を入力する場面に適しています。テキストエリアは初期状態から十分な高さを確保しており、改行しながら文章を入力できるため、入力内容を確認しやすく快適に利用できます。また、クリック時には枠線の色が変わり、現在入力している場所も分かりやすく表示されます。
タイトル、説明文、ラベル、プレースホルダーはHTMLから変更でき、CSSでは横幅、高さ、余白、文字サイズ、背景色、枠線、角丸などを用途に合わせて調整できます。レスポンシブにも対応しているため、スマートフォン・タブレット・PCで利用しやすく、初心者でも導入しやすい複数行入力フォームのサンプルとして活用できます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
改行しながら複数行の文章を入力できます。
テキストエリアへ自由に文章を入力してください。改行を含む複数行の文章を入力でき、右下をドラッグすると高さを変更できます。
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- スマートフォン対応 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>複数行入力できるテキストエリア</title>
<!-- CSSファイル -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- 入力フォーム全体 -->
<div class="multiline-textarea_wrap">
<!-- タイトル -->
<div class="multiline-textarea_title">
お問い合わせ内容
</div>
<!-- 説明文 -->
<p class="multiline-textarea_text">
改行しながら複数行の文章を入力できます。
</p>
<!-- 入力項目 -->
<div class="multiline-textarea_group">
<!-- ラベル -->
<label
class="multiline-textarea_label"
for="message">
内容
</label>
<!-- 複数行入力できるテキストエリア -->
<textarea
class="multiline-textarea_input"
id="message"
name="message"
placeholder="お問い合わせ内容を入力してください。"></textarea>
</div>
</div>
</body>
</html>
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
ファイル構成と設置方法
このサンプルはHTMLとCSSの2ファイルで構成されています。HTMLではtextarea要素を使用して、改行を含む複数行の文章を入力できるテキストエリアを作成します。CSSではフォーム全体の横幅や余白、テキストエリアの高さ、枠線、角丸、フォーカス時の表示などを設定します。
sample/
├── index.html
└── style.css
各ファイルの役割
index.htmlは入力フォーム全体を構成するファイルです。タイトル、説明文、ラベル、プレースホルダーを変更できます。textarea要素を使用しているため、入力中にEnterキーで改行しながら複数行の文章を入力できます。
style.cssはフォーム全体とテキストエリアのデザインを設定するファイルです。横幅、余白、背景色、文字色、枠線、角丸、入力欄の高さ、フォーカス時の色や影を変更できます。
設置方法・使い方
sampleフォルダへindex.htmlとstyle.cssを配置します。2つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。表示されたテキストエリアへ文章を入力すると、改行を含む複数行の内容を入力できます。右下を上下へドラッグすると、入力欄の高さを変更できます。
カスタマイズできる内容
index.htmlでは「お問い合わせ内容」のタイトル、説明文、「内容」のラベル、プレースホルダーの文章を変更できます。用途に合わせて、備考欄、コメント欄、メモ欄などの表示へ変更できます。
style.cssではフォーム全体の横幅、背景色、余白、角丸、テキストエリアの高さ、入力文字の行間、枠線色、フォーカス時の色や影を変更できます。resize:vertical;を変更すると、利用者による高さ変更の許可方法も調整できます。
数値調整
style.css
max-width:700px;
フォーム全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。
margin:40px auto;
フォーム全体の上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。
padding:32px;
フォーム全体の内側余白です。値を大きくすると内容と枠線の間隔が広がり、小さくすると詰まった表示になります。
border-radius:18px;
フォーム全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
font-size:22px;
タイトルの文字サイズです。値を大きくすると文字が大きくなり、小さくすると控えめになります。
margin:0 0 24px;
説明文の下側余白です。24pxを大きくするとテキストエリアとの間隔が広がり、小さくすると狭くなります。
gap:10px;
ラベルとテキストエリアの間隔です。値を大きくすると間隔が広がり、小さくすると近くなります。
min-height:180px;
テキストエリアの初期高さです。値を大きくすると最初から高く表示され、小さくすると低くなります。
padding:14px 16px;
テキストエリアの内側余白です。上下の14pxを大きくすると入力欄が高くなり、左右の16pxを大きくすると文字と枠線の間隔が広がります。
border:2px solid #d1d5db;
テキストエリアの枠線です。2pxを大きくすると枠線が太くなり、小さくすると細くなります。
border-radius:10px;
テキストエリアの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
line-height:1.7;
入力文字の行間です。値を大きくすると行間が広がり、小さくすると詰まった表示になります。
transition:0.3s;
枠線と影が切り替わる時間です。0.3秒で変化します。値を大きくするとゆっくり、小さくすると速く切り替わります。
box-shadow:0 0 0 4px ...
テキストエリアをクリックしたときに表示する外側の強調範囲です。4pxを大きくすると影が広がり、小さくすると控えめになります。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:700pxにより、画面幅に合わせてフォーム全体が縮小されます。また、640px以下ではpadding:24px 18px;へ変更して左右の余白を抑えているため、スマートフォン・タブレット・PCで利用できます。
コメント