CSS - フォーム:初級者のための包括ガイド

こんにちは、Webデザイナー志望の方々!今日は、CSSフォームの素晴らしい世界に飛び込んでみましょう。あなたの近所の親切なコンピュータ教師として、この旅を案内するのを楽しみにしています。信じてください、このチュートリアルの終わりまでに、プロのようにフォームをスタイル化するスキルを身につけることでしょう!

CSS - Forms

CSS フォーム - フォントとテキストのスタイル

基本から始めましょう。私たちは不同的な場面に応じて服装を変えるように、フォーム要素にも異なるフォントやテキストスタイルを与えることができます。以下のようにします:

input[type="text"] {
font-family: Arial, sans-serif;
font-size: 16px;
color: #333;
}

このコードは、ブラウザにテキスト入力に対してArialフォントを使用し、フォントサイズを16ピクセルに設定し、テキストの色を濃い灰色(#333)にするよう指示します。まるでフォームに読みやすくてお洒落な服装を与えるようなものです!

CSS フォーム - 枠と背景のスタイル

次に、フォーム要素に少しの風情を加えましょう:

input[type="text"] {
border: 2px solid #4CAF50;
border-radius: 4px;
background-color: #f8f8f8;
}

このコードは、テキスト入力に緑の枠、やや丸みを帯びた角、以及び淡い灰色の背景を与えます。まるでフォーム要素に美しいフレームを装うようなものです!

CSS フォーム - パディングとマージン

次に、フォーム要素に少しの余裕を与えましょう:

input[type="text"] {
padding: 10px;
margin-bottom: 15px;
}

これは、入力内側にスペース(パディング)を追加し、その下にスペース(マージン)を設定します。まるでフォーム要素に個人的なスペースバブルを与えるようなものです!

CSS フォーム - フォーカススタイル

ユーザーが入力をクリックすると、それを強調したいものです。以下のようにします:

input[type="text"]:focus {
outline: none;
box-shadow: 0 0 5px rgba(81, 203, 238, 1);
}

このコードは、デフォルトのアウトラインを削除し、入力がフォーカスされたときに柔らかい青い光を追加します。まるでユーザーに「ここを見て!」とアピールするようなものです。

CSS フォーム - ボタンのスタイル

ボタンはフォームの行動的英雄です。それをその役割に見合った样子にしましょう:

button {
background-color: #4CAF50;
color: white;
padding: 14px 20px;
border: none;
cursor: pointer;
}

button:hover {
background-color: #45a049;
}

これは、緑のボタンを作成し、ホバー時に色が濃くなります。まるでボタンにクールなスーパーヒーローのコスチュームを与えるようなものです!

CSS フォーム - チェックボックスとラジオボタンのスタイル

チェックボックスとラジオボタンのスタイルを付けるのは少し難しいことがあります。以下は簡単な始め方です:

input[type="checkbox"], input[type="radio"] {
width: 20px;
height: 20px;
}

これは、チェックボックスとラジオボタンを少し大きくし、クリックしやすくします。まるで成長スパートを与えるようなものです!

CSS フォーム - フォームレイアウト

次に、フォーム要素を整理整頓しましょう:

form {
width: 300px;
margin: 0 auto;
}

label {
display: block;
margin-bottom: 5px;
}

これは、フォームを中央に配置し、各ラベルを独立した行に配置します。まるで部屋を片付けるようなものです - すべてに場所があります!

すべてを合わせてみましょう:

<form>
<label for="name">名前:</label>
<input type="text" id="name" name="name">

<label for="email">メール:</label>
<input type="email" id="email" name="email">

<button type="submit">送信</button>
</form>
form {
width: 300px;
margin: 0 auto;
}

label {
display: block;
margin-bottom: 5px;
}

input[type="text"], input[type="email"] {
width: 100%;
padding: 10px;
margin-bottom: 15px;
border: 2px solid #4CAF50;
border-radius: 4px;
background-color: #f8f8f8;
}

button {
background-color: #4CAF50;
color: white;
padding: 14px 20px;
border: none;
cursor: pointer;
width: 100%;
}

button:hover {
background-color: #45a049;
}

これで、シンプルなスタイルを施されたフォームが作成されます。まるでパズルを組み立てるようなものです - すべてのピースが完璧に嵌まります!

CSS フォーム - Box-sizing

プロのヒント:box-sizing: border-boxを使用して、生活をより簡単にしましょう:

* {
box-sizing: border-box;
}

これは、パディングとボーダーが要素の総幅と高さに含まれるようにします。まるで魔法のように - 予期せぬオーバーフローがなくなります!

CSS フォーム - FieldsetとLegend

FieldsetとLegendを使用すると、フォームを整理整頓できます:

fieldset {
border: 1px solid #ddd;
padding: 20px;
margin-bottom: 20px;
}

legend {
font-weight: bold;
padding: 0 10px;
}

これは、関連するフォーム要素に美しい枠を追加し、タイトルを付けます。まるでフォームの物語に章节を作るようなものです!

CSS フォーム - 全幅入力

時には、入力が利用可能なすべてのスペースを占めたいことがあります:

input[type="text"] {
width: 100%;
}

これは、入力がコンテナいっぱいに伸びるようにします。まるで入力に大きな伸びを与えるようなものです!

CSS フォーム - 色の入力

入力に少し色を加えましょう:

input[type="text"] {
background-color: #e6f3ff;
color: #00366d;
}

これは、入力に淡い青い背景と濃い青いテキストを与えます。まるでフォームにクールな色 schemeを描くようなものです!

CSS フォーム - 入力に画像を追加

入力に画像を追加することもできます:

input[type="text"] {
background-image: url('search-icon.png');
background-position: 10px 10px;
background-repeat: no-repeat;
padding-left: 40px;
}

これは、入力の左側に検索アイコンを追加します。まるで入力に小さなアバターを与えるようなものです!

CSS フォーム - アニメーションの入力

入力に少しの動きを加えましょう:

input[type="text"] {
transition: all 0.3s ease-in-out;
}

input[type="text"]:focus {
transform: scale(1.05);
}

これは、入力がフォーカスされたときに少し大きくなるようにします。まるで入力に小さなダンスムーブを与えるようなものです!

CSS フォーム - テキストエリアのスタイル

テキストエリアを忘れないでください:

textarea {
width: 100%;
height: 150px;
padding: 12px 20px;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
resize: vertical;
}

これは、テキストエリアをスタイル化し、垂直方向にリサイズ可能にします。まるでユーザーに伸びるノートパッドを与えるようなものです!

CSS フォーム - ドロップダウンメニューのスタイル

ドロップダウンメニューにも愛情を注ぎましょう:

select {
width: 100%;
padding: 16px 20px;
border: none;
border-radius: 4px;
background-color: #f1f1f1;
}

これは、きれいなドロップダウンメニューを作成します。まるでユーザーにスムーズな自動販売機のような選択肢を提供するようなものです!

应答型フォームレイアウト

最後に、フォームを応答型にしましょう:

@media screen and (max-width: 600px) {
form {
width: 100%;
}
}

これは、小さなスクリーンではフォームが全幅になるようにします。まるでフォームに変形の超能力を与えるようなものです!

そして、それで終わりです!CSSでフォームをスタイル化する方法を学びました。練習は完璧を生むので、これらのスタイルを試してみてください。ハッピーコーディング!

Credits: Image by storyset