ํ์ธ์ด ์ง ๋์ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ฐ๊ฑฐ๋ ํ์ฉํ ์ ์๋ css framework
์ฌ์ฉ์์ css ์ฝ๋์ js ์ฝ๋๋ฅผ ์ ํด์ง ์์น์ ์ฝ์
ํด์ผํจ
container -์ฌ๋ฐฑ์ ์ฃผ๊ณ ์ปจํ
์ธ ๋ฅผ ๋ด๊ธฐ ์ํ ๋น ๋ฅธ ๋ฐฉ๋ฒ
<div class="container">text</div>
container - md , fluid , xs ,etc.
์๋ง์ ๋ถํธ์คํธ๋ฉ ์์๋ค์ด ์์ง๋ง ์ฌ๊ธฐ์๋ ์ผ๋ถ๋ง ๋ค๋ฃฐ ๊ฒ
<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
btn-primary,secondary,success ๋ ์์ ๊ฐ์ด๋ค
class="btn btn-outline-warning , btn-sm,lg ์ด๋ผ๋ ๊ฐ๋ ๋ฑ๋ฑ ์ฌ๋ฌ ์ต์
๋ค์ด ์กด์ฌํ๋ค
๋ชจ๋ ์ธ์ธ์ ์์ผ๋ ํ์ํ ๋ ์ฐพ์์ ์ด๋ค
-Display
class = "display - 1,2,3,4"
ํฐ ํค๋๋ฅผ ๋ง๋๋๋ฐ ์ฌ์ฉ
-Lead
-Blockquotes
-Color Utility
span ์์, badge class, badge ์์ผ๋ก ๊ตฌ์ฑ
Badges can be used as part of links or buttons to provide a counter
ex)Button
<button type="button" class="btn btn-primary">
Notifications
<span class="badge text-bg-secondary">4</span>
</button>
bootstrap์ ์ฌ๋ฌ ์์๋ค์ ์ฐธ๊ณ ํ๋ฉด ์ข์๋ฏ
https://getbootstrap.com/docs/5.3/components/button-group/
https://getbootstrap.com/docs/5.3/components/alerts/
bg , text ๋ฑ utility๋ฅผ ํ์ฉํ ๊ฒ !
๊ทธ๋ฆฌ๋๋ ํ
์ด๋ธ๊ณผ ์ ์ฌํ๊ฒ ํ๋ฉด์ ๋ถํ ํ์ฌ ์ํ๋ ๋ ์ด์์์ ์ก๊ธฐ์ํด ์ ์๋๊ฒ
๊ทธ๋ฆฌ๋๋ ์ฌ์ฏ ๊ฐ์ ๋ฐ์ํ ์ค๋จ์ ๋ณ๋ก ์ปจํ
์ด๋ ๋ฐ ์ฐ ํฌ๊ธฐ ๋ฐ ๋์์ ์ ์ดํจ
https://getbootstrap.com/docs/5.3/layout/grid/#grid-options
container class,row class๋ฅผ ํ์๋ก ํจ
+๋ถํธ์คํธ๋ฉ์ ๋ชจ๋ ํ์๋ ๋ถ๋ฐฐ๋ ๊ณต๊ฐ์ด 12์ ๋์ฉ ์กด์ฌ
ํ์ ์ด์ ๋ง๋ค์ด์ผํจ
<div class="container">
<div class="row">
<div class="col bg-primary">I AM AUTO SIZED</div>
<div class="col bg-secondary">I AM AUTO SIZED</div>
<div class="col-8 bg-primary">I AM NOT AUTO SIZED</div>
</div>
</div>
+) ํฌ๊ธฐ๋ฅผ ์ง์ ๋๋ ๋ถ๋ฐฐํ ์ ์๊ณ ๋ถ๋ฐฐํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ๋๋์ด ๊ฐ์ง
img-fluid class๋ฅผ ํ์ฉํด web์ ํฌ๊ธฐ(์ค๋จ์ )์ ๋ฐ๋ผ ํ๋ฉด์์ img๊ฐ ์ฐจ์งํ๋ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์์
<div class="row">
<div class="col-xl-4 col-md-6">
<img class="img-fluid" src="https://images.unsplash.com/photo-1589595363745-d842812a9db7?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=800&q=60"alt="">
</div>
<div class="col-xl-4 col-md-6">
<img class="img-fluid"src="https://images.unsplash.com/photo-1511692277506-3be3a7ab1686?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=800&q=60"alt="">
</div>
<div class="col-xl-4 col-md-6">
<img class="img-fluid" src="https://images.unsplash.com/photo-1497206365907-f5e630693df0?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=800&q=60"alt="">
</div>
</div>
+) mdํฌ๊ธฐ์ผ ๋๋ ํฉ์ด 18์ ๋์ด๊ธฐ ๋๋ฌธ์ ํ์ด ํ๋ ๋์ด๋จ
+) grid utility (justify-contetnt-x ๋ฑ๋ฑ ์ค๋จ์ ์ง์ ํฌํจ) ์ฌ์ฉ ํ ์ ์์
<div class="container">
<h1 class="display-2">Forms</h1>
<form action="#nowhere">
<div class="form-row">
<div class="form-group col-md-6">
<label for="email">Email</label>
<input type="email" class="form-control" id="email" placeholder="Email">
</div>
<div class="form-group col-md-6">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" placeholder="password">
</div>
</div>
<div class="form-group">
<label for="address">Street Address</label>
<input type="text" class="form-control" id="address" placeholder="923 Chicken Ranch St">
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="city">City</label>
<input type="text" class="form-control" id="city">
</div>
<div class="form-group col-md-3 col-6">
<label for="state">State</label>
<select class="form-control" name="state" id="state">
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
</select>
</div>
<div class="form-group col-md-3 col-6">
<label for="zip">Zip Code</label>
<input type="text" class="form-control" id="zip">
</div>
</div>
<div class="form-group">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="tos">
<label class="custom-control-label" for="tos">Sign Me Up</label>
</div>
</div>
<button type="submit" class="btn btn-success">Register</button>
</form>
</div>
row and form-row difference?
form-row๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ๊ฐ๊ฒฉ์ ์ค์ผ ์ ์์
container display form row์ ์ด์ฉํด์ ๋ค๋ฃจ๊ธฐ ์ฝ๊ฒ ํ๊ณ
col๊ณผ ๊ฐ ์ค๋จ์ ์ ์ด์ฉํด์ ๊ฐ๊ฐ์ ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๋
์ฑ์๋ ์น์ ๋ง๋๋ ๊ฒ
<nav class="navbar navbar-expand-sm navbar-dark bg-primary fixed-top">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" data-toggle="collapse" data-target="#expandme">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="expandme">
<div class="navbar-nav">
<a href="Home" class="nav-item nav-link">Home</a>
<a href="Home" class="nav-item nav-link">About</a>
<a href="Home" class="nav-item nav-link">Contact</a>
</div>
<form class="form-inline ml-auto">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-light my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
- fixed-top์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์คํฌ๋กค์ ๋ด๋ฆด๊ฒฝ์ฐ์ navbar๊ฐ ๋ณด์ด์ง ์์
- collapse navbar-collapse collapse ์์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฒน์น๊ฑฐ๋ ๋๋ฌ๋ด๊ฑฐ๋ ์จ๊ธธ ์ ์์
- navbar-expand-sm ์ด์ฉํ๋ฉด ๋ถํธ์คํธ๋ฉ์ด ์ธ์ collapse์ ๋ฉ์ถ ์ง ์ ํ ์ ์์
- button class= navbar-toggler ๊ทธ๋ฆฌ๊ณ span class= navbar-toggler-icon์ ์ด์ฉํด์
ํ๋ฒ๊ฑฐ ๋ชจ์ ๋ฒํผ์ ๋ง๋ค ์ ์์
๋ฒํผ์ ๋๋ ์ ๋ ๋ฌด์ธ๊ฐ ๋์ค๋ ํจ๊ณผ๋ data-toggle="collapse ์์์ data-target
๊ทธ๋ฆฌ๊ณ collapse navbar-collapse์ id(ํ์ ์์๋ค์ด ํฌํจ๋์ด ์์)๋ฅผ ์ผ์น์์ผ์
์ฐ๊ฒฐ ์์ผ์ผ ํ๋ฉฐ ๊ทธ๋ฆฌ๊ณ js๋ฅผ ์ด์ฉํด์ผ ํจ
- form-line์์ ml-auto๋ ํผ์ ์ผ์ชฝ ์ฌ๋ฐฑ์ ์๋์ผ๋ก ์ค์ ํด์ค ์ฌ๊ธฐ์๋
๊ฒ์์ฐฝ์ด ์ค๋ฅธ์ชฝ์ ๋ถ๊ฒ๋ ํจ
์ฌ๋ฌ ์์ด์ฝ๋ค ์๊ฐ
<svg> ์ ๊ด๋ จ๋ ์ ๋ณด
Font Awesome ์ฌ์ดํธ ์ ๋ณด
css ์์๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ฉํ ์ ์์
Margin
Padding
Display
๊ฐ๋ณ๊ฒ ๋ค๋ฃธ
Card
Carousel - ์ปจํ
์ธ ์ํ ์ฌ๋ผ์ด๋ ์ผ
Dropdown
Spinner
Modal - ๋ํ์ฐฝ์ ๋์ฐ๋ ์์
๋์ ์ธ ๋ถ๋ถ์ ํ์๋ก ํด์ ![](https://velog.velcdn.com/images/ho0010/post/4bd78461-8db8-40c1-b72c-f62f226ae14a/image.jpg)
๋๋ถ๋ถ js์์๋ฅผ ํ์๋ก ํจ