ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CSS์˜ ์šฐ์„ ์ˆœ์œ„, CSS Cascading
    TECH 2023. 9. 4. 01:29

    CSS๋Š” ์›น ํŽ˜์ด์ง€์˜ ๋””์ž์ธ๊ณผ ๋ ˆ์ด์•„์›ƒ์„ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉ์ž๋“ค์„ ์‹œ๊ฐ์ ์œผ๋กœ ์‚ฌ๋กœ์žก์„ ์ˆ˜ ์žˆ๋Š” ์›น ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ•„์ˆ˜์ ์ธ ์Šคํ‚ฌ์ž…๋‹ˆ๋‹ค.

     

    ํ•˜์ง€๋งŒ CSS๋Š” ๋‹จ์ˆœํ•œ ๋ฌธ๋ฒ• ๋’ค์— ์ˆจ๊ฒจ์ง„ ๊ทœ์น™๋“ค๋กœ ์ดˆ๋ณด์ž๋“ค์—๊ฒŒ ์–ด๋ ค์›€์„ ์•ˆ๊ฒจ ์ฃผ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. HTML/CSS๋กœ ํ˜ธ๊ธฐ๋กญ๊ฒŒ ์ฝ”๋”ฉ ์„ธ๊ณ„์— ๋ฐœ์„ ๋“ค์˜€๋‹ค๊ฐ€ ์ง€๋ ˆ ๊ฒ์„ ๋จน๊ณ  (๋ฐฑ์—”๋“œ๋กœ) ํƒˆ์ฃผํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์—ฌ๋Ÿฟ ๋ณด๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿคฃ ์•„์ฃผ ์Šฌํ”ˆ ์ผ์ž…๋‹ˆ๋‹ค.

     

    "์™œ ์Šคํƒ€์ผ์ด ์ œ๋Œ€๋กœ ์ ์šฉ๋˜์ง€ ์•Š์„๊นŒ?"์™€ ๊ฐ™์€ ๊ณ ๋ฏผ์€ ์บ์Šค์บ์ด๋”ฉ์˜ ์˜ํ–ฅ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

     

    ์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฐ”๋กœ ๊ทธ CSS์˜ ์บ์Šค์บ์ด๋”ฉ ์›์น™์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

     

     

     

     

    CSS์˜ Cascading์ด๋ž€?

     

    CSS๋Š” Cascading Style Sheets์˜ ์•ฝ์ž๋กœ, CSS์˜ ๋„ค์ด๋ฐ์—์„œ๋ถ€ํ„ฐ ๋…น์•„ ์žˆ๋Š” ์บ์Šค์บ์ด๋”ฉ ๊ฐœ๋…์€ ์Šคํƒ€์ผ ๊ทœ์น™์ด ๊ณ„๋‹จ์‹์œผ๋กœ ์ ์šฉ๋˜๋Š” ๋ฐฉ์‹์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

     

    ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šคํƒ€์ผ ๊ทœ์น™์ด ๊ฐ™์€ HTML ์š”์†Œ์— ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋•Œ ์–ด๋–ค ๊ทœ์น™์ด ์šฐ์„ ํ• ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์บ์Šค์บ์ด๋”ฉ์˜ ๊ฐœ๋…์ธ๋ฐ, ๊ทœ์น™์ด ๋” ๊ตฌ์ฒด์ ์ผ์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Šต๋‹ˆ๋‹ค. 

     

     

    MDN ๋ฌธ์„œ์—์„œ๋Š” User Agent(์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ)๊ฐ€ ๋‹ค์–‘ํ•œ ์ถœ์ฒ˜์—์„œ ์˜ค๋Š” ์†์„ฑ ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ๊ฒฐํ•ฉํ•˜๋Š”์ง€ ์ •์˜ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ์—ฌ๊ธฐ์„œ ์ž ์‹œ User Agent๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

     

     

     


    User Agent๋ž€?

     

    User Agent๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € ์†์— ์ˆจ๊ฒจ์ง„ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋กœ ์‚ฌ์šฉ์ž์˜ OS, ๋ฒ„์ „, ์›น ๋ธŒ๋ผ์šฐ์ €, ๋””๋ฐ”์ด์Šค ๋“ฑ์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ๊ณผ๊ฑฐ์—๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์ž์ฒด ์—”์ง„์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์› ๋ฒ”์œ„, ํ˜ธํ™˜์„ฑ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ €์—์„œ ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€๋ฅผ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

     

    ๊ทธ๋Ÿฌ๋‚˜ ์š”์ฆˆ์Œ์€ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๋“ค์ด ํฌ๋กฌ ๊ธฐ๋ฐ˜์˜ ๋ธ”๋งํฌ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿด ํ•„์š”์„ฑ์ด ์ ์–ด์กŒ๊ณ  ์ ‘์†ํ•œ ๊ธฐ๊ธฐ ์ •๋ณด๋‚˜ OS๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐ์— ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

     


     

     

     

    CSS ์Šคํƒ€์ผ์€ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์ค‘๋ณต์œผ๋กœ ์ž‘์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด๋•Œ, ์‹ค์ œ๋กœ ์–ด๋–ค ์Šคํƒ€์ผ์ด ์ ์šฉ๋˜๋Š”์ง€๋Š” ํ•ด๋‹น ์Šคํƒ€์ผ์˜ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

     

    ์–ด๋–ค ์š”์†Œ๋“ค์— ์˜ํ•ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฒฐ์ •๋˜๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

     

     

     

     

     

    โœŽ  Origin ์šฐ์„ ์ˆœ์œ„

     

    Origin์€ ์–ด๋–ค ์›์ฒœ์œผ๋กœ๋ถ€ํ„ฐ ์ ์šฉ๋˜์—ˆ๋Š”์ง€, CSS ๊ทœ์น™์ด ์–ด๋””์„œ ์™”๋Š”์ง€๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. CSS๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณณ ์ •๋„๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    CSS์˜ Origin์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

     

     

     

    1. User Agent Stylesheet

     

    ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ๋‚˜ ๋ธŒ๋ผ์šฐ์ €์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋œ ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

    ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ธฐ๋ณธ ์Šคํƒ€์ผ์ด ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํผ๋ธ”๋ฆฌ์‹ฑ ํ•  ๋•Œ normalize.css๋‚˜ reset.css ์ฒ˜๋Ÿผ ๊ณตํ†ต ์†์„ฑ์„ ์žฌ์ •์˜ํ•˜๋Š” css๋ฅผ ์ž‘์„ฑํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค.

     <h1> ํƒœ๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌ๊ณ  ๊ตต๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์„ ์˜ˆ์‹œ๋กœ ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

    2. Author Stylesheet

     

     ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์œ ํ˜•์˜ CSS๋กœ ์›น ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

     link๋กœ import ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, <style> ๋ธ”๋ก์—์„œ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ์ธ๋ผ์ธ ์Šคํƒ€์ผ๋กœ ์ž‘์„ฑ๋œ ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

     ๊ฐœ๋ฐœ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ์—์„œ <h1> ํƒœ๊ทธ์— color: blue ์†์„ฑ์„ ์ง€์ •ํ•ด ๋†“์•˜๋‹ค๋ฉด ํ•ด๋‹น ์‚ฌ์ดํŠธ์—์„œ <h1> ํƒœ๊ทธ์˜ ์ƒ‰์ƒ์€ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

     

     

    3. User Stylesheet

     

     ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์›น ์‚ฌ์ดํŠธ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•˜๋Š” ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

     ์ผ๋ถ€ ์‚ฌ์šฉ์ž๋Š” ์‹œ๊ฐ์  ๋ถˆํŽธ์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ชฉ์  ๋“ฑ์œผ๋กœ ์ž์‹ ๋งŒ์˜ ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

     

     

    Origin์— ๋”ฐ๋ฅธ ์ผ๋ฐ˜์ ์ธ CSS ์šฐ์„ ์ˆœ์œ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    Author Stylesheet > User Stylesheet > User Agent Stylesheet

     

    ๋งŒ์ผ !important๊ฐ€ ํฌํ•จ๋œ ์†์„ฑ์ด๋ผ๋ฉด ์šฐ์„ ์ˆœ์œ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    User Agent Stylesheet > User Stylesheet > Author Stylesheet

     

     

     

     

    ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ Elements > Styles ํƒญ์„ ์ผœ๋ฉด ํ˜„์žฌ ํŽ˜์ด์ง€์— ์ ์šฉ๋œ ์Šคํƒ€์ผ๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ,

    ์—ฌ๊ธฐ์„œ User Agent Stylesheet์™€ Author Stylesheet๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

     

     

     

     

    โœŽ  Author Style ์šฐ์„ ์ˆœ์œ„

     

    Author Stylesheet์—์„œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ข…๋ฅ˜๋Š” ์ธ๋ผ์ธ ์Šคํƒ€์ผ(inline style), ๋‚ด๋ถ€ ์Šคํƒ€์ผ(internal/embedded style), ์™ธ๋ถ€ ์Šคํƒ€์ผ(external style) ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

     

     

    1. ์ธ๋ผ์ธ ์Šคํƒ€์ผ

     

    HTML ์š”์†Œ ๋‚ด์— ์ง์ ‘ ์ ์šฉ๋œ ์Šคํƒ€์ผ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

    <div style="color: red;">This is an inline style.</div>

     

    2. ๋‚ด๋ถ€ ์Šคํƒ€์ผ

     

    HTML ๋ฌธ์„œ ๋‚ด <head> ์„น์…˜์˜ <style> ํƒœ๊ทธ ๋‚ด์— ์ •์˜๋œ ์Šคํƒ€์ผ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

    <style> .example { color: blue; } </style>

     

    3. ์™ธ๋ถ€ ์Šคํƒ€์ผ

     

    ์™ธ๋ถ€ CSS ํŒŒ์ผ์— ์ •์˜๋œ ์Šคํƒ€์ผ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

    HTML ๋ฌธ์„œ์—์„œ๋Š” <link> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด ์™ธ๋ถ€ ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    <link rel="stylesheet" href="styles.css">

     

     

     

    Author Style ์ ์šฉ ๋ฐฉ์‹์—์„œ์˜ ์šฐ์„ ์ˆœ์œ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    ์ธ๋ผ์ธ ์Šคํƒ€์ผ > ๋‚ด๋ถ€ ์Šคํƒ€์ผ > ์™ธ๋ถ€ ์Šคํƒ€์ผ

     

     

     

     

     

    โœŽ  Specificity ์šฐ์„ ์ˆœ์œ„

     

    CSS ์„ ํƒ์ž์˜ ํŠน์ •์„ฑ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Specificity์—์„œ ๋ถ„๋ฅ˜๋˜๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

    ๊ด„ํ˜ธ ์•ˆ์— ์ž‘์„ฑ๋œ ์„ ํƒ์ž๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

     

     

    1. ID ์นดํ…Œ๊ณ ๋ฆฌ

     

    • id ์„ ํƒ์ž (#id )

     

     

    2. CLASS ์นดํ…Œ๊ณ ๋ฆฌ

     

    • class ์„ ํƒ์ž (.class)

    ์†์„ฑ ์„ ํƒ์ž ([type="text"] , [title|="first"])

    ์˜์‚ฌ ํด๋ž˜์Šค (:hover , checked , :nth-child(2n))

     

     

    3. TYPE ์นดํ…Œ๊ณ ๋ฆฌ

     

    • HTML ์š”์†Œ ์„ ํƒ์ž (p, h1, span)

    ์˜์‚ฌ ์š”์†Œ (::before , ::placeholder)

     

     

    4. ์šฐ์„ ์ˆœ์œ„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ๊ฒƒ๋“ค

     

    ๋‹ค์Œ ์„ ํƒ์ž๋“ค์€ ์Šคํƒ€์ผ์€ ์ ์šฉ๋˜์ง€๋งŒ ์บ์Šค์บ์ด๋”ฉ ์šฐ์„ ์ˆœ์œ„์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 

     

    • ์ „์ฒด ์„ ํƒ์ž(*)

    :where() ์˜์‚ฌ ํด๋ž˜์Šค

     

     

     

     

    Specificity ์šฐ์„ ์ˆœ์œ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    ID ์นดํ…Œ๊ณ ๋ฆฌ > CLASS ์นดํ…Œ๊ณ ๋ฆฌ > TYPE ์นดํ…Œ๊ณ ๋ฆฌ

     

     

     

     

    ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์นดํ…Œ๊ณ ๋ฆฌ์— ์˜๊ฑฐํ•˜์—ฌ ์ตœ์ข… ์šฐ์„ ์ˆœ์œ„๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ ์ˆ˜๊ฐ€ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

     

    MDN ๋ฌธ์„œ์˜ ์„ค๋ช…์—์„œ๋Š” 0-0-0 ์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ ์ˆ˜๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

     

    #id {
      color: blue; /* category 1. 1-0-0 */
    }
    .class {
      color: yellow; /* category 2. 0-1-0 */
    }
    p {
      color: red; /* category 3. 0-0-1 */
    }
    * {
      color: gray; /* category 4. 0-0-0 */
    }

    See the Pen css cascading example 1 by RIMI (@RIMI-the-flexboxer) on CodePen.

     

     

     

     

     

     

     

     

    CSS Specificity๋ฅผ ๋ฐ”๋‹ค ์ƒํƒœ๊ณ„๋กœ ๋‚˜ํƒ€๋‚ธ ๋‹ค์Œ ๊ทธ๋ฆผ๋„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

     

     

     

    ๊ฒฐ๋ก 

     

    CSS๋Š” ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๋Š” ๊ณผ์ •์—์„œ ์บ์Šค์บ์ด๋”ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํƒ€์ผ ๊ทœ์น™์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

    ์ด ๊ณผ์ •์—์„œ Origin, Specification, ์Šคํƒ€์ผ ์ ์šฉ ๋ฐฉ๋ฒ• ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.

     

    ์บ์Šค์บ์ด๋”ฉ์˜ ์ „์ฒด ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

     

     

    1. ์Šคํƒ€์ผ ๊ทœ์น™๊ณผ ์š”์†Œ๊ฐ€ ๋งค์น˜๋˜์—ˆ๋Š”์ง€๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ํ•ด๋‹น ์š”์†Œ์™€ ๊ด€๋ จ๋œ ์Šคํƒ€์ผ ์†์„ฑ๋งŒ ์„ ๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
    2. Origin ๋ฐ !important ์†์„ฑ์— ๋”ฐ๋ฅธ ์šฐ์„ ์ˆœ์œ„
      • User Agent vs. Author vs. User stylesheet ๊ฐ„ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํŒ๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
      • !important ์†์„ฑ ์‚ฌ์šฉ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    3. Specification ์šฐ์„ ์ˆœ์œ„
      • ID ์นดํ…Œ๊ณ ๋ฆฌ > CLASS ์นดํ…Œ๊ณ ๋ฆฌ > TYPE ์นดํ…Œ๊ณ ๋ฆฌ ์ˆœ์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ •ํ•ด์ง‘๋‹ˆ๋‹ค.
    4. ์ž‘์„ฑ ์ˆœ์„œ
      • ๊ฐ™์€ ์š”์†Œ์— ๋™์ผํ•œ ์†์„ฑ์ด ์„ ์–ธ๋˜์—ˆ์„ ๊ฒฝ์šฐ, ๋‚˜์ค‘์— ์„ ์–ธ๋œ ์Šคํƒ€์ผ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
    .class {
      font-size: 12px; 
      font-weight: 700; 
      font-family: Pretendard; 
      color: blue; 
      color: red; /* ๋‚˜์ค‘์— ์ž‘์„ฑ๋œ red color๊ฐ€ ์ ์šฉ๋จ */ 
    }

     

     

     

     

     

    โž• !important ์†์„ฑ

     

    !important ๊ฐ€ ์ ์šฉ๋œ ์Šคํƒ€์ผ์€ ๊ฐ€์žฅ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Šต๋‹ˆ๋‹ค.

    ๊ทธ๋Ÿฌ๋‚˜ !important ๊ฐ€ ๋‚จ๋ฐœ๋œ ์ฝ”๋“œ๋Š” ๋””๋ฒ„๊น…์„ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ง€์–‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

     

    ๋Œ€์‹  CSS ์บ์Šค์บ์ด๋”ฉ์„ ๊ณ ๋ คํ•˜์—ฌ ์ž‘์„ฑํ•ด ๋ด…์‹œ๋‹ค.

     

    <p class="contents" id="hello">hello</p>
    <p class="contents"> this is css</p>
    <p class="contents">my awesome css</p>
    <p class="contents">lets go</p>
    #hello {
      color: blue;
      font-size: 50px;
    }
    
    p.contents {
      color: gray;
      font-size: 20px;
      background-color: pink;
    }
    
    .highlight {
      background-color: yellow;
    }

    See the Pen css cascading example 2 by RIMI (@RIMI-the-flexboxer) on CodePen.

     

     

     

     

    ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ˆ์‹œ์—์„œ lets go ๋ถ€๋ถ„์— ๋…ธ๋ž€์ƒ‰ ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ์ฃผ๊ธฐ ์œ„ํ•ด์„œ highlight ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  <p class="contents highlight">lets go</p> ๋กœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์›ํ•˜๋Š” CSS๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

     

    ์Šคํƒ€์ผ์„ background-color: yellow !important; ๋กœ ์ˆ˜์ •ํ•œ๋‹ค๋ฉด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ œ์ผ ๋†’์•„์ง€๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ์Šคํƒ€์ผ์„ ์‰ฝ๊ฒŒ ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ฒ ์ฃ .

     

    ํ•˜์ง€๋งŒ !important ์ ์šฉ ์ „ ์Šคํƒ€์ผ์„ ์‚ดํŽด๋ณด๋ฉด p.contents์™€ .highlight ์Šคํƒ€์ผ ์šฐ์„ ์ˆœ์œ„๋Š” 0-1-1๊ณผ 0-1-0์œผ๋กœ p.contents์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ์ด๋ฅผ ๊ฐ์•ˆํ•˜์—ฌ .highlight๋ฅผ .contents.highlight๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ธ๋‹ค๋“ ์ง€, ์ž‘์„ฑ ์ˆœ์„œ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ p.highlight๋กœ ์ˆ˜์ •ํ•œ๋‹ค๋ฉด ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

     

     

    ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์„ค๋ช…ํ–ˆ์ง€๋งŒ CSS ์บ์Šค์บ์ด๋”ฉ ๊ทœ์น™์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•˜๋ฉด !important ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ๋„ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๊ณ ๋ คํ•œ ์Šคํƒ€์ผ๋ง์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

     

     

     

     

     

     

    ์ฐธ๊ณ 

    CSS: Cascading Style Sheets | MDN

    Introducing the CSS Cascade - CSS: Cascading Style Sheets | MDN

    Specificity - CSS: Cascading Style Sheets | MDN

    ์›น ๋ธŒ๋ผ์šฐ์ € ์† ์ˆจ๊ฒจ์ง„ ์ค‘์š” ๊ธฐ๋Šฅ, ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ(User Agent ...

     

     

    ๋Œ“๊ธ€

Designed by Tistory.