CSS ๊ธฐ์ดˆ

Updated:

Categories:

Tags: , ,

๐Ÿ“Œ ๊ฐœ์ธ์ ์ธ ๊ณต๊ฐ„์œผ๋กœ ๊ณต๋ถ€๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋ณต์Šตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
์ •ํ™•ํ•˜์ง€ ์•Š์€ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ๋ฐ”๋ž๋‹ˆ๋‹ค :๐Ÿ˜ธ
[ํ‹€๋ฆฐ ๋‚ด์šฉ์€ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๋ณต๋ฐ›์œผ์‹ค๊ฑฐ์—์š”]

[์˜ค๋Š˜์˜ ๊ธฐ๋ก]
๋ง๋กœ๋งŒ ๋“ค์—ˆ๋˜ css๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ๋Š”๋ฐ ์‰ฌ์šด๋“ฏ ์–ด๋ ค์šด๋“ฏํ•˜๋‹ค ์•ฝ๊ฐ„ ๋…ธ๊ฐ€๋‹ค ๊ฐ™์€ ๋А๋‚Œ
๋ฐฑ์—”๋“œ๊ฐ€ ๋ฉ”์ธ์ด๋ผ ๋ฐ”๋กœ ํ›…ํ›… ์ง€๋‚˜๊ฐ€์ง€๋งŒ ๊นŠ๊ฒŒ ๋ฐฐ์›Œ๋ณด๋ฉด ์žฌ๋ฐŒ์ง€ ์•Š์„๊นŒ..?

HTML์˜ ํƒœ๊ทธ๋ฅผ ์ž˜ ์„ ํƒํ•˜์—ฌ ๊พธ๋ฉฐ์ค˜์•ผํ•˜๋‹ค๋ณด๋‹ˆ ์„ ํƒ์ž๊ฐ€ ์ œ์ผ ์ค‘์š”ํ•˜๋‹ˆ ์„ ํƒ์ž๋Š” ๊ผญ๊ผญ ๋ณต์Šตํ•˜๊ธฐ.

CSS๋ž€ ?

CSS ๋Š” ์›น ํŽ˜์ด์ง€ ์Šคํƒ€์ผ ๋ฐ ๋ ˆ์ด์•„์›ƒ์„ ์ •์˜ํ•˜๋Š” ์Šคํƒ€์ผ์‹œํŠธ ์–ธ์–ด

  • HTML๋กœ ์›น ํŽ˜์ด์ง€์˜ ๊ตฌ์กฐ๋ฅผ ์ž˜ ์„ธ์šฐ๊ณ  ๋‚˜์„œ, ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX, user experience)์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•จ
  • CSS๋กœ UI ๋ฐ ๋ ˆ์ด์•„์›ƒ์„ ์ ์ ˆํžˆ ๊ตฌ์„ฑํ•˜๋ฉด ๋ฉ‹์ง„ ์›น ํŽ˜์ด์ง€๋ฅผ ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Œ

BOX

block inline-block inline
์ค„ ๋ฐ”๊ฟˆ ์—ฌ๋ถ€ ์ค„ ๋ฐ”๊ฟˆ์ด ์ผ์–ด๋‚จ ์ค„ ๋ฐ”๊ฟˆ์ด ์ผ์–ด๋‚˜์ง€ ์•Š์Œ
๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ–๋Š” ๋„ˆ๋น„(width) 100% ๊ธ€์ž๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋งŒํผ
width, height ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๊ฐ€๋Šฅ ๊ฐ€๋Šฅ

![Untitled]

ID์™€ Class ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ ์˜ˆ์ œ

  1. id๋กœ ์ด๋ฆ„ ๋ถ™์—ฌ์„œ ์Šคํƒ€์ผ๋ง ์ ์šฉํ•˜๊ธฐ
    1. ex) html ์š”์†Œ ์ค‘ ํ•˜๋‚˜์ธ <h4>์— ์ƒ‰์ƒ ์ ์šฉ

      1
      2
      3
      
       h4 {
         color: red;
       }
      

      Untitled

      Untitled

      1. ์˜๋„์™€๋Š” ๋‹ค๋ฅด๊ฒŒ navigation๋ฟ๋งŒ ์•„๋‹ˆ๋ผ aside์—๋„ ์ ์šฉ๋จ
      2. <h4> ์š”์†Œ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด ์—˜๋ฆฌ๋จผํŠธ์— id๋ฅผ ๋ถ™์—ฌ์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ
      3. id๊ฐ€ ์žˆ๋Š” ์š”์†Œ๋ฅผ ์„ ํƒํ•  ๋•Œ๋Š” #๊ธฐํ˜ธ๋ฅผ ์ด์šฉ
      4. html์— ์ ์šฉ

        1
        
         <h4 id="navigation-title">This is the navigation section.</h4>
        
      5. CSS์— ์ ์šฉ

        1
        2
        3
        
         #navigation-title {
           color: red;
         }
        
  2. Class๋กœ ์Šคํƒ€์ผ์„ ๋ถ„๋ฅ˜ํ•˜์—ฌ ์ ์šฉ : ํ•˜๋‚˜์˜ class๋ฅผ ์—ฌ๋Ÿฌ ์š”์†Œ์— ์ ์šฉ
    1. navigation section์˜ ์ž์‹ <li> ์š”์†Œ์— ๋ฐ‘์ค„์น˜๊ธฐ

      1
      2
      3
      
      li {
        text-decoration: underline;
      }
      
      1. ๋ชจ๋“  li ์š”์†Œ์— ๋ฐ‘์ค„ ์ ์šฉ๋จ

        Untitled

    2. navigation section์˜ ๋ชจ๋“  <li> ์š”์†Œ์— id๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  CSS๋ฅผ ์ ์šฉ

      1
      2
      3
      4
      5
      6
      7
      
      <!-- ์ž˜๋ชป๋œ ์˜ˆ์ œ -->
      <ul>
        <li id="menu-item">Home</li>
        <li id="menu-item">Mac</li>
        <li id="menu-item">iPhone</li>
        <li id="menu-item">iPad</li>
      </ul>
      
      1. id๋Š” ๋ฌธ์„œ ๋‚ด์— ๋‹จ ํ•˜๋‚˜์˜ ์š”์†Œ์—๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์ด๋ฆ„์ด์–ด์•ผ ํ•จ. ๋”ฐ๋ผ์„œ ์ด ์˜ˆ์ œ๋Š” id๋ฅผ ์ž˜๋ชป ์‚ฌ์šฉํ•œ ์˜ˆ์ œ
    3. navigation section์˜ ๋ชจ๋“  <li> ์š”์†Œ์— class๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  CSS๋ฅผ ์ ์šฉ

      1. ์—ฌ๋Ÿฌ ์š”์†Œ์— ๊ฐ™์€ ์Šคํƒ€์ผ๋ง์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” class๋ฅผ ์‚ฌ์šฉ

        1
        2
        3
        4
        5
        6
        7
        
         <!-- ๋ฐ”๋ฅธ ์˜ˆ์ œ -->
         <ul>
           <li class="menu-item">Home</li>
           <li class="menu-item">Mac</li>
           <li class="menu-item">iPhone</li>
           <li class="menu-item">iPad</li>
         </ul>
        
      2. class menu-item์„ ์„ ํƒํ•˜์—ฌ ๋ฐ‘์ค„์„ ์ ์šฉ

        1
        2
        3
        
         .menu-item {
           text-decoration: underline;
         }
        
  3. ์—ฌ๋Ÿฌ ๊ฐœ์˜ class๋ฅผ ํ•˜๋‚˜์˜ ์—˜๋ฆฌ๋จผํŠธ์— ์ ์šฉํ•˜๊ธฐ
    • ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜, ์š”์†Œ์— ์Šคํƒ€์ผ๋ง์„ ์ ์šฉํ•  ๋•Œ๋Š” ํ•ญ์ƒ ์ด๋ฆ„๊ณผ ๋ชฉ์ ์ด ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ
      1. ํ•˜๋‚˜์˜ ์š”์†Œ์— ์—ฌ๋Ÿฌ class๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
      1
      
        <li class="menu-item selected">Home</li>
      
    1. ํŠน์ • ํด๋ž˜์Šค(selected)๋ฅผ ํ†ตํ•ด ์š”์†Œ๋ฅผ ์Šคํƒ€์ผ๋งํ•˜๋Š” ๋ชจ์Šต

      1
      2
      3
      4
      
       .selected {
         font-weight: bold;
         color: #009999;
       }
      

      ์™œ menu-item selected๊ฐ€ ์•„๋‹Œ์ง€ ๊ถ๊ธˆํ–ˆ๋Š”๋ฐ.menu-item selected๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ›„์† ํƒœ๊ทธ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž˜๋ชป๋œ ํ˜•ํƒœ์ด๊ณ , .menu-item.selected๋‚˜ .selected๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

</br> </br>

์ ˆ๋Œ€๋‹จ์œ„ ์ƒ๋Œ€๋‹จ์œ„

๊ธ€๊ผด ํฌ๊ธฐ, ํ™”๋ฉด ํฌ๊ธฐ ๋“ฑ ํฌ๊ธฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” ํฌ๊ธฐ์˜ ๋‹จ์œ„๊ฐ€ ๋ฌด์—‡๋ณด๋‹ค ์ค‘์š”,

ํฌ๊ธฐ์˜ ๋‹จ์œ„๋Š” ์ ˆ๋Œ€ ๋‹จ์œ„์™€ ์ƒ๋Œ€ ๋‹จ์œ„, ๋‘ ๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„

  • ์ ˆ๋Œ€ ๋‹จ์œ„: px, pt
  • ์ƒ๋Œ€ ๋‹จ์œ„: %, em, rem, ch, vw, vh ๋“ฑ
  1. ๊ธฐ๊ธฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์ด์ฆˆ ๋“ฑ์˜ ํ™˜๊ฒฝ์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ์ ˆ๋Œ€์ ์ธ ํฌ๊ธฐ โ‡’px : ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋œ ์ ˆ๋Œ€ ๋‹จ์œ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ์ ‘๊ทผ์„ฑ์ด ๋ถˆ๋ฆฌ
    1. ํ”ฝ์…€์€ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์ฒ˜๋Ÿผ ์ž‘์€ ํ™”๋ฉด์ด๋ฉด์„œ, ๋™์‹œ์— ๊ณ ํ•ด์ƒ๋„์ธ ๊ฒฝ์šฐ์—๋„ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ ์ƒ๋Œ€ ๋‹จ์œ„์ธ rem์„ ์ถ”์ฒœ.
    1. root์˜ ๊ธ€์ž ํฌ๊ธฐ, ์ฆ‰ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ๊ธ€์ž ํฌ๊ธฐ๊ฐ€ 1rem์ด๋ฉฐ, ๋‘ ๋ฐฐ๋กœ ํฌ๊ฒŒ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด 2rem, ์ž‘๊ฒŒ ํ•˜๋ ค๋ฉด 0.8rem ๋“ฑ์œผ๋กœ ์กฐ์ ˆํ•ด์„œ ์‚ฌ์šฉ
    2. em์€ ๋ถ€๋ชจ ์—˜๋ฆฌ๋จผํŠธ์— ๋”ฐ๋ผ ์ƒ๋Œ€์ ์œผ๋กœ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฏ€๋กœ ๊ณ„์‚ฐ์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
    3. ์ด์— ๋น„ํ•ด rem์€ root์˜ ๊ธ€์ž ํฌ๊ธฐ์— ๋”ฐ๋ผ์„œ๋งŒ ์ƒ๋Œ€์ ์œผ๋กœ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค.)
  3. ํ™”๋ฉด ์‚ฌ์ด์ฆˆ๋ฅผ ์ •ํ•  ๋•Œ
    1. ๋ฐ˜์‘ํ˜• ์›น(responsive web)์—์„œ ๊ธฐ์ค€์ ์„ ๋งŒ๋“ค ๋•Œ
      1. ๋ฐ˜์‘ํ˜• ์›น์€ ๋””๋ฐ”์ด์Šค์˜ ๋„ˆ๋น„(width)์— ๋”ฐ๋ผ ์œ ๋™์ ์ธ ๋ ˆ์ด์•„์›ƒ์ด ์ ์šฉ๋˜๋Š” ์›น์‚ฌ์ดํŠธ
      2. ๋””๋ฐ”์ด์Šค ํฌ๊ธฐ๋ณ„๋กœ CSS๋ฅผ ๋‹ฌ๋ฆฌ ์ ์šฉํ•ด์•ผ ํ•จ โ‡’ ์ด๋•Œ, ๋””๋ฐ”์ด์Šค ํฌ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์„ ๋ณดํ†ต px๋กœ ์ •ํ•จ
    2. ํ™”๋ฉด ๋„ˆ๋น„๋‚˜ ๋†’์ด์— ๋”ฐ๋ฅธ ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ๊ฐ€ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ
      1. ์ด๋•Œ์—๋Š” vw, vh๋ฅผ ์‚ฌ์šฉ โ‡’ ๊ฐ๊ฐ viewport width์™€ viewport height๋ฅผ ๋œป
      2. 1vw๋Š” ๋ณด์ด๋Š” ์˜์—ญ ๋„ˆ๋น„์˜ 1/100์„, 1vh๋Š” ๋ณด์ด๋Š” ์˜์—ญ ๋†’์ด์˜ 1/100์„ ๋œป
      3. ํ™”๋ฉด์„ ๊ฐ€๋“ ์ฑ„์šฐ๋ฉฐ ๋”ฑ ๋–จ์–ด์ง€๊ฒŒ ์Šคํฌ๋กค๋˜๋Š” ์‚ฌ์ดํŠธ โ†’ ์ด๋Ÿฐ ์›น ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด 100vw, 100vh๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•œ ๊ฒƒ
      4. ์ฐธ๊ณ ๋กœ <body> ํƒœ๊ทธ์—์„œ์˜ %๋Š” HTML์ด ์ฐจ์ง€ํ•˜๋Š” ๋ชจ๋“  ์˜์—ญ, ์ฆ‰ ์ง€๊ธˆ์€ ๋ณด์ด์ง€ ์•Š์œผ๋‚˜ ์Šคํฌ๋กคํ–ˆ์„ ๋•Œ ๋ณด์ด๋Š” ์˜์—ญ๊นŒ์ง€ ํฌํ•จํ–ˆ์„ ๋•Œ ๋น„์œจ

</br> </br>

Selector

๊ธฐ๋ณธ ์„ ํƒ์ž

  1. ์ „์ฒด ์„ ํƒ์ž

    1
    
     * { }
    
  2. ํƒœ๊ทธ ์„ ํƒ์ž : ๊ฐ™์€ ํƒœ๊ทธ๋ช…์„ ๊ฐ€์ง„ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์„ ํƒ, ๋ณต์ˆ˜๋กœ๋„ ์„ ํƒ๊ฐ€๋Šฅ

    1
    2
    3
    4
    
     h1 { }
     div { }
        
     section, h1 { }
    
  3. ID ์„ ํƒ์ž : #id

    1
    
     #only { }
    
  4. Class ์„ ํƒ์ž : .class๋กœ ์ž…๋ ฅํ•˜์—ฌ ์„ ํƒ, ๊ฐ™์€ class๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์„ ํƒ

    1
    2
    
     .widget { }
     .center { }
    
  5. attribute ์„ ํƒ์ž: ๊ฐ™์€ ์†์„ฑ์„ ๊ฐ€์ง„ ์š”์†Œ๋ฅผ ์„ ํƒ

    1
    2
    3
    4
    5
    6
    7
    
     a[href] { }
     p[id="only"] { }
     p[class~="out"] { }
     p[class|="out"] { }
     section[id^="sect"] { }
     div[class$="2"] { }
     div[class*="w"] { }
    

์ž์‹/ํ›„์†/ํ˜•์ œ ์„ ํƒ์ž

  1. ์ž์‹ ์„ ํƒ์ž
    1. ์ฒซ ๋ฒˆ์งธ๋กœ ์ž…๋ ฅํ•œ ์š”์†Œ์˜ ๋ฐ”๋กœ ์•„๋ž˜ ์ž์‹์ธ ์š”์†Œ๋ฅผ ์„ ํƒ
    2. <header> ์š”์†Œ ๋ฐ”๋กœ ์•„๋ž˜์— ์žˆ๋Š” ๋‘ ๊ฐœ์˜ <div> ์š”์†Œ๋Š” ์„ ํƒ๋˜์ง€๋งŒ, <p> ์š”์†Œ์˜ ์ž์‹์ธ <div> ์š”์†Œ๋Š” ์„ ํƒ๋˜์ง€ ์•Š์Œ

      1
      
       header > div { }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      
       <header>
       	<div> <!-- ์„ ํƒ -->
       		<p>
       			<div></div>
       		</p>
       	</div>
       	<div> <!-- ์„ ํƒ -->
       		<p>
       			<div></div>
       		</p>
       	</div>
       </header>
      
  2. ํ›„์† ์„ ํƒ์ž : ์ฒซ ๋ฒˆ์งธ๋กœ ์ž…๋ ฅํ•œ ์š”์†Œ์˜ ํ›„์†์„ ์„ ํƒ
    1. <header> ์š”์†Œ์˜ ์ž์‹์ธ <div> ์š”์†Œ๋ฟ ์•„๋‹ˆ๋ผ, <p> ์š”์†Œ์˜ ์ž์‹์ธ <div> ์š”์†Œ๊นŒ์ง€ ๋ชจ๋‘ ์„ ํƒ

      1
      
       header div {}
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      
       <header>
       	<div><!-- ์„ ํƒ -->
       		<p>
       			<div><!-- !!์„ ํƒ!! -->
       			</div>
       		</p>
       	</div>
       	<div><!-- ์„ ํƒ -->
       		<p>
       			<div><!-- !!์„ ํƒ!! -->
       			</div>
       		</p>
       	</div>
       </header>
      
  3. ํ˜•์ œ ์„ ํƒ์ž : ๊ฐ™์€ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๊ณต์œ ํ•˜๋ฉด์„œ, ์ฒซ ๋ฒˆ์งธ ์ž…๋ ฅํ•œ ์š”์†Œ ๋’ค์— ์˜ค๋Š” ๋‘ ๋ฒˆ์งธ ์ž…๋ ฅํ•œ ์š”์†Œ๋ฅผ ๋ชจ๋‘ ์„ ํƒ

    1
    
     section ~ p { }
    
    1
    2
    3
    4
    5
    6
    
     <header>
     	<section></section>
     	<p></p> <!-- ์„ ํƒ -->
     	<p></p> <!-- ์„ ํƒ -->
     	<p></p> <!-- ์„ ํƒ -->
     </header>
    
  4. ์ธ์ ‘ ํ˜•์ œ ์„ ํƒ์ž

    1
    
     section + p { }
    
    1
    2
    3
    4
    5
    6
    
     <header>
     	<section></section>
     	<p></p> <!-- ์„ ํƒ -->
     	<p></p>
     	<p></p>
     </header>
    

๊ธฐํƒ€ ์„ ํƒ์ž

  1. ๊ฐ€์ƒ ํด๋ž˜์Šค ์„ ํƒ์ž

    1
    2
    3
    4
    5
    
     a:link { } /*์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ <a>์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์ƒํƒœ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํŽ˜์ด์ง€๊ฐ€ ์ฒ˜์Œ ๋กœ๋“œ๋˜์—ˆ์„ ๋•Œ ๋งํฌ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.*/
     a:visited { } /*์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฉ๋ฌธํ•œ <a>์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฉ๋ฌธํ•œ ๋งํฌ๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์Šคํƒ€์ผ์„ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.*/
     a:hover { } /* ๋งˆ์šฐ์Šค๋ฅผ ์š”์†Œ ์œ„์— ์˜ฌ๋ ธ์„ ๋•Œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     a:active { } /* ํ™œ์„ฑํ™” ๋œ(ํด๋ฆญ๋œ) ์ƒํƒœ์ผ ๋•Œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     a:focus { } /* ํฌ์ปค์Šค๊ฐ€ ๋“ค์–ด์™€ ์žˆ์„ ๋•Œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.  ํฌ์ปค์Šค๋Š” ํ‚ค๋ณด๋“œ๋กœ ๋งํฌ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: ํƒญ ํ‚ค ์‚ฌ์šฉ)*/
    
  2. UI ์š”์†Œ ์ƒํƒœ ์„ ํƒ์ž

    1
    2
    3
    
     input:checked + span { } /*์ฒดํฌ ์ƒํƒœ์ผ ๋•Œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     input:enabled + span { } /*์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ผ ๋•Œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     input:disabled + span { } /*์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ผ ๋•Œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
    
  3. ๊ตฌ์กฐ ๊ฐ€์ƒ ํด๋ž˜์Šค ์„ ํƒ์ž

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    
     p:first-child { } /* ์…€๋ ‰ํ„ฐ๋Š” ๋ถ€๋ชจ ์š”์†Œ์˜ ์ฒซ ๋ฒˆ์งธ ์ž์‹ ์š”์†Œ๊ฐ€ <p>์ผ ๋•Œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
        
     ul > li:last-child { } /* ul ์š”์†Œ์˜ ๋งˆ์ง€๋ง‰ ์ž์‹์ธ li ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <ul>
         <li>์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
         <li>๋‘ ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
         <li>๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ</li>
     </ul>
        
     ul > li:nth-child(2n) { } /* ul ์š”์†Œ์˜ ์ง์ˆ˜ ๋ฒˆ์งธ ์ž์‹์ธ li ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <ul>
         <li>์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
         <li>๋‘ ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
         <li>์„ธ ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
         <li>๋„ค ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
     </ul>
        
     section > p:nth-child(2n+1) { } /*  section ์š”์†Œ์˜ ํ™€์ˆ˜ ๋ฒˆ์งธ ์ž์‹์ธ p ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <section>
         <p>์ฒซ ๋ฒˆ์งธ ๋‹จ๋ฝ</p>
         <p>๋‘ ๋ฒˆ์งธ ๋‹จ๋ฝ</p>
         <p>์„ธ ๋ฒˆ์งธ ๋‹จ๋ฝ</p>
         <p>๋„ค ๋ฒˆ์งธ ๋‹จ๋ฝ</p>
     </section>
     ul > li:first-child { } /*  ul ์š”์†Œ์˜ ์ฒซ ๋ฒˆ์งธ ์ž์‹์ธ li ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.*/
     <ul>
         <li>์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
         <li>๋‘ ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
         <li>์„ธ ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
     </ul>
        
     li:last-child { } /* ๋ถ€๋ชจ ์š”์†Œ์˜ ๋งˆ์ง€๋ง‰ ์ž์‹์ธ li ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <ul>
         <li>์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
         <li>๋‘ ๋ฒˆ์งธ ํ•ญ๋ชฉ</li>
         <li>๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ</li>
     </ul>
     div > div:nth-child(4) { } /* div ์š”์†Œ์˜ ๋„ค ๋ฒˆ์งธ ์ž์‹์ธ div ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <div>
         <div>์ฒซ ๋ฒˆ์งธ div</div>
         <div>๋‘ ๋ฒˆ์งธ div</div>
         <div>์„ธ ๋ฒˆ์งธ div</div>
         <div>๋„ค ๋ฒˆ์งธ div</div>
     </div>
     div:nth-last-child(2) { } /* ๋ถ€๋ชจ ์š”์†Œ์˜ ๋’ค์—์„œ ๋‘ ๋ฒˆ์งธ ์ž์‹์ธ div ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <div>
         <div>์ฒซ ๋ฒˆ์งธ div</div>
         <div>๋‘ ๋ฒˆ์งธ div</div>
         <div>์„ธ ๋ฒˆ์งธ div</div>
         <div>๋„ค ๋ฒˆ์งธ div</div>
     </div>
        
     section > p:nth-last-child(2n + 1) { } /* ๋ถ€๋ชจ ์š”์†Œ์˜ ๋’ค์—์„œ ํ™€์ˆ˜ ๋ฒˆ์งธ ์ž์‹์ธ p ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     p:first-of-type { } /* ํ˜•์ œ ์š”์†Œ ์ค‘ ์ฒซ ๋ฒˆ์งธ <p> ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <div>
         <p>์ฒซ ๋ฒˆ์งธ ๋‹จ๋ฝ</p>
         <span>ํ…์ŠคํŠธ</span>
         <p>๋‘ ๋ฒˆ์งธ ๋‹จ๋ฝ</p>
     </div>
        
     div:last-of-type { } /* ํ˜•์ œ ์š”์†Œ ์ค‘ ๋งˆ์ง€๋ง‰ <div> ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <div>
         <div>์ฒซ ๋ฒˆ์งธ div</div>
         <span>ํ…์ŠคํŠธ</span>
         <div>๋งˆ์ง€๋ง‰ div</div>
     </div>
        
     ul:nth-of-type(2) { } /* ํ˜•์ œ ์š”์†Œ ์ค‘ ๋‘ ๋ฒˆ์งธ <ul> ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <ul>
         <li>์ฒซ ๋ฒˆ์งธ ๋ชฉ๋ก</li>
     </ul>
     <ul>
         <li>๋‘ ๋ฒˆ์งธ ๋ชฉ๋ก</li>
     </ul>
     p:nth-last-of-type(1) { } /* ํ˜•์ œ ์š”์†Œ ์ค‘ ๋งˆ์ง€๋ง‰ <p> ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <div>
         <p>์ฒซ ๋ฒˆ์งธ ๋‹จ๋ฝ</p>
         <span>ํ…์ŠคํŠธ</span>
         <p>๋งˆ์ง€๋ง‰ ๋‹จ๋ฝ</p>
     </div>
    
  4. ๋ถ€์ • ์„ ํƒ์ž

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
     input:not([type="password"]) { } /*  type ์†์„ฑ์ด "password"๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  <input> ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. */
     <form>
         <input type="text" placeholder="Username">
         <input type="password" placeholder="Password">
         <input type="email" placeholder="Email">
         <input type="submit" value="Submit">
     </form>
        
     div:not(:nth-of-type(2)) { } /* ํ˜•์ œ ์š”์†Œ๋“ค ์ค‘ ๋‘ ๋ฒˆ์งธ div ์š”์†Œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  div ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.*/
     <div>์ฒซ ๋ฒˆ์งธ div</div>
     <div>๋‘ ๋ฒˆ์งธ div</div>
     <div>์„ธ ๋ฒˆ์งธ div</div>
     <div>๋„ค ๋ฒˆ์งธ div</div>
        
    
  5. ์ •ํ•ฉ์„ฑ ํ™•์ธ ์„ ํƒ์ž

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
     input[type="text"]:valid { } /* ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์œผ๋กœ ์ž…๋ ฅ๋œ ํ…์ŠคํŠธ ํ•„๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์œ ํšจํ•œ ๊ฐ’์ด ์ž…๋ ฅ๋œ input ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.*/
     <form>
         <label for="username">Username (at least 3 characters):</label>
         <input type="text" id="username" name="username" pattern=".{3,}" required>
         <input type="submit" value="Submit">
     </form>
        
     input[type="text"]:invalid { } /*  ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ํ˜•์‹์œผ๋กœ ์ž…๋ ฅ๋œ ํ…์ŠคํŠธ ํ•„๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฌดํšจํ•œ ๊ฐ’์ด ์ž…๋ ฅ๋œ input ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.*/
     <form>
         <label for="username">Username (at least 3 characters):</label>
         <input type="text" id="username" name="username" pattern=".{3,}" required>
         <input type="submit" value="Submit">
     </form>
        
    



Flexbox

Flexbox ์†์„ฑ๋“ค์„ ํ™œ์šฉํ•˜๋ฉด ์š”์†Œ์˜ ์ •๋ ฌ, ์š”์†Œ๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„์„ ์„ค์ • ๊ฐ€๋Šฅ

๋ถ€๋ชจ์š”์†Œ์— ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ์†์„ฑ

flex-direction flex-wrap justify-content

flex-direction : ์ •๋ ฌ ์ถ• ์ •ํ•˜๊ธฐ

์ž์‹ ์š”์†Œ๋“ค์„ ์ •๋ ฌํ•  ์ •๋ ฌ ์ถ•์„ ์ •ํ•จ

์•„๋ฌด ์„ค์ •๋„ ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€๋กœ ์ •๋ ฌ

flex-wrap : ์ค„ ๋ฐ”๊ฟˆ ์„ค์ •

flex-wrap ์†์„ฑ์€ ํ•˜์œ„ ์š”์†Œ๋“ค์˜ ํฌ๊ธฐ๊ฐ€ ์ƒ์œ„ ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๋„˜์œผ๋ฉด ์ž๋™ ์ค„ ๋ฐ”๊ฟˆ์„ ํ•  ๊ฒƒ์ธ์ง€ ์ •ํ•จ.

์„ค์ •ํ•ด ์ฃผ์ง€ ์•Š์œผ๋ฉด ์ค„ ๋ฐ”๊ฟˆ์„ ํ•˜์ง€ ์•Š์Œ

2.png

justify-content : ์ถ• ์ˆ˜ํ‰ ๋ฐฉํ–ฅ ์ •๋ ฌ

์ž์‹ ์š”์†Œ๋“ค์„ ์ถ•์˜ ์ˆ˜ํ‰ ๋ฐฉํ–ฅ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ•  ๊ฒƒ์ธ์ง€ ์ •ํ•จ

์†Œ๋“ค์ด ๊ฐ€๋กœ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ฐ€๋กœ ๋ฐฉํ–ฅ์œผ๋ก  ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ•  ๊ฒƒ์ธ์ง€, ์„ธ๋กœ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋ฉด ์„ธ๋กœ ๋ฐฉํ–ฅ์œผ๋ก  ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ•  ๊ฒƒ์ธ์ง€ ์ •ํ•˜๋Š” ์†์„ฑ

Untitled

flex-direction : row ์ธ ๊ฒฝ์šฐ โ†”

Untitled

flex-direction : column ์ธ ๊ฒฝ์šฐ โ†•๏ธ

Untitled

align-items : ์ถ• ์ˆ˜์ง ๋ฐฉํ–ฅ ์ •๋ ฌ

align-items ์†์„ฑ์€ ์ž์‹ ์š”์†Œ๋“ค์„ ์ถ•์˜ ์ˆ˜์ง ๋ฐฉํ–ฅ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ•  ๊ฒƒ์ธ์ง€ ์ •ํ•จ

์š”์†Œ๋“ค์ด ๊ฐ€๋กœ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋ฉด ์„ธ๋กœ ๋ฐฉํ–ฅ์œผ๋ก  ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ•  ๊ฒƒ์ธ์ง€, ์„ธ๋กœ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ฐ€๋กœ ๋ฐฉํ–ฅ์œผ๋ก  ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ•  ๊ฒƒ์ธ์ง€ ์ •ํ•˜๋Š” ์†์„ฑ

align items: row ์ธ ๊ฒฝ์šฐ

Untitled

align items: column ์ธ ๊ฒฝ์šฐ

Untitled

์ž์‹์š”์†Œ์— ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ์†์„ฑ

๋ถ€๋ชจ ์š”์†Œ์— ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ์†์„ฑ๋“ค์ด ์ž์‹ ์š”์†Œ๋“ค์˜ ์ •๋ ฌ๊ณผ ๊ด€๋ จ์ด ์žˆ์—ˆ๋‹ค๋ฉด,

์ž์‹ ์š”์†Œ์—๊ฒŒ ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ์†์„ฑ์ธ flex๋Š” ์š”์†Œ๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„๊ณผ ๊ด€๋ จ์ด ์žˆ์Œ

1
flex:   <grow(ํŒฝ์ฐฝ ์ง€์ˆ˜)>    <shrink(์ˆ˜์ถ• ์ง€์ˆ˜)>    <basis(๊ธฐ๋ณธ ํฌ๊ธฐ)>

๊ธฐ๋ณธ๊ฐ’ : flex: grow shrink basis, flex: 0 1 auto ์ˆœ์„œ ๊ธฐ์–ตํ•˜๊ธฐ

1
flex: 0 1 auto;
1
2
3
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;

์œ„ ์•„๋ž˜ ์ฝ”๋“œ๋Š” ๊ฐ™์€ ๊ฐ’์ด๋‹ค.

  1. glow : ์ƒ๋Œ€ํฌ๊ธฐ ==ํŒฝ์ฐฝ์ง€์ˆ˜์˜ ์ ˆ๋Œ€์  ํฌ๊ธฐ๊ฐ€ ์•„๋‹Œ ์ดํ•ฉ์—์„œ์˜ ๋น„์œจ๋กœ ๋นˆ ๊ณต๊ฐ„์„ ์ฐจ์ง€
    1. flex ์†์„ฑ์„ ์„ค์ •ํ•˜๊ธฐ ์ „

      Untitled

    2. grow์˜ ๊ธฐ๋ณธ ๊ฐ’์ธ 0์€ ๋นˆ ๊ณต๊ฐ„์ด ์žˆ์–ด๋„ ๋Š˜์–ด๋‚˜์ง€ ์•Š์Œ์„ ์˜๋ฏธ
    3. box1๋งŒ flex-grow : 1๋กœ ์„ค์ •, ๋‚˜๋จธ์ง€ ๋ฐ•์Šค๋Š” flex-grow : 0

      Untitled

    4. box1, box2๋„ flex-grow : 1๋กœ ์„ค์ •. box3๋งŒ flex-grow : 0์ธ ์ƒํƒœ

      Untitled

    5. ์„ธ ๋ฐ•์Šค ๋ชจ๋‘ flex-grow : 1

      Untitled

  2. shrink -๊ฑฐ์˜ ์•ˆ์”€
    1. grow์™€ ๋ฐ˜๋Œ€๋กœ, ์„ค์ •ํ•œ ๋น„์œจ๋งŒํผ ๋ฐ•์Šค ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง
    2. ๋น„์œจ์ด ํด์ˆ˜๋ก ๋” ๋งŽ์ด ์ค„์–ด๋“ค๊ฒŒ ๋จ.
    3. ๊ทธ๋Ÿฌ๋‚˜ flex-grow ์†์„ฑ๊ณผ flex-shrink ์†์„ฑ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ์ผ์€ ์ถ”์ฒœํ•˜์ง€ ์•Š์Œ
    4. lex-grow ์†์„ฑ์œผ๋กœ ๋น„์œจ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ, flex-shrink ์†์„ฑ์€ ๊ธฐ๋ณธ๊ฐ’์ธ 1๋กœ ๋‘์–ด๋„ ๋ฌด๋ฐฉ
  3. basis : ๊ธฐ๋ณธํฌ๊ธฐ
    1. lex-grow๋‚˜ flex-shrink์— ์˜ํ•ด ๋Š˜์–ด๋‚˜๊ฑฐ๋‚˜ ์ค„์–ด๋“ค๊ธฐ ์ „์— ๊ฐ€์ง€๋Š” ๊ธฐ๋ณธ ํฌ๊ธฐ
    2. grow๋Š” 0 : 1 : 1๋กœ ์„ค์ •ํ•˜๊ณ , box1์— flex-basis : 50px,

    SMuYIs7IH18-X23y0Eoam-1650724190299.gif

    box1์˜ ํฌ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚˜๊ฑฐ๋‚˜ ์ค„์–ด๋“ค์ง€ ์•Š๊ณ  50px์„ ์œ ์ง€

html-css ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด ๋‹ค๋ฅธ ๊ธ€ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

Leave a comment