Web/Bootstrap

[Bootstrap] Bootstrap 기초

IT수정 2024. 10. 24. 16:23

기초 개념 잡기 실습은 비주얼 스튜디오에서 진행한다.

 

Visual Studio 기본 세팅

비주얼 스튜디오에서 작업 폴더 실행
확장 탭에서 Live Server 설치
 

Visual Studio 단축키

! + Enter HTML 기본 템플릿 생성
Alt + Z 줄바꿈
태그 * n n개의 태그 생성
Ctrl + / 해당 코드 주석 처리

 

Bootstrap 기초 개념

정적 사이트 동적 사이트
HTML, CSS, 자바스크립트 서버 쪽 프로그래밍 언어
사용자는 개발자가 올려 둔 정보만 확인할 수 있다. 방문자가 로그인을 해서 글을 쓰거나 구매도 할 수 있다.

 

프론트 엔드 백 엔드
실제로 화면에 보이는 영역 서버 쪽에서 실행되는 코드를 작성하는 영역
HTML, CSS, 자바스크립트, 리액트, 앵글러, 뷰 php 라라벨, 자바 스프링부트, 파이썬 장고, 자바스크립트 node.js

 

뷰포트(viewport)

실제 화면에 보이는 영역

단위 설명
vw(viewport width) 뷰포트의 너비 단위
1vw는 뷰포트 너비의 1%를 의미
vh(viewport height) 뷰포트의 높이 단위
1vh는 뷰포트 높이의 1%를 의미

 
예제 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>title</title>
        <link href="css/viewport.css" rel="stylesheet">
    </head>
    <body>
        <p class="percent">단위: %</p>
        <p class="vw">단위: vw</p>
        <p class="vh">단위: vh</p>
    </body>
</html>
body {
    background-color: pink;
    font-size: 30px;
}

.percent {
    font-size: 100%;
}

.vw {
    font-size: 5vw;
}

.vh {
    font-size: 10vh;
}

 
출력 결과

웹 브라우저 사이즈를 조정해 보면 글자 크기가 웹 브라우저 사이즈에 맞춰서 동적으로 변하는 것을 볼 수 있다.

 

Flexbox

HTML 태그는 블록 요소와 인라인 요소로 나누어진다.
Flexbox는 CSS의 레이아웃 모듈 중 하나로, 요소들을 효율적으로 배치하고 정렬하는 데 도움을 준다.

블록 요소 (Block Elements) 인라인 요소 (Inline Elements)
전체 너비를 차지하며,
기본적으로 다음 요소와는 새로운 줄에서 배치
페이지에서 새로운 줄로 시작하거나 끝나지 않으며,
다른 인라인 요소와 함께 같은 줄에 배치

 
예제 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>flexbox</title>
        <link href="css/flexbox.css" rel="stylesheet">
    </head>
    <body>
        <div class="container">
            <div class="flex-item">1</div>
            <div class="flex-item">2</div>
            <div class="flex-item">3</div>
        </div>
    </body>
</html>
.flex-item {
    background-color: aqua;
    width: 100px;
    height: 100px;
    margin: 2px;
}

.container {
    display: flex;
}

 
출력 결과

기본적으로 Flexbox를 사용하려면, 부모 태그의 display를 flex로 설정하면 된다.

 

주축과 교차축

주축과 교차축은 Flexbox에서 요소의 배치 방향과 정렬 방식에 중요한 역할을 한다.

주축(Main axis) 교차축(Cross axis)
수평 방향 주축에 수직인 방향, 세로

 

주축 정렬

justify-content: flex-start; (기본값)

현재 라인의 주축을 따라 플렉스 아이템이 배치되는 배치되는 방식의 기본 동작을 정의한다.
 

 

교차축 정렬

align-items: flex-start; (기본값)

현재 라인의 교차축을 따라 플렉스 아이템이 배치되는 배치되는 방식의 기본 동작을 정의한다.

 
예제 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>flexbox</title>
        <link href="css/flexbox.css" rel="stylesheet">
    </head>
    <body>
        <div class="container">
            <div class="flex-item">1</div>
            <div class="flex-item">2</div>
            <div class="flex-item box3">3</div>
        </div>
    </body>
</html>
.flex-item {
    background-color: aqua;
    width: 100px;
    height: 100px;
    margin: 2px;
}

.container {
    display: flex;
    height: 500px;
    justify-content: space-around;
    border: 1px solid red;
    align-items: baseline;
}

.box3 {
    padding-top: 20px;
}

 
출력 결과

box3에 padding-top을 20px 주어서 크기를 바꾸어 주고, align-items를 baseline값을 주어서 텍스트 라인에 맞춰서 박스가 정렬되었다.

 

개별 아이템 교차축 정렬

align-self: auto; (기본값)

개별 flex 아이템의 교차축 방향에서의 정렬 방식을 설정하는 속성이다.

auto 기본값. 부모의 align-items 속성 값을 따름
flex-start 교차축의 시작 부분에 정렬
flex-end 교차축의 끝 부분에 정렬
center 교차축의 중앙에 정렬
baseline 텍스트의 기준선에 맞춰 정렬
stretch 기본값으로, 교차축 방향으로 가능한 최대 높이 또는 너비로 늘림

 
 

 

아이템 줄 바꿈

flex-wrap: nowrap(기본값);

flex 아이템들이 주축 방향으로 공간이 부족할 때, 어떻게 처리할지를 결정하는 속성이다.

nowrap 기본값. 아이템이 한 줄에 모두 배치되며, 필요할 경우 크기를 줄임
wrap 아이템이 주축 방향으로 공간이 부족하면 다음 줄로 이동
wrap-reverse 아이템이 주축 방향으로 공간이 부족하면 이전 줄로 이동

 

 

주축과 교차축 방향전환

flex-direction: row; (기본값)

주축을 설정하며 그에 따라 flex container에 배치되는 flex item들의 방향이 같이 설정된다.

row 기본값. flex 아이템을 가로로 배치
column flex 아이템을 세로로 배치