Blinking Hello Kitty Angel

css

CSS μ„ νƒμž ν•œ λ²ˆμ— μ™„λ²½ 정리

xoouxa 2023. 2. 26. 20:36

β€œ μ§€μ—°λ˜λŠ” ν”„λ‘œμ νŠΈμ— 인λ ₯을 더 νˆ¬μž…ν•˜λ©΄ 였히렀 더 λŠ¦μ–΄μ§„λ‹€. ”

- Frederick Philips Brooks
Mythical Man-Month μ €μž
728x90

✍🏻CSS μ„ νƒμžβœπŸ»


what is CSS μ„ νƒμž(selector) ?
μ„ νƒμžλž€ CSS둜 UI의 μ–΄λŠ 뢀뢄을 λ””μžμΈν• μ§€, ν‘œν˜„ν•  λŒ€μƒμ΄ λ˜λŠ” λΆ€λΆ„, 즉 선택을 ν•΄μ£ΌλŠ” μš”μ†Œλ₯Ό λ§ν•©λ‹ˆλ‹€.
이λ₯Ό 톡해 νŠΉμ • μš”μ†Œλ“€μ„ μ„ νƒν•˜μ—¬ μŠ€νƒ€μΌμ„ μ μš©ν•  수 있게 λ©λ‹ˆλ‹€.
CSS둜 속성을 λΆ€μ—¬ν•˜λŠ” ν˜•μ‹μ€ { } μ•ˆμ— μ—¬λŸ¬ 속성을 지정할 수 있고, 각 속성 μ„€μ • κ°„μ—λŠ” ' ; ' 으둜 ꡬ뢄해주며 λ§ˆμ§€λ§‰ 속성 λμ—λŠ” κ΅¬λΆ„μžλ₯Ό μƒλž΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 속성은 κ°€λ‘œλ‘œ λΆ™μ—¬ 써도 되고 ν•œ 쀄씩 λ”°λ‘œ μž…λ ₯해도 λ©λ‹ˆλ‹€.

μ„ νƒμžμ˜ μ’…λ₯˜λ‘œλŠ” type μ„ νƒμž, id μ„ νƒμž, class μ„ νƒμž, 전체 μ„ νƒμž, ν•˜μœ„ μ„ νƒμž, μžμ‹ μ„ νƒμž, 인접 μ„ νƒμž,

ν˜•μ œ μ„ νƒμž, κ·Έλ£Ή μ„ νƒμž, 속성 μ„ νƒμž, κ°€μƒν΄λž˜μŠ€ μ„ νƒμž, κ°€μƒμš”μ†Œ μ„ νƒμž, 쒅속 μ„ νƒμž 와 μ„ νƒμžμ˜ μš°μ„ μˆœμœ„κ°€

μžˆμŠ΅λ‹ˆλ‹€.


✍🏻 type μ„ νƒμž ✍🏻

html λ¬Έμ„œμ˜ νƒœκ·Έ 이름을 μ„ νƒμžλ‘œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

See the Pen Untitled by leeyouna21 (@leeyouna21) on CodePen.

 

✍🏻 id μ„ νƒμž ✍🏻

HTML λ¬Έμ„œμ˜ μš”μ†Œ 쀑 같은 μš”μ†ŒλΌλ„ 각기 λ‹€λ₯Έ 이름을 μ§€μ •ν•˜μ—¬ λ”°λ‘œμ†μ„±μ„ λΆ€μ—¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
HTML μš”μ†Œμ— id둜 이름을 뢙일 λ•Œμ—λŠ” μœ μΌν•œ 이름을 λΆ€μ—¬ν•΄μ•Ό ν•˜λ©°, λ‹€λ₯Έ μš”μ†Œμ— 같은 IDλͺ…을 또 μ£Όμ–΄μ„œλŠ” μ•ˆλ©λ‹ˆλ‹€.
CSSμ—μ„œλŠ” id μ„ νƒμž μ•žμ— ' 샡( # ) ' 을 λΆ™μ—¬μ•Ό ν•©λ‹ˆλ‹€.
단, 숫자둜 μ‹œμž‘ν•  수 μ—†μœΌλ©°, 주둜 영문자둜 μ‹œμž‘ν•©λ‹ˆλ‹€.

See the Pen Untitled by leeyouna21 (@leeyouna21) on CodePen.

 

✍🏻 class μ„ νƒμž ✍🏻

HTML λ¬Έμ„œμ˜ μ—¬λŸ¬ μš”μ†Œ 쀑 같은 이름을 κ°–λŠ” μš”μ†Œλ“€λ§Œ λͺ¨μ•„ λ”°λ‘œ 속성을 λΆ€μ—¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

HTML μš”μ†Œμ— 같은 이름을 λΆ€μ—¬ν•  λ•Œμ—λŠ” class둜 이름을 λΆ™μž…λ‹ˆλ‹€. 즉, μ—¬λŸ¬κ°œμ˜ μš”μ†Œμ— 같은 class λͺ…을 λΆ€μ—¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ ν•˜λ‚˜μ˜ μš”μ†Œμ— μ—¬λŸ¬ 개의 class λͺ…을 λΆ€μ—¬ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. CSSμ—μ„œλŠ” class μ„ νƒμž μ•žμ— ' 점( . ) ' 을 λΆ™μ—¬μ•Ό ν•©λ‹ˆλ‹€.

See the Pen Untitled by leeyouna21 (@leeyouna21) on CodePen.

✍🏻 전체 μ„ νƒμž ✍🏻

전체 μ„ νƒμžλŠ” νŽ˜μ΄μ§€μ˜ λͺ¨λ“ μš”μ†Œλ₯Ό κ°€λ¦¬ν‚€λŠ” μ„ νƒμžλ‘œμ„œ ' * ' 둜 ν‘œμ‹œν•©λ‹ˆλ‹€.
μ–΄λ–€ id λͺ…μ΄λ‚˜ class λͺ…이 λΆ€μ—¬λ˜μ—ˆλ“  상관없이, λͺ¨λ“  μš”μ†Œλ₯Ό ν‘œμ‹œν•˜λ„λ‘ 속성을 λΆ€μ—¬ν•©λ‹ˆλ‹€.

See the Pen Untitled by leeyouna21 (@leeyouna21) on CodePen.

✍🏻 ν•˜μœ„ μ„ νƒμž ✍🏻

ν•˜μœ„ μ„ νƒμžλŠ” μš”μ†Œ 내뢀에 μžˆλŠ” λͺ¨λ“  ν•΄λ‹Ή μš”μ†Œλ₯Ό 가리킀며, μ„ νƒμž 사이λ₯Ό 곡백으둜 λΆ„λ¦¬ν•©λ‹ˆλ‹€.
ν•˜μœ„ μ„ νƒμžλŠ” "λΆ€λͺ¨ μš”μ†Œ ν•˜μœ„μ˜ μžμ‹ μš”μ†Œ"λ₯Ό μ„ νƒν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄μ„œλŠ” λΆ€λͺ¨ μš”μ†Œλ₯Ό μ„ νƒν•œ λ‹€μŒμ— ν•˜μœ„ μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή λΆ€λͺ¨ μš”μ†Œμ˜ ν•˜μœ„ μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.

 

See the Pen Untitled by leeyouna21 (@leeyouna21) on CodePen.

✍🏻 μžμ‹ μ„ νƒμž ✍🏻

μžμ‹ μ„ νƒμžλŠ” CSSμ—μ„œ μ‚¬μš©λ˜λŠ” μ„ νƒμž 쀑 ν•˜λ‚˜λ‘œ, λΆ€λͺ¨ μš”μ†Œμ˜ 직계 μžμ‹ μš”μ†Œλ₯Ό μ„ νƒν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.
μžμ‹ μ„ νƒμžλŠ” μš”μ†Œ 내뢀에 μžˆλŠ” ν•΄λ‹Ή μš”μ†Œλ₯Ό κ°€λ¦¬ν‚€μ§€λ§Œ, ν•˜μœ„ μš”μ†Œμ˜ ν•˜μœ„ μš”μ†ŒλŠ” 가리킀지 μ•ŠμœΌλ©° μ„ νƒμž 사이λ₯Ό ' > ' 으둜 λΆ„λ¦¬ν•©λ‹ˆλ‹€.

 

See the Pen Untitled by leeyouna21 (@leeyouna21) on CodePen.

✍🏻 μΈμ ‘ μ„ νƒμž ✍🏻

인접 μ„ νƒμžλŠ” CSSμ—μ„œ μ‚¬μš©λ˜λŠ” μ„ νƒμž 쀑 ν•˜λ‚˜λ‘œ, νŠΉμ • μš”μ†Œμ˜ μΈμ ‘ν•œ ν˜•μ œ μš”μ†Œλ₯Ό μ„ νƒν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
인접 μ„ νƒμžλŠ” ν˜„μž¬ μš”μ†Œμ˜ λ°”λ‘œ 뒀에 λ‚˜μ˜€λŠ” μš”μ†Œλ§Œμ„ κ°€λ¦¬ν‚€λŠ” μ„ νƒμžλ‘œ, μ„ νƒμž 사이λ₯Ό ' + ' 둜 λΆ„λ¦¬ν•©λ‹ˆλ‹€.

See the Pen Untitled by leeyouna21 (@leeyouna21) on CodePen.

✍🏻 ν˜•μ œ μ„ νƒμž ✍🏻

ν˜•μ œ μ„ νƒμžλŠ” CSSμ—μ„œ 두 개의 μš”μ†Œ μ€‘μ—μ„œ 첫 번째 μš”μ†Œ λ‹€μŒμ— λ°”λ‘œ λ‚˜μ˜€λŠ” 두 번째 μš”μ†Œλ₯Ό μ„ νƒν•˜λŠ” μ„ νƒμžμž…λ‹ˆλ‹€.
ν˜•μ œ μ„ νƒμžλŠ” ν˜„μž¬ μš”μ†Œμ™€ 같은 계측에 μžˆλŠ” μš”μ†Œλ§Œμ„ 선택할 수 있으며 ' ~ ' 둜 κ΅¬λΆ„ν•©λ‹ˆλ‹€.

See the Pen Untitled by leeyouna21 (@leeyouna21) on CodePen.

✍🏻 κ·Έλ£Ή μ„ νƒμž ✍🏻

κ·Έλ£Ή μ„ νƒμžλŠ” CSSμ—μ„œ μ—¬λŸ¬ μš”μ†Œλ₯Ό κ·Έλ£Ήν™”ν•˜μ—¬ μŠ€νƒ€μΌμ„ μ μš©ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.
μ—¬λŸ¬ 개의 μš”μ†Œμ— λŒ€ν•΄ λ™μΌν•œ μŠ€νƒ€μΌμ„ μ μš©ν•  κ²½μš°μ— μœ μš©ν•©λ‹ˆλ‹€.
이λ₯Ό 톡해 μ½”λ“œμ˜ 가독성을 높이고 μŠ€νƒ€μΌλ§ μž‘μ—…μ„ κ°„νŽΈν•˜κ²Œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
κ·Έλ£Ή μ„ νƒμžλŠ” μ—¬λŸ¬ μ„ νƒμžλ“€μ„ ' , ' 둜 κ΅¬λΆ„ν•˜μ—¬ ν•¨κ»˜ λ¬Άμ–΄ 속성을 λΆ€μ—¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

See the Pen Untitled by leeyouna21 (@leeyouna21) on CodePen.


✍🏻 속성 μ„ νƒμž ✍🏻

HTML μš”μ†Œμ˜ 속성 유무 λ˜λŠ” 속성값을 μ€‘κ΄„ν˜Έ [ ] μ•ˆμ— λ„£μ–΄ μ„ νƒμžλ‘œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 


속성 κ°’ μ„€λͺ…
h1[class] class λͺ…을 가진 h1 μš”μ†Œ
img[alt] alt 속성을 가진 img μš”μ†Œ
p[class = "abc"] class λͺ…이 μœ μΌν•˜κ²Œ 'abc'인 p μš”μ†Œ
p[class ~= "abc"] class λͺ…이 μœ μΌν•˜κ²Œ 'abc'μ΄κ±°λ‚˜ μ—¬λŸ¬ 개의 class λͺ… 쀑 ν•˜λ‚˜κ°€ 'abc'인 p μš”μ†Œ
p[class |= "abc"] class λͺ…이 'abc'μ΄κ±°λ‚˜ 'abc-'둜 μ‹œμž‘ν•˜λŠ” p μš”μ†Œ
p[class ^= "abc"] class λͺ…이 철자 'abc'둜 μ‹œμž‘ν•˜λŠ” p μš”μ†Œ
p[class $= "abc"] class λͺ…이 철자 'abc'둜 λλ‚˜λŠ” p μš”μ†Œ
p[class *= "abc"] class λͺ…이 철자 'abc'κ°€ ν¬ν•¨λ˜μ–΄ μžˆλŠ” p μš”μ†Œ
a[href ^= "mailto"] href 속성값이 'mailto'λ‘œμ‹œμž‘ν•˜λŠ” a μš”μ†Œ


✍🏻 가상 클래슀 μ„ νƒμž ✍🏻

κ°€μƒν΄λž˜μŠ€ μ„ νƒμžλž€ 링크가 κ±Έλ¦° λ¬Έμžμ— μŠ€νƒ€μΌμ„ λΆ€μ—¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
κ°€μƒν΄λž˜μŠ€ μ„ νƒμžλŠ” 콜둠( : )으둜 μ‹œμž‘ν•©λ‹ˆλ‹€.

 


속성 κ°’ μ„€λͺ…
a:link 링크가 κ±Έλ¦°λ¬Έμžμ— 속성을 λΆ€μ—¬ν•˜λŠ” μ„ νƒμž
a:visited 링크λ₯Ό ν΄λ¦­ν•˜μ—¬ ν•΄λ‹Ή νŽ˜μ΄μ§€μ— κ°”λ‹€κ°€ λŒμ•„μ˜¨ 경우의 속성을 λΆ€μ—¬ν•˜λŠ” μ„ νƒμž
a:hover 링크가 κ±Έλ¦° λ¬Έμžμ— λ§ˆμš°μŠ€κ°€ λ‹Ώμ•˜μ„ 경우의 속성을 λΆ€μ—¬ν•˜λŠ” μ„ νƒμž
a:active 링크 κ±Έλ¦° κΈ€μžκ°€ ν™œμ„±ν™”λ˜μ—ˆμ„ 경우의 속성을 λΆ€μ—¬ν•˜λŠ” μ„ νƒμž
(ν΄λ¦­ν–ˆλ‹€κ°€ λŒμ•„μ™”κ±°λ‚˜ ν΄λ¦­ν•˜λ €λ‹€ 만 경우)
a:focus 링크 κ±Έλ¦° κΈ€μžμ— ν¬μ»€μŠ€κ°€ 생길 경우의 속성을 λΆ€μ—¬ν•˜λŠ” μ„ νƒμž
(ν‚€λ³΄λ“œμ˜ Tabν‚€ λ“±μœΌλ‘œ ν¬μ»€μŠ€κ°€ λ‚˜νƒ€λ‚  경우)


✍🏻 κ°€μƒμš”μ†Œ 선택 ✍🏻

κ°€μƒμš”μ†Œ μ„ νƒμžλŠ” μš”μ†Œμ— id λͺ…μ΄λ‚˜ class λͺ…μ„λΆ€μ—¬ν•˜μ§€ μ•Šκ³ λ„ μœ„μΉ˜λ₯Ό μ°Ύμ•„μ„œ 선택할 수 μžˆλŠ” μ„ νƒμžμž…λ‹ˆλ‹€.
κ°€μƒμš”μ†Œ μ„ νƒμžλŠ” 콜둠(:)으둜 ν‘œμ‹œλ˜λ©°, ν•΄λ‹Ή μš”μ†Œμ˜ 일뢀뢄에 λŒ€ν•œ μŠ€νƒ€μΌμ„ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 


속성 κ°’ μ„€λͺ…
:first-letter μš”μ†Œμ˜ 첫 κΈ€μž
:first-line μš”μ†Œμ˜ 첫 쀄
:first-child 같은 μš”μ†Œ 쀑 첫 번째 μš”μ†Œ
:last-child 같은 μš”μ†Œ 쀑 λ§ˆμ§€λ§‰ μš”μ†Œ
:nth-child(n) 같은 μš”μ†Œ 쀑 n번째 μš”μ†Œ
:before μš”μ†Œ μ•ˆ 맨 μ•žμ— 배치될 μš”μ†Œ (λ§ˆν¬μ—…μ—λŠ” μ—†λŠ” 가상 μš”μ†Œ)
:after μš”μ†Œ μ•ˆ 맨 뒀에 배치될 μš”μ†Œ (λ§ˆν¬μ—…μ—λŠ” μ—†λŠ” 가상 μš”μ†Œ)


✍🏻 쒅속 μ„ νƒμž ✍🏻

쒅속 μ„ νƒμžλŠ” type μ„ νƒμžμ™€ id μ„ νƒμž, class μ„ νƒμžκ°€ κ²°ν•©λœ μƒνƒœμž…λ‹ˆλ‹€.
쒅속 μ„ νƒμžλŠ” λ‹€λ₯Έ μš”μ†Œμ˜ μžμ‹ μš”μ†Œ, 후손 μš”μ†Œ, ν˜•μ œ μš”μ†Œ 등을 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.
쒅속 μ„ νƒμžλŠ” " " (곡백)으둜 ν‘œμ‹œλ©λ‹ˆλ‹€. 이것은 ν•˜λ‚˜μ˜ μš”μ†Œ μ•ˆμ— λ‹€λ₯Έ μš”μ†Œκ°€ μžˆμ„ λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.

 

✍🏻 μ„ νƒμžμ˜ μš°μ„ μˆœμœ„ ✍🏻

같은 μ„ νƒμžκ°€ μ—¬λŸ¬ CSS λͺ…령을 μ€‘λ³΅μœΌλ‘œ λ°›μœΌλ©΄ μ–΄λ–€ 일이 μΌμ–΄λ‚ κΉŒμš”? 일반적으둜 μš°μ„ μˆœμœ„κ°€ 같은 μ„ νƒμžλΌλ©΄ λ‚˜μ€‘μ— κΈ°μˆ ν•œ 것이 λ¨Όμ € κΈ°μˆ ν•œ 것보닀 μš°μ„ μˆœμœ„κ°€ λ†’μŠ΅λ‹ˆλ‹€.
μš”μ†Œμ— 직접 style=" " ν˜•μ‹μœΌλ‘œ CSSλ₯Ό κΈ°μˆ ν•˜λŠ” 인라인 μŠ€νƒ€μΌμ€ μœ„μ˜ λͺ¨λ“  μ„ νƒμžλ³΄λ‹€ μš°μ„ μ μœΌλ‘œ μ‹€ν–‰λ©λ‹ˆλ‹€. μ§€κΈˆκΉŒμ§€ λ‚˜μ˜¨ 방법보닀 μ΅œμš°μ„ μœΌλ‘œ CSSλ₯Ό μ μš©ν•΄μ•Ό ν•  κ²½μš°μ—λŠ” μ„ νƒμžμ— 속성을 λΆ€μ—¬ν•˜λŠ” λ§ˆμ§€λ§‰μ— "!important;"λ₯Ό 뢙이면 λ©λ‹ˆλ‹€.

✨ 전체 μš°μ„ μˆœμœ„
전체 μ„ νƒμž < type μ„ νƒμž < class μ„ νƒμž, 가상 μ„ νƒμž < id μ„ νƒμž < inline style < !important