๐ŸŒŠBootstrap

hojuneยท2023๋…„ 8์›” 13์ผ
0

Web Development

๋ชฉ๋ก ๋ณด๊ธฐ
11/33


ํƒ€์ธ์ด ์งœ ๋†“์€ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ์“ฐ๊ฑฐ๋‚˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” css framework

โ˜”Bootstrap

์‚ฌ์šฉ์‹œ์— css ์ฝ”๋“œ์™€ js ์ฝ”๋“œ๋ฅผ ์ •ํ•ด์ง„ ์œ„์น˜์— ์‚ฝ์ž…ํ•ด์•ผํ•จ


container -์—ฌ๋ฐฑ์„ ์ฃผ๊ณ  ์ปจํ…์ธ ๋ฅผ ๋‹ด๊ธฐ ์œ„ํ•œ ๋น ๋ฅธ ๋ฐฉ๋ฒ•

<div class="container">text</div>

container - md , fluid , xs ,etc.

์ˆ˜๋งŽ์€ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์š”์†Œ๋“ค์ด ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ์ผ๋ถ€๋งŒ ๋‹ค๋ฃฐ ๊ฒƒ

๐ŸŒˆBootstrap button

<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  ์ด๋ผ๋Š” ๊ฐ’๋„ ๋“ฑ๋“ฑ ์—ฌ๋Ÿฌ ์˜ต์…˜๋“ค์ด ์กด์žฌํ•œ๋‹ค

๋ชจ๋‘ ์™ธ์šธ์ˆ˜ ์—†์œผ๋‹ˆ ํ•„์š”ํ• ๋•Œ ์ฐพ์•„์„œ ์“ด๋‹ค

๐ŸŒˆTypography

-Display
 class = "display - 1,2,3,4"
 ํฐ ํ—ค๋”๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์‚ฌ์šฉ

-Lead

-Blockquotes 

-Color Utility

๐ŸŒˆBadge

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>

๐Ÿ’งButton group, Alert

bootstrap์˜ ์—ฌ๋Ÿฌ ์˜ˆ์‹œ๋“ค์„ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„๋“ฏ
https://getbootstrap.com/docs/5.3/components/button-group/
https://getbootstrap.com/docs/5.3/components/alerts/

bg , text ๋“ฑ utility๋ฅผ ํ™œ์šฉํ•  ๊ฒƒ !

๐Ÿ’งGrid system

๊ทธ๋ฆฌ๋“œ๋Š” ํ…Œ์ด๋ธ”๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ํ™”๋ฉด์„ ๋ถ„ํ• ํ•˜์—ฌ ์›ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์„ ์žก๊ธฐ์œ„ํ•ด ์ •์˜๋œ๊ฒƒ
๊ทธ๋ฆฌ๋“œ๋Š” ์—ฌ์„ฏ ๊ฐœ์˜ ๋ฐ˜์‘ํ˜• ์ค‘๋‹จ์ ๋ณ„๋กœ ์ปจํ…Œ์ด๋„ˆ ๋ฐ ์—ฐ ํฌ๊ธฐ ๋ฐ ๋™์ž‘์„ ์ œ์–ดํ•จ
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>
+) ํฌ๊ธฐ๋ฅผ ์ง€์ • ๋˜๋Š” ๋ถ„๋ฐฐํ•  ์ˆ˜ ์žˆ๊ณ  ๋ถ„๋ฐฐํ•˜์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ€์ง

๐ŸŒŠResponsive Bootstrap Grid

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 ๋“ฑ๋“ฑ ์ค‘๋‹จ์  ์ง€์ • ํฌํ•จ) ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Œ

๐ŸŒŠBootstrap Forms

    <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๊ณผ ๊ฐ ์ค‘๋‹จ์ ์„ ์ด์šฉํ•ด์„œ ๊ฐ๊ฐ์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ๊ฐ€๋…์„ฑ์žˆ๋Š” ์›น์„ ๋งŒ๋“œ๋Š” ๊ฒƒ

๐ŸŒŠBootstrap Navbar

   <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๋Š” ํผ์˜ ์™ผ์ชฝ ์—ฌ๋ฐฑ์„ ์ž๋™์œผ๋กœ ์„ค์ •ํ•ด์คŒ ์—ฌ๊ธฐ์„œ๋Š”
  ๊ฒ€์ƒ‰์ฐฝ์ด ์˜ค๋ฅธ์ชฝ์— ๋ถ™๊ฒŒ๋” ํ•จ

๐Ÿ’งBootstrap Icon

์—ฌ๋Ÿฌ ์•„์ด์ฝ˜๋“ค ์†Œ๊ฐœ

<svg> ์™€ ๊ด€๋ จ๋œ ์ •๋ณด

Font Awesome ์‚ฌ์ดํŠธ ์ •๋ณด

๐ŸŒŠBootstrap Utility

css ์š”์†Œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Œ

Margin
Padding
Display

๊ฐ€๋ณ๊ฒŒ ๋‹ค๋ฃธ

๐ŸŒŠ์ถ”๊ฐ€๋กœ ์†Œ๊ฐœํ•ด์ฃผ๋Š” ์š”์†Œ

Card
Carousel - ์ปจํ…์ธ  ์ˆœํ™˜ ์Šฌ๋ผ์ด๋“œ ์‡ผ
Dropdown
Spinner
Modal - ๋Œ€ํ™”์ฐฝ์„ ๋„์šฐ๋Š” ์š”์†Œ

๋™์ ์ธ ๋ถ€๋ถ„์„ ํ•„์š”๋กœ ํ•ด์„œ ![](https://velog.velcdn.com/images/ho0010/post/4bd78461-8db8-40c1-b72c-f62f226ae14a/image.jpg)
๋Œ€๋ถ€๋ถ„ js์š”์†Œ๋ฅผ ํ•„์š”๋กœ ํ•จ

0๊ฐœ์˜ ๋Œ“๊ธ€