Bootstrap 개념 / Vue 프로젝트에서 부트스트랩 설치 및 사용 방법
부트스트랩이란?
사전에 정의된 CSS 등을 사용하여 예쁜 HTML을 만들 수 있는 UI 프레임워크입니다.
반응형 웹 페이지 제작을 쉽게 도와줘서 한 페이지에서 PC 및 모바일 서비스가 가능합니다.
Vue 프레임워크 사용 시
Vue에 특화된 BootstrapVue 또는 Vuetify 라이브러리도 활용 가능합니다.
부트스트랩 설치
CDN 방식 설치 방법
<!-- Bootstrap CSS -->
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"
integrity="sha384-..."
crossorigin="anonymous">
<!-- Bootstrap JavaScript -->
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"
integrity="sha384-..."
crossorigin="anonymous">
</script>
bootstrap 설치 없이, HTML header에 삽입하면 바로 사용 가능한 방법입니다.
정적 리소스 방식 설치 방법
<link rel="stylesheet" href="/css/bootstrap.min.css" />
<script src="/js/bootstrap.bundle.min.js"></script>
정적 리소스 폴더에 Bootstrap 파일을 넣고 HTML header에 경로 지정해서 사용하는 방식입니다.
정적 리소스 폴더 경로
src/main/resources/static
Vue 프로젝트에 Bootstrap 설치 방법
npm install bootstrap
Vue 프로젝트 경로에서 npm 명령어로 bootstrap 모듈을 설치합니다.
아래와 같이 main.js에 import 시 모든 페이지에서 사용할 수 있습니다.
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap/dist/js/bootstrap.js';
부트스트랩 CSS import 시 기존 리셋 CSS를 덮어씌우는 문제가 발생할 수 있습니다.
특정 Vue 컴포넌트에서만 import 해도 전역 적용되므로 주의해야 합니다.
부트스트랩 아이콘 라이브러리만 설치하는 경우
npm install bootstrap-icons
Vue 프로젝트 경로에서 npm 명령어로 bootstrap 아이콘 모듈만 설치합니다.
아래와 같이 Javascript 코드에 import 해서 사용할 수 있습니다.
import 'bootstrap-icons/font/bootstrap-icons.css';
// 부트스트랩 아이콘 HTML 예시
<i class="bi bi-alarm"></i>
https://icons.getbootstrap.kr
위 링크에서 원하는 아이콘 HTML 코드를 복사해 사용할 수 있습니다.
Bootstrap 사용법
Bootstrap Docs
https://getbootstrap.com/docs/5.3/getting-started/introduction/
위 Bootstrap 공식 문서 좌측에서 원하는 UI 요소를 선택하고, HTML 코드를 복사할 수 있습니다.
HTML 코드 우측 상단 번개 아이콘을 누르면 실제 모습 및 동작을 미리 볼 수 있습니다.
미리보기 화면 가로 사이즈를 조정하면 반응형으로 UI 요소가 달라지기도 합니다.
각 요소의 클래스명을 약간씩 수정해서 CSS를 변경할 수도 있습니다.
자세한 내용은 가이드 문서를 참고하는 것이 좋습니다.
텍스트 말줄임표 (ellipsis) 적용
// Block 요소
<div class="text-truncate">텍스트</div>
// Inline 요소
<span class="d-inline-block text-truncate" style="max-width: 150px;">
위와 같이, Block/Inline 요소 구분에 따라 속성을 다르게 적용해야 합니다.
말줄임표 CSS 예시
.text-truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
부트스트랩 그리드 반응형 적용
<div class="container">
<div class="row g-3">
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
<div class="p-3 border bg-light">내부 요소 1</div>
</div>
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
<div class="p-3 border bg-light">내부 요소 2</div>
</div>
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
<div class="p-3 border bg-light">내부 요소 3</div>
</div>
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
<div class="p-3 border bg-light">내부 요소 4</div>
</div>
</div>
</div>
기본 모바일 크기에서는 한 줄에 1개, 작은 화면 (sm) 에서는 한 줄에 2개, 중간 화면 (md) 에서는 한 줄에 3개, 큰 화면 (lg) 이상에서는 한 줄에 4개씩 요소를 보여주는 그리드 반응형 예시입니다.
부트스트랩 그리드 브레이크포인트 참고
브레이크포인트 | 접두어 | 화면 크기 기준 |
---|---|---|
Extra small | 없음 | <576px |
Small | sm | ≥576px |
Medium | md | ≥768px |
Large | lg | ≥992px |
Extra large | xl | ≥1200px |
Extra Extra large | xxl | ≥1400px |