デザインコード紹介

Chapter5 お問い合わせフォーム

スマホもタップしやすいデザインにする

更新日:

スマホもタップしやすいデザインにするのUIデザイン画像

HTML

<form>
  <h2>お問い合わせ種別</h2>

  <div class="radio__list">
    <label class="radio__item">
      <input type="radio" name="radio-item" class="form__input" checked>
      <span class="radio__label">資料請求したい</span>
    </label>

    <label class="radio__item">
      <input type="radio" name="radio-item" class="form__input">
      <span class="radio__label">お問い合わせしたい</span>
    </label>

    <label class="radio__item">
      <input type="radio" name="radio-item" class="form__input">
      <span class="radio__label">採用募集にエントリーしたい</span>
    </label>
  </div>

  <h2>お使いのブラウザ</h2>

  <div class="checkbox__list">
    <label class="checkbox__item">
      <input type="checkbox" name="checkbox-item" class="form__input">
      <span class="checkbox__label">Chrome</span>
    </label>

    <label class="checkbox__item">
      <input type="checkbox" name="checkbox-item" class="form__input">
      <span class="checkbox__label">Firefox</span>
    </label>

    <label class="checkbox__item">
      <input type="checkbox" name="checkbox-item" class="form__input">
      <span class="checkbox__label">Safari</span>
    </label>

    <label class="checkbox__item">
      <input type="checkbox" name="checkbox-item" class="form__input">
      <span class="checkbox__label">Edge</span>
    </label>

    <label class="checkbox__item">
      <input type="checkbox" name="checkbox-item" class="form__input">
      <span class="checkbox__label">Opera</span>
    </label>

    <label class="checkbox__item">
      <input type="checkbox" name="checkbox-item" class="form__input">
      <span class="checkbox__label">その他</span>
    </label>
  </div>
</form>

CSS

/*radioとcheckboxのスタイルリセット*/
input[type="checkbox"],
input[type="radio"] {
  position: absolute;
  white-space: nowrap;
  width: 1px;
  height: 1px;
  overflow: hidden;
  border: 0;
  padding: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  margin: -1px;
}

/*radioスタイル*/
.radio__list {
  margin-bottom: 50px;
}

.radio__item {
  display: block;
  margin-bottom: 20px;
}

.radio__label {
  display: flex;
  align-items: center;
  padding: 10px 20px;
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  background-color: #c9d8e2;
  border: 3px solid #96aab7;
  border-radius: 10px;
}

.radio__label::before {
  content: '';
  display: inline-block;
  margin-right: 20px;
  width: 25px;
  height: 25px;
  background-color: #fff;
  border: 2px solid #96aab7;
  border-radius: 25px;
}

input.form__input:checked ~ .radio__label {
  color: #f4f4f4;
  background-color: #053e62;
}

input.form__input:focus ~ .radio__label {
  border: 3px solid #0277b4;
  box-shadow: 0 0 8px #0277b4;
}

input.form__input:checked ~ .radio__label::before {
  background-color: #0277b4;
  background-image: radial-gradient(#fff 29.5%, #0277b4 31.5%);
  border: 2px solid #053e62;
}

/*checkboxスタイル*/
.checkbox__list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.checkbox__item {
  display: inline-block;
}

.checkbox__label {
  display: flex;
  align-items: center;
  position: relative;
  padding: 10px 20px;
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  background-color: #c9d8e2;
  border: 3px solid #96aab7;
  border-radius: 10px;
}

.checkbox__label::before {
  content: '';
  display: inline-block;
  margin-right: 20px;
  width: 25px;
  height: 25px;
  background-color: #fff;
  border: 2px solid #96aab7;
  border-radius: 6px;
}

input.form__input:checked ~ .checkbox__label {
  color: #f4f4f4;
  background-color: #053e62;
}

input.form__input:focus ~ .checkbox__label {
  border: 3px solid #0277b4;
  box-shadow: 0 0 8px #0277b4;
}

input.form__input:checked ~ .checkbox__label::before {
  background-color: #0277b4;
  border: 2px solid #053e62;
}

input.form__input:checked ~ .checkbox__label::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 26px;
  transform: translateY(-50%) rotate(-45deg);
  width: 14px;
  height: 4px;
  border-bottom: 3px solid #f4f4f4;
  border-left: 3px solid #f4f4f4;
}

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