WEB ◆ TS Library ◆ 熱衷分享 ◆ 享受教學相長 ◆ 無形的網絡擁有熱情溫度的傳遞

3-14. 表單的排版設計

資料參考: Bootstrap說明網站(中) w3schools(英)

HTML部份 --- 先安排畫面的設計框

<h1>聯絡我們</h1>

<div class="container-xl">
  <div class="row">
    <div class="col-md-1"></div>
    <div class="col-md-11"></div>
  </div>

</div>

HTML部份 --- 安排表單的排版設計

  <form method="post" action="">
  <p class="text-center"><small><span class="reqword">*</span> 表示欄位必填</small></p>

  <!-- 第1列 ======================================================= -->
  <div class="row mb-3 align-items-center">
    <div class="col-12 col-sm-4 col-md-3 d-flex align-items-center 
                justify-content-between justify-content-md-end">
      <span><span class="reqword">*</span>姓名:</span>
      <span class="faword"><i class="bi bi-person-fill"></i></span>
    </div>

    <div class="col-12 col-sm-7 col-md-8">
      <input type="text" name="" class="form-control" required 
             placeholder="請填寫聯絡人真實姓名, 方便與您聯絡......">
    </div>
  </div>


  <!-- 第2列 ======================================================= -->
  <div class="row mb-3 align-items-center">
    <div class="col-12 col-sm-4 col-md-3 d-flex align-items-center 
                justify-content-between justify-content-md-end">
      <span><span class="reqword">*</span>稱謂:</span>
      <span class="faword"><i class="bi bi-gender-ambiguous"></i></span>
    </div>

    <div class="col-12 col-sm-7 col-md-8">
      <label><input type="radio" name="" value="先生" 
                    class="form-check-input"> 先生   </label>
      <label><input type="radio" name="" value="小姐" 
                    class="form-check-input"> 小姐 </label>
    </div>
  </div>


  <!-- 第3列 ======================================================= -->
  <div class="row mb-3 align-items-center">
    <div class="col-12 col-sm-4 col-md-3 d-flex align-items-center 
                justify-content-between justify-content-md-end">
      <span><span class="reqword">*</span>手機:</span>
      <span class="faword"><i class="bi bi-phone-vibrate"></i></span>
    </div>

    <div class="col-12 col-sm-7 col-md-8">
      <input type="number" name="" class="form-control" required 
             placeholder="請填寫與您聯絡的手機.......">
    </div>
  </div>

  <!-- 第4列 ======================================================= -->
  <div class="row mb-3 align-items-center">
    <div class="col-12 col-sm-4 col-md-3 d-flex align-items-center 
                justify-content-between justify-content-md-end">
      <span><span class="reqword">*</span>服務區域:</span>
      <span class="faword"><i class="bi bi-shop"></i></span>
    </div>

    <div class="col-12 col-sm-7 col-md-8">

      <select name="" class="form-select" aria-label="Default select example">
        <option selected disabled>請選擇靠近的服務區域...</option>
        <option value="台北">台北</option>
        <option value="台中">台中</option>
        <option value="高雄">高雄</option>
      </select>

    </div>
  </div>

  <!-- 第5列 ======================================================= -->
  <div class="row mb-3 align-items-center">
    <div class="col-12 col-sm-4 col-md-3 d-flex align-items-center 
                justify-content-between justify-content-md-end">
      <span><span class="reqword">*</span>需要的服務:</span>
      <span class="faword"><i class="bi bi-check2-square"></i></span>
    </div>

    <div class="col-12 col-sm-7 col-md-8">
      <label><input type="checkbox" name="" value="回覆問題" 
                    class="form-check-input"> 回覆問題  </label>
      <label><input type="checkbox" name="" value="寄發型錄" 
                    class="form-check-input"> 寄發型錄  </label>
      <label><input type="checkbox" name="" value="寄發樣品" 
                    class="form-check-input"> 寄發樣品  </label>
      <label><input type="checkbox" name="" value="預約面談" 
                    class="form-check-input"> 預約面談  </label>
    </div>
  </div>


  <!-- 第6列 ======================================================= -->
  <div class="row mb-3 align-items-start">
    <div class="col-12 col-sm-4 col-md-3 d-flex align-items-center 
                justify-content-between justify-content-md-end">
      <span><span class="reqword">*</span>留言內容:</span>
      <span class="faword"><i class="bi bi-chat-dots"></i></span>
    </div>

    <div class="col-12 col-sm-7 col-md-8">
      <textarea name="" rows="6" class="form-control" required></textarea>
    </div>
  </div>

  <!-- 第7列 ======================================================= -->
  <div class="row mb-3 align-items-start">
    <div class="col-12 col-sm-4 col-md-3 d-flex align-items-center 
                justify-content-between justify-content-md-end">
       </div>

    <div class="col-12 col-sm-7 col-md-8 text-end">
      <input type="submit" class="btn btn-outline-secondary" value="確定送出">
    </div>
  </div>

</form>

CSS 加以調整設計的部份 (以下參考使用, 不一定要相同的設定)

#sec5 { padding-bottom: 50px; display: flex; flex-direction: column; }
#sec5 .container-xl { 
  background: url(img/contact2.png) no-repeat 20% top; 
  background-size: 40% auto; flex: 1; 
}
#sec5 h1 { margin-bottom: 20px; }
#sec5 form { 
  background-color: rgba(255, 255, 255, 1); color: #333; border-radius: 1rem;  
  max-width: 900px; margin: 150px auto 100px; padding: 20px; 
}
#sec5 form .bi { font-size: 1.5em; }
#sec5 form .reqword { 
  color: red; margin-right: 5px; display: inline-block; vertical-align: middle; 
}
#sec5 form input::placeholder { color: var(--c-form2); }

.form-control:focus { 
  color: #212529; background-color: #fff; border-color: var(--c-form2); 
  outline: 0; box-shadow: 0 0 0 0.25rem var(--c-form2); 
}
.form-check-input:focus { 
  border-color: var(--c-form2); outline: 0; 
  box-shadow: 0 0 0 0.25rem var(--c-form2); 
}
.form-check-input:checked { 
  background-color: var(--c-form1);  border-color: var(--c-form1); 
}
.form-select:focus { 
  border-color: var(--c-form2); outline: 0; 
  box-shadow: 0 0 0 0.25rem var(--c-form2); 
}

@media (min-width: 768px){
  #sec5 .container-xl { 
    background: url(img/contact2.png) no-repeat left bottom; 
    background-size: min(30%, 300px)  auto; 
  }
  #sec5 form { 
    margin: 0px auto 40px; padding: 40px; 
    background-color: rgba(255, 255, 255, 0.6); 
  }
}

@media (min-width:992px){ 
  #sec5 .container-xl { background-size:  min(30%, 300px) auto; }
}

 

 

go TOP