부트스트랩은 반응형 12열 그리드를 기반으로 합니다. 또한 해당 시스템을 기반으로 하는 고정 너비 레이아웃과 유동 너비 레이아웃을 포함했습니다.
부트스트랩은 HTML5 doctype을 사용해야 하는 HTML 요소와 CSS 속성을 사용합니다. 프로젝트의 모든 부트스트랩된 페이지 시작 부분에 포함해야 합니다.
- <!DOCTYPE HTML>
- <html 언어 = "ko" >
- ...
- </html>
scaffolding.less 파일 내에서 기본 전역 표시, 타이포그래피 및 링크 스타일을 설정합니다. 구체적으로:
background-color: white;
에 설정body
@baseFontFamily
, @baseFontSize
및 @baseLineHeight
속성을 타이포그래피 기반으로 사용@linkColor
다음에만 링크 밑줄을 적용하십시오.:hover
Bootstrap 2부터 기존 CSS 재설정은 HTML5 Boilerplate 를 지원하는 Nicolas Gallagher 의 프로젝트인 Normalize.css 의 요소를 사용하도록 발전했습니다 .
새로운 재설정은 여전히 reset.less 에서 찾을 수 있지만 간결함과 정확성을 위해 많은 요소가 제거되었습니다.
Bootstrap에서 제공하는 기본 그리드 시스템 은 724px, 940px(반응형 CSS가 포함되지 않은 기본값) 및 1170px 너비로 렌더링되는 12개의 열 을 사용합니다. 767px 뷰포트 아래에서 기둥은 유동적이 되고 수직으로 쌓입니다.
- <div 클래스 = "행" >
- <div 클래스 = "span4" > ... </div>
- <div 클래스 = "span8" > ... </div>
- </div>
여기에 표시된 것처럼 기본 레이아웃은 그리드 시스템의 일부로 정의한 12개의 기본 열에 걸쳐 있는 두 개의 "열"로 만들 수 있습니다.
- <div 클래스 = "행" >
- <div 클래스 = "span4" > ... </div>
- <div 클래스 = "span4 offset4" > ... </div>
- </div>
Bootstrap의 정적(비유동) 그리드 시스템을 사용하면 중첩이 쉽습니다. 콘텐츠를 중첩하려면 기존 열 내에 새로운 열 .row
집합을 추가하기만 하면 됩니다..span*
.span*
중첩된 행에는 부모의 열 수만큼 추가되는 열 집합이 포함되어야 합니다. 예를 들어 두 개의 중첩 .span3
열은 .span6
.
- <div 클래스 = "행" >
- <div 클래스 = "span6" >
- 레벨 1 열
- <div 클래스 = "행" >
- <div 클래스 = "span3" > 레벨 2 </div>
- <div 클래스 = "span3" > 레벨 2 </div>
- </div>
- </div>
- </div>
유동 격자 시스템은 고정 픽셀 대신 열 너비에 백분율을 사용합니다. 또한 고정 그리드 시스템과 동일한 응답 변형을 가지므로 주요 화면 해상도와 장치에 적절한 비율을 보장합니다.
.row
로 변경 하여 임의의 행 유체를 만들 수 .row-fluid
있습니다. 열은 정확히 동일하게 유지되므로 고정 레이아웃과 유동 레이아웃 사이를 매우 간단하게 전환할 수 있습니다.
- <div 클래스 = "행 유동" >
- <div 클래스 = "span4" > ... </div>
- <div 클래스 = "span8" > ... </div>
- </div>
유동 격자를 사용한 중첩은 약간 다릅니다. 중첩 열의 수가 부모와 일치할 필요가 없습니다. 대신 각 행이 상위 열의 100%를 차지하기 때문에 열이 각 수준에서 재설정됩니다.
- <div 클래스 = "행 유동" >
- <div 클래스 = "span12" >
- 열의 수준 1
- <div 클래스 = "행 유동" >
- <div 클래스 = "span6" > 레벨 2 </div>
- <div 클래스 = "span6" > 레벨 2 </div>
- </div>
- </div>
- </div>
변하기 쉬운 | 기본값 | 설명 |
---|---|---|
@gridColumns |
12 | 열 수 |
@gridColumnWidth |
60픽셀 | 각 열의 너비 |
@gridGutterWidth |
20픽셀 | 열 사이의 음수 공간 |
부트스트랩에 내장된 변수는 위에 설명된 기본 940px 그리드 시스템을 사용자 정의하기 위한 몇 가지 변수입니다. 그리드의 모든 변수는 variables.less에 저장됩니다.
그리드를 수정한다는 것은 3개의 @grid*
변수를 변경하고 부트스트랩을 다시 컴파일하는 것을 의미합니다. variables.less에서 그리드 변수를 변경하고 문서화된 네 가지 방법 중 하나를 사용하여 재컴파일 하십시오. 더 많은 열을 추가하는 경우 grid.less에 해당 열에 대한 CSS를 추가해야 합니다.
그리드 사용자 정의는 기본 수준인 940px 그리드에서만 작동합니다. Bootstrap의 반응형 측면을 유지하려면 responsive.less에서 그리드를 사용자 지정해야 합니다.
기본 940px 너비의 단순한 중앙 레이아웃은 단일 <div class="container">
.
- <본체>
- <div 클래스 = "컨테이너" >
- ...
- </div>
- </바디>
<div class="container-fluid">
유연한 페이지 구조, 최소 및 최대 너비, 왼쪽 사이드바를 제공합니다. 앱과 문서에 적합합니다.
- <div 클래스 = "컨테이너 유체" >
- <div 클래스 = "행 유동" >
- <div 클래스 = "스팬2" >
- <!--사이드바 내용-->
- </div>
- <div 클래스 = "span10" >
- <!--본문 내용-->
- </div>
- </div>
- </div>
미디어 쿼리는 비율, 너비, 표시 유형 등 다양한 조건을 기반으로 맞춤 CSS를 허용하지만 일반적으로 min-width
및 에 초점을 맞춥니다 max-width
.
미디어 쿼리를 책임감 있게 사용하고 모바일 청중을 위한 시작으로만 사용하십시오. 대규모 프로젝트의 경우 미디어 쿼리 계층이 아닌 전용 코드 기반을 고려하십시오.
부트스트랩은 단일 파일에서 소수의 미디어 쿼리를 지원하여 다양한 장치와 화면 해상도에서 프로젝트를 보다 적절하게 만들 수 있습니다. 포함된 내용은 다음과 같습니다.
상표 | 레이아웃 너비 | 열 너비 | 거터 폭 |
---|---|---|---|
스마트폰 | 480px 이하 | 유동 기둥, 고정 너비 없음 | |
스마트폰에서 태블릿으로 | 767px 이하 | 유동 기둥, 고정 너비 없음 | |
세로 태블릿 | 768px 이상 | 42픽셀 | 20픽셀 |
기본 | 980px 이상 | 60픽셀 | 20픽셀 |
대형 디스플레이 | 1200픽셀 이상 | 70픽셀 | 30픽셀 |
장치가 반응형 페이지를 제대로 표시하도록 하려면 표시 영역 메타 태그를 포함합니다.
- <메타 이름 = "뷰포트" 콘텐츠 = "너비=장치 너비, 초기 크기=1.0" >
부트스트랩은 이러한 미디어 쿼리를 자동으로 포함하지 않지만 이러한 미디어 쿼리를 이해하고 추가하는 것은 매우 쉽고 최소한의 설정만 필요합니다. Bootstrap의 반응형 기능을 포함하는 몇 가지 옵션이 있습니다.
그냥 포함하지 않는 이유는 무엇입니까? 사실, 모든 것이 반응할 필요는 없습니다. 개발자에게 이 기능을 제거하도록 권장하는 대신 활성화하는 것이 가장 좋습니다.
- /* 가로 전화 및 다운 */
- @ 미디어 ( 최대 너비 : 480px ) { ... }
- /* 가로 폰에서 세로 태블릿으로 */
- @미디어 ( 최대 너비 : 767 픽셀 ) { ... }
- /* 세로 타블렛을 가로 및 데스크탑으로 */
- @media ( 최소 너비 : 768px ) 및 ( 최대 너비 : 979px ) { ... } _ _
- /* 큰 데스크탑 */
- @미디어 ( 최소 너비 : 1200 픽셀 ) { ... }
더 빠른 모바일 친화적인 개발을 위해 이러한 기본 유틸리티 클래스를 사용하여 장치별로 콘텐츠를 표시하고 숨깁니다.
제한된 기준으로 사용하고 동일한 사이트의 완전히 다른 버전을 생성하지 마십시오. 대신 각 장치의 프레젠테이션을 보완하는 데 사용하십시오.
예를 들어 <select>
모바일 레이아웃에서는 탐색 요소를 표시할 수 있지만 태블릿이나 데스크톱에서는 표시하지 않을 수 있습니다.
다음은 우리가 지원하는 클래스와 주어진 미디어 쿼리 레이아웃에 미치는 영향에 대한 표입니다(장치별로 레이블 지정). 에서 찾을 수 있습니다 responsive.less
.
수업 | 전화480px 이하 | 정제767px 이하 | 데스크탑768px 이상 |
---|---|---|---|
.visible-phone |
보이는 | 숨겨진 | 숨겨진 |
.visible-tablet |
숨겨진 | 보이는 | 숨겨진 |
.visible-desktop |
숨겨진 | 숨겨진 | 보이는 |
.hidden-phone |
숨겨진 | 보이는 | 보이는 |
.hidden-tablet |
보이는 | 숨겨진 | 보이는 |
.hidden-desktop |
보이는 | 보이는 | 숨겨진 |
위의 클래스를 테스트하려면 브라우저 크기를 조정하거나 다른 기기에서 로드하세요.
녹색 체크 표시는 클래스가 현재 뷰포트에 표시됨을 나타냅니다.
여기에서 녹색 체크 표시는 클래스가 현재 뷰포트에 숨겨져 있음을 나타냅니다.