본문 바로가기
프로그래밍/Bootstrap

7. 깔끔한 폼 디자인, Bootstrap 폼과 입력 필드 스타일링

by 완소루피 2024. 11. 12.
728x90
반응형

안녕하세요! 오늘은 Bootstrap을 활용해 폼과 입력 필드를 깔끔하게 디자인하는 방법에 대해 알아볼게요. 웹 디자인에서 폼은 사용자와 상호작용하는 중요한 요소로, Bootstrap의 다양한 클래스를 통해 폼의 레이아웃과 스타일을 쉽게 만들 수 있어요. 이번 글에서는 폼 레이아웃, 입력 필드 스타일링, 체크박스와 라디오 버튼, 셀렉트 박스 등 다양한 입력 요소 활용법을 다뤄보겠습니다.

1. 기본 폼 레이아웃

Bootstrap의 폼은 form-group과 form-control 클래스를 활용해 일관성 있는 스타일을 제공합니다. 폼의 기본 레이아웃을 만들기 위해서는 다음과 같은 구조를 사용합니다.

 

<div class="container">
  <form>
    <div class="form-group">
      <label for="exampleInputEmail1">이메일 주소</label>
      <input type="email" class="form-control" id="exampleInputEmail1" placeholder="이메일을 입력하세요">
    </div>
    <div class="form-group">
      <label for="exampleInputPassword1">비밀번호</label>
      <input type="password" class="form-control" id="exampleInputPassword1" placeholder="비밀번호를 입력하세요">
    </div>
    <button type="submit" class="btn btn-primary">제출하기</button>
  </form>
</div>

 

위 코드에서 form-group 클래스는 각 입력 필드와 레이블을 그룹화해 레이아웃을 정리하는 역할을 합니다. form-control 클래스는 입력 필드에 적용해 입력 창의 크기와 스타일을 일관성 있게 맞춰줘요.

2. 입력 필드 스타일링

Bootstrap은 기본적으로 모든 입력 필드를 깔끔하고 직관적인 디자인으로 만들어줍니다. 다양한 입력 필드 타입을 사용해 사용자 입력을 받을 수 있어요.

(1) 텍스트, 이메일, 비밀번호 필드

<div class="form-group">
  <label for="textInput">이름</label>
  <input type="text" class="form-control" id="textInput" placeholder="이름을 입력하세요">
</div>
<div class="form-group">
  <label for="emailInput">이메일</label>
  <input type="email" class="form-control" id="emailInput" placeholder="이메일을 입력하세요">
</div>
<div class="form-group">
  <label for="passwordInput">비밀번호</label>
  <input type="password" class="form-control" id="passwordInput" placeholder="비밀번호를 입력하세요">
</div>

 

(2) 텍스트 에리어 (textarea)

텍스트 에리어는 textarea 태그에 form-control 클래스를 적용해 사용할 수 있습니다.

 

<div class="form-group">
  <label for="textarea">메시지</label>
  <textarea class="form-control" id="textarea" rows="3" placeholder="메시지를 입력하세요"></textarea>
</div>

 

3. 체크박스와 라디오 버튼

Bootstrap에서는 form-check 클래스를 사용해 체크박스와 라디오 버튼을 일관성 있는 스타일로 만들 수 있어요.

(1) 체크박스

체크박스는 form-check 클래스를 사용해 정렬하고, form-check-input과 form-check-label 클래스를 사용해 입력 요소와 레이블을 스타일링합니다.

 

<div class="form-check">
  <input class="form-check-input" type="checkbox" id="check1">
  <label class="form-check-label" for="check1">동의합니다</label>
</div>
<div class="form-check">
  <input class="form-check-input" type="checkbox" id="check2">
  <label class="form-check-label" for="check2">뉴스레터를 구독합니다</label>
</div>

 

(2) 라디오 버튼

라디오 버튼도 체크박스와 비슷하게 구성할 수 있어요.

 

<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="radio1" value="option1" checked>
  <label class="form-check-label" for="radio1">옵션 1</label>
</div>
<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="radio2" value="option2">
  <label class="form-check-label" for="radio2">옵션 2</label>
</div>

 

4. 셀렉트 박스 (드롭다운)

셀렉트 박스는 select 태그에 form-control 클래스를 추가해 사용하면 됩니다.

 

<div class="form-group">
  <label for="selectBox">선택하세요</label>
  <select class="form-control" id="selectBox">
    <option>옵션 1</option>
    <option>옵션 2</option>
    <option>옵션 3</option>
  </select>
</div>

 

셀렉트 박스는 옵션을 선택할 수 있는 드롭다운 메뉴를 구성할 때 사용합니다.

5. 폼의 수평 정렬 (Inline Form)

여러 입력 요소를 가로로 배치하려면 form-inline 클래스를 사용합니다. 이는 짧은 폼이나 검색 폼에서 유용하게 활용됩니다.

 

<form class="form-inline">
  <label class="sr-only" for="inlineFormInputName">이름</label>
  <input type="text" class="form-control mb-2 mr-sm-2" id="inlineFormInputName" placeholder="이름">

  <label class="sr-only" for="inlineFormInputGroupUsername">사용자명</label>
  <div class="input-group mb-2 mr-sm-2">
    <div class="input-group-prepend">
      <div class="input-group-text">@</div>
    </div>
    <input type="text" class="form-control" id="inlineFormInputGroupUsername" placeholder="사용자명">
  </div>

  <button type="submit" class="btn btn-primary mb-2">제출</button>
</form>

 

6. 폼 요소의 상태 (유효성 검사)

입력 필드에 유효성 검사 스타일을 적용하려면 is-valid와 is-invalid 클래스를 사용할 수 있어요.

 

<div class="form-group">
  <label for="validInput">유효한 입력</label>
  <input type="text" class="form-control is-valid" id="validInput" placeholder="유효한 입력입니다.">
  <div class="valid-feedback">유효한 입력입니다!</div>
</div>
<div class="form-group">
  <label for="invalidInput">유효하지 않은 입력</label>
  <input type="text" class="form-control is-invalid" id="invalidInput" placeholder="유효하지 않은 입력입니다.">
  <div class="invalid-feedback">이 입력은 유효하지 않습니다.</div>
</div>

 

is-valid와 is-invalid 클래스는 입력 필드에 유효성 검사 결과를 표시하는 데 유용합니다. valid-feedback과 invalid-feedback 클래스는 유효성 검사 메시지를 표시하는 데 사용됩니다.

요약 및 다음 단계

Bootstrap을 사용해 폼을 쉽게 구성하고 다양한 입력 필드를 디자인할 수 있어요. form-group과 form-control 클래스는 폼의 레이아웃을 잡는 데 유용하며, 체크박스와 라디오 버튼, 셀렉트 박스, 유효성 검사까지 한 번에 손쉽게 구현할 수 있습니다. 다음 단계로는 폼을 실제 웹페이지에 적용해 보고, 다양한 CSS와 JavaScript 기능을 결합해 사용자 경험을 개선하는 폼을 만들어보세요!

728x90
반응형