CSSでスタック型フォームを作成する方法【サンプルコード付き】
スタック型フォームとは、ラベルや入力フィールドを縦方向に一列に積み重ねて配置したフォームのことです。視線を上から下へ自然に移動できるため可読性が高く、スマートフォンなど画面幅が狭いデバイスでも扱いやすいという大きなメリットがあります。
ここでは、CSSを使ってシンプルな会員登録用のスタック型フォームを作成する方法を紹介します。
サンプルコード
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 20px;
}
h1 {
text-align: center;
}
* {
box-sizing: border-box;
}
label {
font-size: 18px;
}
form {
padding: 16px;
max-width: 800px;
margin-left: 20%;
background-color: rgb(255, 254, 195);
}
input[type=text], input[type=password] {
width: 100%;
font-size: 20px;
padding: 15px;
margin: 5px 0 22px 0;
display: inline-block;
border: none;
background: #f1f1f1;
}
input[type=text]:focus, input[type=password]:focus {
background-color: #ddd;
outline: none;
}
hr {
border: 1px solid #f1f1f1;
margin-bottom: 25px;
}
.registerbtn {
background-color: #4CAF50;
color: white;
padding: 16px 20px;
margin: 8px 0;
border: none;
cursor: pointer;
width: 100%;
opacity: 0.9;
}
.registerbtn:hover {
opacity: 1;
}
a {
color: dodgerblue;
text-decoration: none;
}
.signin {
background-color: #f1f1f1;
text-align: center;
}
@media (max-width: 800px) {
form {
width: 100%;
margin-left: 0px;
}
}
</style>
</head>
<body>
<h1>スタックフォームの例</h1>
<form>
<label for="email"><b>メールアドレス</b></label>
<input type="text" placeholder="メールアドレスを入力" name="email" required>
<label for="psw"><b>パスワード</b></label>
<input type="password" placeholder="パスワードを入力" name="psw" required>
<label for="psw-repeat"><b>パスワード(確認)</b></label>
<input type="password" placeholder="パスワードを再入力" name="psw-repeat" required>
<hr>
<p>アカウントを作成すると、<a href="#">利用規約とプライバシーポリシー</a>に同意したものとみなされます。</p>
<button type="submit" class="registerbtn">登録する</button>
<div class="signin">
<p>すでにアカウントをお持ちですか? <a href="#">サインイン</a></p>
</div>
</form>
</body>
</html>
出力結果
上記のコードをブラウザで実行すると、次のようなスタック型フォームが表示されます。

ポイント解説
- width: 100% を input 要素に指定することで、入力欄がフォーム幅いっぱいに広がり、各要素が縦に積み重なるレイアウトになります。
- :focus 疑似クラスを使うことで、入力欄にフォーカスしたときの背景色を変え、現在入力中の場所がひと目でわかるようになり、操作性が向上します。
- @media クエリにより、画面幅が800px以下の場合はフォームが全幅表示に切り替わり、レスポンシブ対応を実現しています。
- box-sizing: border-box を全体に適用することで、padding や border を含めたサイズ計算になり、レイアウト崩れを防げます。
-
CSSを使ってクーポンを作成する方法【サンプルコード付き】
CSSを活用すれば、破線の枠やプロモーションコード、有効期限などを含んだ見栄えの良いクーポンデザインを、HTMLとCSSだけで簡単に作成できます。本記事では、実際に動作するサンプルコードを交えて、クーポンの実装方法をわかりやすく解説します。 クーポン作成のサンプルコード 以下のコードは、店舗名・商品画像・キャッチコピー・割引コード・有効期限を含むクーポンを作成するものです。破線のボーダー(dashed)を使うことで、切り取り線のある本物のクーポンらしい雰囲気を演出しています。 <!DOCTYPE html> <html> <head> <meta na
-
CSSで矢印を作成する方法!borderとrotateを組み合わせた4方向矢印の実装テクニック
CSSでは、画像やアイコンフォント、外部ライブラリに頼らなくても、border(境界線)とtransform: rotate()を組み合わせるだけで、上下左右どの方向の矢印でも簡単に作成できます。境界線でL字型の角を作り、それを回転させるのが基本的な考え方です。 サンプルコード <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>