이번 글에서는 폼에 대해 주로 설명하고 있는데, 사실 웹사이트를 해본 분들에게는 낯설지 않은 내용이며, 데이터 제출 시 가장 많이 사용하는 폼 폼이라고 할 수 있습니다. 이 글은 주로 내용을 설명합니다:
기본 케이스
2. 인라인 양식
3. 가로로 배열된 형태
4.지원되는 컨트롤
5. 정적 제어
6.제어상태
7. 크기 조절
8. 도움말 텍스트
기본 케이스
개별 양식 컨트롤에는 일부 전역 스타일이 자동으로 할당됩니다. .form-control이 설정된 모든 ,
<form role="form"> <div class="form-group"> <label for="exampleInputEmail1">Email address</label> <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email"> </div> <div class="form-group"> <label for="exampleInputPassword1">Password</label> <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password"> </div> <div class="form-group"> <label for="exampleInputFile">File input</label> <input type="file" id="exampleInputFile"> <p class="help-block">Example block-level help text here.</p> </div> <div class="checkbox"> <label> <input type="checkbox"> Check me out </label> </div> <button type="submit" class="btn btn-default">Submit</button> </form>
두 텍스트 상자의 너비는 실제로 100%입니다. 그리고 세 가지 양식 그룹이 있습니다.
인라인 양식
왼쪽 정렬 및 인라인 블록 수준 컨트롤에 대해 .form-inline을 설정하면 더 간결하게 정렬됩니다.
너비 설정 필요: Bootstrap에서는 입력, 선택 및 텍스트 영역이 기본적으로 100% 너비로 설정되어 있습니다. 인라인 양식을 사용하려면 사용 중인 양식 컨트롤에 맞게 너비를 구체적으로 설정해야 합니다.
라벨을 설정하세요. 각 입력 컨트롤에 라벨을 설정하지 않으면 스크린 리더가 이를 올바르게 읽을 수 없습니다. 이러한 인라인 양식의 경우 레이블에 .sr-only를 설정하여 숨길 수 있습니다.
<form class="form-inline" role="form"> <div class="form-group"> <label class="sr-only" for="exampleInputEmail2">Email address</label> <input type="email" class="form-control" id="exampleInputEmail2" placeholder="Enter email"> </div> <div class="form-group"> <label class="sr-only" for="exampleInputPassword2">Password</label> <input type="password" class="form-control" id="exampleInputPassword2" placeholder="Password"> </div> <div class="checkbox"> <label> <input type="checkbox"> Remember me </label> </div> <button type="submit" class="btn btn-default">Sign in</button> </form>
가로로 배열된 형태
양식에 .form-horizontal을 추가하고 Bootstrap의 사전 설정된 그리드 클래스를 사용하면 레이블과 컨트롤 그룹을 수평으로 나란히 배치할 수 있습니다. 이렇게 하면 .form-group의 동작이 변경되어 그리드 시스템의 행처럼 동작하므로 더 이상 .row를 사용할 필요가 없습니다.
<form class="form-horizontal" role="form"> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">Email</label> <div class="col-sm-10"> <input type="email" class="form-control" id="inputEmail3" placeholder="Email"> </div> </div> <div class="form-group"> <label for="inputPassword3" class="col-sm-2 control-label">Password</label> <div class="col-sm-10"> <input type="password" class="form-control" id="inputPassword3" placeholder="Password"> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <div class="checkbox"> <label> <input type="checkbox"> Remember me </label> </div> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-default">Sign in</button> </div> </div> </form>
지원되는 컨트롤
지원되는 표준 양식 컨트롤은 양식 레이아웃 사례에 표시됩니다.
입력
대부분의 양식 컨트롤 및 텍스트 입력 필드 컨트롤. 텍스트, 비밀번호, 날짜/시간, 날짜/시간-로컬, 날짜, 월, 시간, 주, 숫자, 이메일, URL, 검색, 전화번호 및 색상 등 HTML5에서 지원하는 모든 유형이 포함됩니다.
참고: 유형이 올바르게 설정된 입력 컨트롤에만 올바른 스타일을 지정할 수 있습니다.
텍스트 상자 예시
텍스트 영역
여러 줄의 텍스트를 지원하는 양식 컨트롤입니다. 행 속성은 필요에 따라 변경할 수 있습니다.
<h1>textarea</h1> <textarea class="form-control" rows="3"></textarea>
체크박스와 라디오
확인란은 목록에서 하나 이상의 옵션을 선택하는 데 사용되는 반면 라디오는 여러 옵션 중에서 하나의 옵션만 선택하는 데 사용됩니다.
기본 모양(겹쳐져 있음)
<div class="checkbox"> <label> <input type="checkbox" value=""> Option one is this and that—be sure to include why it's great </label> </div> <div class="radio"> <label> <input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked> Option one is this and that—be sure to include why it's great </label> </div> <div class="radio"> <label> <input type="radio" name="optionsRadios" id="optionsRadios2" value="option2"> Option two can be something else and selecting it will deselect option one </label> </div>
인라인 체크박스
일련의 체크박스 또는 라디오 컨트롤에 .checkbox-inline 또는 .radio-inline을 적용하면 이러한 컨트롤을 일렬로 정렬할 수 있습니다.
<label class="checkbox-inline"> <input type="checkbox" id="inlineCheckbox1" value="option1"> 1 </label> <label class="checkbox-inline"> <input type="checkbox" id="inlineCheckbox2" value="option2"> 2 </label> <label class="checkbox-inline"> <input type="checkbox" id="inlineCheckbox3" value="option3"> 3 </label>
同理Radio是一样的,只需要添加一下样式即可。
Select
<select class="form-control"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> </select> <select multiple class="form-control"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> </select>
静态控件
在水平布局的表单中,如果需要将一行纯文本放置于label的同一行,为
元素添加.form-control-static即可。
<form class="form-horizontal" role="form"> <div class="form-group"> <label class="col-sm-2 control-label">Email</label> <div class="col-sm-10"> <p class="form-control-static">email@example.com</p> </div> </div> <div class="form-group"> <label for="inputPassword" class="col-sm-2 control-label">Password</label> <div class="col-sm-10"> <input type="password" class="form-control" id="inputPassword" placeholder="Password"> </div> </div> </form>
控件状态
通过为控件和label设置一些基本状态,可以为用户提供回馈。
输入焦点
我们移除了某些表单控件的默认outline样式,并对其:focus状态赋予了box-shadow样式。
被禁用的输入框
为输入框设置disabled属性可以防止用户输入,并能改变一点外观,使其更直观。
被禁用的fieldset
为