デザインコード紹介

Chapter4 レイアウト

Flexboxレイアウト – フォームレイアウト

更新日:

Flexboxレイアウト - フォームレイアウトのWebデザイン画像

HTML

<label>
  <span class="title">お名前<span class="required">必須</span></span>
  <input type="text" name="name" required>
</label>

<label>
  <span class="title">メールアドレス<span class="required">必須</span></span>
  <input type="email" name="email" required>
</label>

<label>
  <span class="title">電話番号</span>
  <input type="tel" name="tel">
</label>

<label>
  <span class="title-textarea">お問い合わせ内容<span class="required">必須</span></span>
  <textarea type="textarea" name="contact" required></textarea>
</label>

CSS

label {
  display: flex;
  align-self: center;
}

label:not(:last-child) {
  margin-bottom: 20px;
}

.title {
  display: flex;
  justify-content: space-between;
  align-self: center;
  padding-right: 20px;
  width: 220px;
  font-weight: 700;
}

.title-textarea {
  display: flex;
  justify-content: space-between;
  align-self: flex-start;
  padding-top: 20px;
  padding-right: 20px;
  width: 220px;
  font-weight: 700;
}

.required {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1;
  background-color: #7fb2a1;
  border-radius: 10px;
}

input,
textarea {
  display: block;
  padding: 20px;
  flex: 1;
  background-color: #e5e5e5;
  border: 2px solid #5b8f8f;
  border-radius: 10px;
}

textarea {
  height: 200px;
}

アクセシビリティ対応

HTML – labelで括る場合

<label>
  <span class="title">お名前<span class="required">必須</span></span>
  <input type="text" name="name" required aria-required="true">
</label>

<label>
  <span class="title">メールアドレス<span class="required">必須</span></span>
  <input type="email" name="email" required aria-required="true">
</label>

<label>
  <span class="title">電話番号</span>
  <input type="tel" name="tel" aria-required="false">
</label>

<label>
  <span class="title-textarea">お問い合わせ内容<span class="required">必須</span></span>
  <textarea type="textarea" name="contact" required aria-required="true"></textarea>
</label>

HTML – labelで括らない場合

<div>
  <span id="form-name" class="title">お名前<span class="required">必須</span></span>
  <input type="text" name="name" required aria-required="true" aria-labelledby="form-name">
</div>

<div>
  <span id="form-email" class="title">メールアドレス<span class="required">必須</span></span>
  <input type="email" name="email" required aria-required="true" aria-labelledby="form-email">
</div>

<div>
  <span id="form-tel" class="title">電話番号</span>
  <input type="tel" name="tel" aria-required="false" aria-labelledby="form-tel">
</div>

<div>
  <span id="form-textarea" class="title-textarea">お問い合わせ内容<span class="required">必須</span></span>
  <textarea type="textarea" name="contact" required aria-required="true" aria-labelledby="form-textarea"></textarea>
</div>

更新履歴

  • アクセシビリティ項目の追加

  • できるだけ誌面とコードの色を近づけるように調整しましたが、印刷物と画面表示との差異はどうしても発生してしまいます。サポートサイトでご確認いただける色が実際に表示されます。