[Bootstrap] Custom Input

2022. 5. 31. 17:31JavaScript/Bootstrap

1. Custom Input

  • 텍스트 입력 요소 외의 입력 요소들은 Bootstrap에서 UI 모양을 따로 정의하지 않습니다.
  • 때문에 브라우저마다 다른 모양으로 나타나게 되는데 custom input 클래스를 이용하면 모든 브라우저에서 동일한 모양으로 보여줄 수있습니다.

 

2. Custom Input 주요 css 클래스

  • custom-checkbox : checkbox
  • custom-radio : radio
  • custom-select : select
  • custom-range : range
  • custom-file-input : file

 

3. custom checkbox

<div class="form-group row">
    <label class="col-sm-4 text-sm-right">Custom Checkbox</label>
    <div class="col-sm-8">
        <div class="custom-control custom-checkbox">
            <!-- custom-control, custom-checkbox 클래스 적용-->
            <input type="checkbox" class="custom-control-input" name="c2" id="c10"> <!-- custom-control-input 클래스 적용-->
            <label class="custom-control-label" for="c10">커스텀 체크박스 1</label> <!-- custom-control-label 클래스 적용-->
        </div>
        <div class="custom-control custom-checkbox">
            <input type="checkbox" class="custom-control-input" name="c2" id="c20">
            <label class="custom-control-label" for="c20">커스텀 체크박스 2</label>
        </div>
        <div class="custom-control custom-checkbox">
            <input type="checkbox" class="custom-control-input" name="c2" id="c30">
            <label class="custom-control-label" for="c30">커스텀 체크박스 3</label>
        </div>
    </div>
</div>
<hr>

4. custom radio

<!-- custom radio -->
<div class="form-group row">
    <label class="col-sm-4 text-sm-right">Radio Custom</label>
    <div class="col-sm-8">
        <div class="custom-control custom-radio">
            <input type="radio" class="custom-control-input" name="r2" id="r10" value="1" checked>
            <label for="r10" class="custom-control-label">커스텀 라디오 1</label>
        </div>
        <div class="custom-control custom-radio">
            <input type="radio" class="custom-control-input" name="r2" id="r20" value="2" checked>
            <label for="r20" class="custom-control-label">커스텀 라디오 2</label>
        </div>
        <div class="custom-control custom-radio">
            <input type="radio" class="custom-control-input" name="r2" id="r30" value="3" checked>
            <label for="r30" class="custom-control-label">커스텀 라디오 3</label>
        </div>
    </div>
</div>
<hr>

 

5. custom select

<!-- custom select -->
<div class="form-group row">
    <label class="col-sm-4 text-sm-right">custom select</label>
    <div class="col-sm-8">
        <!-- custom-select, custom-select-sm, custom-select-lg -->
        <select id="s2" class="custom-select">
            <option value="1">항목1</option>
            <option value="2">항목2</option>
            <option value="3">항목3</option>
            <option value="4">항목4</option>
            <option value="5">항목5</option>
        </select>
    </div>
</div>
<hr>

 

6. custom range

<!-- custom range -->
<div class="form-group row">
    <label class="col-sm-4 text-sm-right">custom range</label>
    <div class="col-sm-8">
        <input type="range" class="custom-range" id="a3">
    </div>
</div>
<hr>

 

7. custom file

<!-- custom file -->
<div class="form-group row">
    <label class="col-sm-4 text-sm-right">custom file</label>
    <div class="col-sm-8">
        <input type="file" class="custom-file-input" id="a5">
        <label for="a5" class="custom-file-label">파일 선택</label>
    </div>
</div>
<hr>

 

8. MS Edge vs Google Chrom Input 비교

MS Edge

Google Chrome

위 두 결과를 비교해보면 일반적인 input 요소들은 브라우저간의 결과가 미묘하게 다른데 반해 custom input 클래스를 적용한 input들은 브라우저가 달라도 결과가 동일한 것을 알 수 있습니다.

 

정리하며

  • 영역 : custom-control, custom-checkbox 
  • 입력 : custom-control-input, custom-select, custom-range, custom-file-input
  • 레이블 : custom-control-label

 

References

source code : https://github.com/yonghwankim-dev/Bootstrap_study/tree/main/CustomInput/src/main/webapp
[인프런] 윤재성의 Bootstrap 4 & 3 Framework Tutorial

'JavaScript > Bootstrap' 카테고리의 다른 글

[Bootstrap 4] Modal  (0) 2022.06.01
[Bootstrap 4] 회전목마  (0) 2022.06.01
[Bootstrap] InputGroup  (0) 2022.05.31
[Bootstrap] Input 태그 기본  (0) 2022.05.31
[Bootstrap] Form  (0) 2022.05.31