🎨 Frontend/HTML & CSS

CSS ⑨ Bootstrap(λΆ€νŠΈμŠ€νŠΈλž©)

kongmi 2023. 3. 21. 18:30

λΆ€νŠΈμŠ€νŠΈλž©?

  • Twitterμ—μ„œ κ°œλ°œν•œ HTML, CSS, JavaScript둜 이루어진 μ˜€ν”ˆ μ†ŒμŠ€ ν”„λ ˆμž„μ›Œν¬ μž…λ‹ˆλ‹€.
  • μ›Ή νŽ˜μ΄μ§€ λ ˆμ΄μ•„μ›ƒ, λ²„νŠΌ, 폼, νƒ€μ΄ν¬κ·Έλž˜ν”Ό λ“±μ˜ λ‹€μ–‘ν•œ UI μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ°˜μ‘ν˜• μ›Ή λ””μžμΈμ„ μ§€μ›ν•˜λ―€λ‘œ λͺ¨λ°”일 κΈ°κΈ°μ—μ„œλ„ μ›Ή νŽ˜μ΄μ§€κ°€ μ μ ˆν•˜κ²Œ ν‘œμ‹œλ©λ‹ˆλ‹€.
  • μ˜€ν”ˆ μ†ŒμŠ€λ‘œ λ°°ν¬λ˜μ–΄ 있으며, 무료둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λΆ€νŠΈμŠ€νŠΈλž©μ„ μ΄μš©ν•˜λ©΄ λΉ λ₯΄κ³  μ‰½κ²Œ κΉ”λ”ν•˜κ³  λͺ¨λ˜ν•œ UIλ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

νŠΉμ§•

  1. λ°˜μ‘ν˜• μ›Ή λ””μžμΈ 지원 : λͺ¨λ°”일 κΈ°κΈ°μ—μ„œλ„ μ μ ˆν•˜κ²Œ μ›Ή νŽ˜μ΄μ§€κ°€ ν‘œμ‹œλ˜λ„λ‘ λ°˜μ‘ν˜• μ›Ή λ””μžμΈμ„ μ§€μ›ν•©λ‹ˆλ‹€.
  2. λ‹€μ–‘ν•œ UI μ»΄ν¬λ„ŒνŠΈ : λ ˆμ΄μ•„μ›ƒ, λ²„νŠΌ, 폼, νƒ€μ΄ν¬κ·Έλž˜ν”Ό λ“± λ‹€μ–‘ν•œ UI μ»΄ν¬λ„ŒνŠΈλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  3. μ‰¬μš΄ μ‚¬μš©μ„± : λ¬Έμ„œμ™€ 예제 μ½”λ“œκ°€ ν’λΆ€ν•˜κ²Œ μ œκ³΅λ˜μ–΄, μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  4. 크둜슀 λΈŒλΌμš°μ§• : λ‹€μ–‘ν•œ λΈŒλΌμš°μ €μ—μ„œ μΌκ΄€λœ λ””μžμΈμ„ μ œκ³΅ν•˜μ—¬ 크둜슀 λΈŒλΌμš°μ§•μ„ μ§€μ›ν•©λ‹ˆλ‹€.
  5. λ‹€μ–‘ν•œ ν…Œλ§ˆ : λ‹€μ–‘ν•œ ν…Œλ§ˆλ₯Ό μ œκ³΅ν•˜μ—¬, μ‚¬μš©μžκ°€ μ μ ˆν•œ λ””μžμΈμ„ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.
  6. μ˜€ν”ˆ μ†ŒμŠ€ : μ˜€ν”ˆ μ†ŒμŠ€λ‘œ λ°°ν¬λ˜μ–΄ 있으며, 무료둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  7. μ»€μŠ€ν„°λ§ˆμ΄μ§• κ°€λŠ₯ : μ‚¬μš©μžμ˜ μ·¨ν–₯에 맞게 μ»΄ν¬λ„ŒνŠΈλ₯Ό μˆ˜μ •ν•˜κ±°λ‚˜, ν•„μš”ν•œ μ»΄ν¬λ„ŒνŠΈλ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  8. 검색 μ—”μ§„ μ΅œμ ν™”(SEO) 지원 : 검색 μ—”μ§„ μ΅œμ ν™”λ₯Ό κ³ λ €ν•˜μ—¬ μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

https://getbootstrap.kr/

 

Bootstrap

κ°•λ ₯ν•˜κ³  ν™•μž₯ κ°€λŠ₯ν•˜λ©° κΈ°λŠ₯이 ν’λΆ€ν•œ ν”„λ‘ νŠΈμ—”λ“œ νˆ΄ν‚·. Sass둜 λΉŒλ“œ 및 μ»€μŠ€ν„°λ§ˆμ΄μ§•ν•˜κ³ , 사전 λΉŒλ“œλœ κ·Έλ¦¬λ“œ μ‹œμŠ€ν…œ 및 ꡬ성 μš”μ†Œλ₯Ό ν™œμš©ν•˜κ³ , κ°•λ ₯ν•œ JavaScript ν”ŒλŸ¬κ·ΈμΈμœΌλ‘œ ν”„λ‘œμ νŠΈμ— 생기

getbootstrap.kr

제곡 μš”μ†Œ

  1. Grid System: μœ μ—°ν•œ λ ˆμ΄μ•„μ›ƒμ„ λ§Œλ“€κΈ° μœ„ν•œ κ·Έλ¦¬λ“œ μ‹œμŠ€ν…œμ„ μ œκ³΅ν•©λ‹ˆλ‹€. 이λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‰½κ²Œ λ‹€μ–‘ν•œ λ””λ°”μ΄μŠ€μ— λŒ€μ‘ν•˜λŠ” λ°˜μ‘ν˜• μ›Ήμ‚¬μ΄νŠΈλ₯Ό ꡬ좕할 수 μžˆμŠ΅λ‹ˆλ‹€.
  2. Typography: λ‹€μ–‘ν•œ κΈ€κΌ΄, ν…μŠ€νŠΈ μŠ€νƒ€μΌ 및 ν…μŠ€νŠΈ 효과λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  3. Forms: 폼 μš”μ†Œλ₯Ό λ””μžμΈν•˜λŠ”λ° 도움이 λ˜λŠ” ν΄λž˜μŠ€μ™€ μŠ€νƒ€μΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  4. Buttons: λ²„νŠΌμ„ λ§Œλ“œλŠ” 데 μ‚¬μš©λ˜λŠ” ν΄λž˜μŠ€μ™€ μŠ€νƒ€μΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  5. Navigation: λ‹€μ–‘ν•œ 탐색 메뉴λ₯Ό λ””μžμΈν•˜λŠ”λ° 도움이 λ˜λŠ” ν΄λž˜μŠ€μ™€ μŠ€νƒ€μΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  6. Modal: λͺ¨λ‹¬ 창을 λ””μžμΈν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” ν΄λž˜μŠ€μ™€ μŠ€νƒ€μΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  7. Alerts: λ‹€μ–‘ν•œ κ²½κ³  λ©”μ‹œμ§€λ₯Ό λ””μžμΈν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” ν΄λž˜μŠ€μ™€ μŠ€νƒ€μΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  8. Icons: λ‹€μ–‘ν•œ μ•„μ΄μ½˜ ν°νŠΈμ™€ μ•„μ΄μ½˜ 클래슀λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  9. Images: 이미지 크기 μ‘°μ •, μ›ν˜• 이미지, 썸넀일 λ“±μ˜ ν΄λž˜μŠ€μ™€ μŠ€νƒ€μΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  10. JavaScript plugins: μŠ¬λΌμ΄λ“œμ‡Ό, λͺ¨λ‹¬ μ°½, λ“œλ‘­λ‹€μš΄ 메뉴 λ“±κ³Ό 같은 μžλ°”μŠ€ν¬λ¦½νŠΈ ν”ŒλŸ¬κ·ΈμΈμ„ μ œκ³΅ν•©λ‹ˆλ‹€.

μ‚¬μš© 방법

CSS 적용

<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">

JavaScript 적용

<!-- JavaScript Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin="anonymous"></script>

λΉ λ₯Έ μ‹œμž‘

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap demo</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
  </head>
  <body>
    <h1>Hello, world!</h1>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin="anonymous"></script>
  </body>
</html>

νšŒμ›κ°€μž… νŽ˜μ΄μ§€ 간단 예제

<!DOCTYPE html>
<html>
<head>
	<title>νšŒμ›κ°€μž… νŽ˜μ΄μ§€</title>
	<!-- λΆ€νŠΈμŠ€νŠΈλž© CDN μΆ”κ°€ν•˜κΈ° -->
    <!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>
<body>
	<div class="container">
		<h1>νšŒμ›κ°€μž…</h1>
		<form>
			<div class="form-group">
				<label for="inputName">이름</label>
				<input type="text" class="form-control" id="inputName" placeholder="이름을 μž…λ ₯ν•˜μ„Έμš”">
			</div>
			<div class="form-group">
				<label for="inputEmail">이메일</label>
				<input type="email" class="form-control" id="inputEmail" placeholder="이메일을 μž…λ ₯ν•˜μ„Έμš”">
			</div>
			<div class="form-group">
				<label for="inputPassword">λΉ„λ°€λ²ˆν˜Έ</label>
				<input type="password" class="form-control" id="inputPassword" placeholder="λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜μ„Έμš”">
			</div>
			<div class="form-group">
				<label for="inputPassword2">λΉ„λ°€λ²ˆν˜Έ 확인</label>
				<input type="password" class="form-control" id="inputPassword2" placeholder="λΉ„λ°€λ²ˆν˜Έλ₯Ό λ‹€μ‹œ μž…λ ₯ν•˜μ„Έμš”">
			</div>
            <br>
			<button type="submit" class="btn btn-primary">νšŒμ›κ°€μž…</button>
		</form>
	</div>
    <!-- JavaScript Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" 
integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" 
crossorigin="anonymous"></script>
</body>
</html>