Bootstrap 4
부트스트랩 (Bootstrap)은 화면의 너비를 12 분할(12 격자, Grid)하여 웹페이지를 만든다.
Bootstrap 3의 격자형 레이아웃 시스템(Grid Layout System)은 4 가지 화면 너비를 기준으로 반응하도록 정의되어 있었다. 768px 미만(스마트폰), 768px 이상(태블릿), 992px 이상(작은 화면의 데스크탑), 1200px이상(큰 화면의 데스크탑)에 따라 신축성있게 화면이 바뀌어 반응형이 가능하도록 했다.
Bootstrap 4부터는 이 격자형 레이아웃시스템이 더 정교하고 세밀하게 발전했다. 화면의 너비를 12 분할하는 것은 동일하지만 반응하는 화면의 기준너비는 4가지 에서 5가지로 세분화되었다.
Document
https://www.w3schools.com/bootstrap4/default.asp https://getbootstrap.com/docs/4.0/getting-started/introduction/
목차
LayOut
Breakpoints
Breakpoint Class infix Dimensions X-Small None <576px Small sm ≥576px Medium md ≥768px Large lg ≥992px Extra large xl ≥1200px Extra extra large xxl ≥1400px
Introduction
-
col, col-sm, col-md, col-lg
Extra small<576px Small ≥576px Medium ≥768px Large ≥992px Extra large ≥1200px Max container width 실제 적용되는 너비 None (auto) 540px 720px 960px 1140px Class prefix .col- .col-sm- .col-md- .col-lg- .col-xl- # of columns 12분할 Gutter width 30px (15px on each side of a column) Nestable Yes Column ordering Yes -
.ml-auto, .mr-auto
- css의 margin-left:auto; margin-right:auto;가 column에 적용된다. (.ml-auto, .mr-auto )
- 왼쪽여백을 브라우저가 자동계산하여 적용
- css의 margin-left:auto; margin-right:auto;가 column에 적용된다. (.ml-auto, .mr-auto )
- m- 여백을 설정
- p- 패딩을 설정합니다
- t- 여백 상단 또는 패딩 상단을 설정
- b- 여백 하단 또는 패딩 하단을 설정합니다
- l- 왼쪽 여백 또는 왼쪽 여백 설정
- r- 오른쪽 여백 또는 오른쪽 여백을 설정
- x- 왼쪽 여백과 오른쪽 여백 또는 여백 왼쪽과 여백 오른쪽
- y- 패딩 상단 및 패딩 하단 또는 여백 상단 및 여백 하단을 설정합니다
- 0 - 세트의 마진 이나 패딩 0
- 1- 여백 또는 패딩 을 .25rem으로 설정합니다 (글꼴 크기가 16px 인 경우 4px).
- 2- 여백 또는 패딩 을 .5rem으로 설정합니다 (글꼴 크기가 16px 인 경우 8px).
- 3- 여백 또는 패딩 을 1rem으로 설정합니다 (글꼴 크기가 16px 인 경우 16px).
- 4- 여백 또는 패딩 을 1.5rem으로 설정합니다 (글꼴 크기가 16px 인 경우 24px).
- 5- 여백 또는 패딩 을 3rem으로 설정합니다 (글꼴 크기가 16px 인 경우 48px).
-
자동 -여백을 자동으로 설정
-
Vertical alignment
<div class="row align-items-start">:
row에 포함되는 컨텐츠가 ‘위로 정렬’<div class="row align-items-center">:
row에 포함되는 컨텐츠가 ‘가운데 정렬’<div class="row align-items-end">:
row에 포함되는 컨텐츠가 ‘아래 정렬’<div class="col align-self-start">:
row에서 이 column만 ‘위로 정렬’<div class="col align-self-center">:
row에서 이 column만 ‘가운데 정렬’<div class="col align-self-end">:
row에서 이 column만 ‘아래 정렬’
-
Horizontal alignment
<div class="row justify-content-start">:
row에 포함된 column이 왼쪽정렬(기본)<div class="row justify-content-center">:
row에 포함된 column이 중앙정렬<div class="row justify-content-end">:
row에 포함된 column이 오른쪽 정렬<div class="row justify-content-around">:
row를 column의 수만큼 나눈 다음에 그 영역에 포함된 column을 중앙정렬<div class="row justify-content-between">:
row를 column의 수만큼 나눈 다음에 그 영역에 포함된 column을 왼쪽끝에 있는 column은 왼쪽정렬, 오른쪽끝에 있는 column은 오른쪽정렬, 중앙에 위치한 column은 모두 중앙정렬
-
No gutters
- 여백없음. 부트스트랩의 column은 기본적으로 양쪽에 15px씩 여백(Padding)이 잡혀있다.
padding-right:15px; padding-left:15px; -
<div class="row no-gutters">:
row에 포함되는 모든 column의 여백을 없앤다.
- 여백없음. 부트스트랩의 column은 기본적으로 양쪽에 15px씩 여백(Padding)이 잡혀있다.
padding-right:15px; padding-left:15px; -
-
Reordering
<div class="col-sm-4 order-1">:
order class를 사용한 column 중 첫번째에 배치<div class="col-sm-4 order-2">:
order class를 사용한 column 중 두번째에 배치<div class="col-sm-4 order-12">:
order class를 사용한 column 중 열두번째(마지막)에 배치<div class="col-sm-4 order-first">:
order class를 사용한 column 중 첫번째에 배치<div class="col-sm-4 order-last">:
order class를 사용한 column 중 마지막에 배치
-
Offset classes
- offset-_, offset-sm-_, offset-md-_, offset-lg-_, offset-xl-_ column의 왼쪽에 지정한 (_/12)만큼 여백을 둔다.
<div class="col-md-6 offset-md-4">:
768px 이상에서 4/12만큼 왼쪽에 여백을 두고 6/12영역의 column을 둔다. 768px 미만에서는 여백이 생기지 않는다.<div class="col-md-6 offset-sm-6">:
540px이상에서 6/12만큼 왼쪽에 여백을 두고 6/12영역의 column을 둔다. 576px 미만에서는 여백이 생기지 않는다.<div class="col-sm-5 offset-sm-2 col-md-6 offset-md-0">:
576px이상에서 2/12만큼 여백을 두지만 768px이상에서는 여백을 초기화한다(여백을 없앤다).<div class="col-sm-6 col-md-5 offset-md-2 col-lg-6 offset-lg-0">:
768px이상에서 2/12만큼 여백을 두지만 960px이상에서는 여백을 초기화한다(여백을 없앤다).
- offset-_, offset-sm-_, offset-md-_, offset-lg-_, offset-xl-_ column의 왼쪽에 지정한 (_/12)만큼 여백을 둔다.
-
Margin
-
css의 margin-left:auto; margin-right:auto;가 column에 적용된다. (.ml-auto, .mr-auto )
-
<div class="col-md-4"></div> <div class="col-md-4 ml-auto"></div>:
왼쪽여백을 브라우저가 자동계산하여 적용. (margin-left:auto;) ==> [참조] https://www.w3schools.com/cssref/pr_margin-left.asp -
<div class="col-md-3 ml-md-auto"></div> <div class="col-md-3 ml-md-auto"></div>:
768px 이상에서 왼쪽여백을 브라우저가 자동계산하여 적용. -
<div class="col-auto mr-auto"></div><div class="col-auto">:
‘col-auto’ (width:auto; )는 브라우저가 너비를 자동으로 계산하여 1/12의 너비가 column에 적용 ==> [참조] https://www.w3schools.com/cssref/pr_dim_width.asp -
'mr-auto' (margin-right:auto;) 오른쪽 여백을 브라우저가 자동계산하여 적용
==> [참조] https://www.w3schools.com/cssref/pr_dim_width.asp
-
-
- Nesting (중첩)
- Column 영역을 또 다시 분할할 수 있다. 이를테면 Column 영역이 그 내부에 Row를 포함할 수 있다. 특정 Column에 포함되는 Row도 마찬가지로 12분할된다.
container
- 컨테이너(container, container-fluid)
- container 클래스는 보면 화면의 넓이에 따라서 750px, 970px, 그리고 1170px로 달라지는 것을 확인할 수 있고, container-fluid는 넓이를 설정하고 있지 않아서 화면에 꽉차도록 하는 wrapper이다
.container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
- Small : Default(12분할)
- Medium
@media (min-width: 768px) {
.container { width: 750px; }
}
- Large
@media (min-width: 992px) {
.container { width: 970px; }
}
- Extra Large
@media (min-width: 1200px) {
.container { width: 1170px; }
}
.container-fluid {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
Grid
<div class="container jumbotron">
<div class="row">
<div class="col-md-5">.col-md-5</div>
<div class="col-md-5">.col-md-5</div>
</div>
<div class="row">
<div class="col-md-3">.col-md-3</div>
<div class="col-md-3">.col-md-3</div>
<div class="col-md-3">.col-md-3</div>
<div class="col-md-3">.col-md-3</div>
</div>
<div class="row">
<div class="col-md-5">.col-md-5</div>
<div class="col-md-5">.col-md-5</div>
<div class="col-md-5">.col-md-5</div>
</div>
</div>