ν”„λ‘ νŠΈμ—”λ“œ πŸ‘©πŸ»‍πŸ’»

[CSS] CSS selector 정리 ✨

μ½”λ”©ν•˜λŠ” 희루 2024. 9. 23. 16:35

참고자료1

 

CSS μ„ νƒμž - CSS: Cascading Style Sheets | MDN

CSS μ„ νƒμžλŠ” CSS κ·œμΉ™μ„ μ μš©ν•  μš”μ†Œλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.

developer.mozilla.org

 

✨CSS μ„ νƒμž

 

πŸ“• κΈ°λ³Έ μ„ νƒμž

πŸ’» 전체 μ„ νƒμž

* {
  color: green;
}

 

 

πŸ’» μœ ν˜• μ„ νƒμž

πŸ’» 클래슀 μ„ νƒμž

πŸ’» ID μ„ νƒμž

 

πŸ’» νŠΉμ„± μ„ νƒμž ⭐️

- `[attr]` : μ΄λ¦„μ˜ νŠΉμ„±μ„ κ°€μ§„ μš”μ†Œλ₯Ό 선택

- `[attr=value]`: attrμ΄λΌλŠ” μ΄λ¦„μ˜ νŠΉμ„±κ°’μ΄ μ •ν™•νžˆ value인 μš”μ†Œλ₯Ό 선택함

- `[attr~=value]` : μ΄λ¦„μ˜ νŠΉμ„±κ°’μ΄ μ •ν™•νžˆ value인 μš”μ†Œλ₯Ό 선택. 곡백으둜 κ΅¬λΆ„ν•œ μ—¬λŸ¬ 개의 값을 κ°€μ§€κ³  μžˆμ„ 수 있음

- `[attr|=value]` : attrμ΄λΌλŠ” νŠΉμ„±κ°’μ„ κ°€μ§€κ³  있으며 μ •ν™•νžˆ valueμ΄κ±°λ‚˜ value둜 μ‹œμž‘ν•˜λ©΄μ„œ κ³§λ°”λ‘œ 뒀에 λ¬Έμžκ°€ 따라 λΆ™μœΌλ©΄ 이 μš”μ†Œλ₯Ό 선택함.

- `[attr $= value]` : attrμ΄λΌλŠ” νŠΉμ„±κ°’μ„ κ°€μ§€κ³  있으며, μ ‘λ―Έμ‚¬λ‘œ valueκ°€ 값에 ν¬ν•¨λ˜μ–΄ 있으면 이 μš”μ†Œλ₯Ό 선택함

- `[attr *= value]` : attrμ΄λΌλŠ” νŠΉμ„±κ°’μ„ κ°€μ§€κ³  있으며, κ°’ μ•ˆμ— valueλΌλŠ” λ¬Έμžμ—΄μ΄ 적어도 ν•˜λ‚˜ 이상 μ‘΄μž¬ν•œλ‹€λ©΄ 선택

- `[attr operator value i]` : κ΄„ν˜Έλ₯Ό λ‹«κΈ° 전에 i ν˜Ήμ€ Iλ₯Ό λΆ™μ—¬μ£Όλ©΄ κ°’μ˜ λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•ŠμŒ

- `[attr operator value s] : κ΄„ν˜Έλ₯Ό λ‹«κΈ° 전에 s ν˜Ήμ€ Sλ₯Ό λΆ™μ—¬μ£Όλ©΄ λŒ€μ†Œλ¬Έμž ꡬ뢄함.

#μ ‘λ‘μ‚¬λ‘œ #이 있으면, 이 μš”μ†Œλ₯Ό 선택
a[href^="#"] {
  backgound-color: gold;
}

#example이 ν•˜λ‚˜λΌλ„ 있으면 이 μš”μ†Œ 선택
a[href*="example"] {
  background-color: dilver;
}

#λŒ€μ†Œλ¬Έμž ꡬ뢄 μ•ˆν•¨, insensitiveκ°€ ν•˜λ‚˜λΌλ„ 있으면
a[hre *= "insensitive" i] {
  color: gray;
}

#λŒ€μ†Œλ¬Έμž ꡬ뢄함, 
a[href*="cAsE" s] {
  color: pink;
}

#μ ‘λ―Έμ‚¬λ‘œ .org 있으면
a[href$=".org"] {
  color: red;
}

 

 

 


 

πŸ“• κ²°ν•©μž

 

πŸ’» μžμ† κ²°ν•©μž ("`곡백`")

- ν•œ 칸의 곡백 문자둜 ν‘œν˜„ν•˜λŠ” μžμ† κ²°ν•©μžλŠ” λ’€μͺ½ μ„ νƒμž μš”μ†Œμ˜ 쑰상에 μ•žμͺ½ μ„ νƒμž μš”μ†Œκ°€ μ‘΄μž¬ν•  경우 선택

- μžμ† κ²°ν•©μžλ₯Ό ν™œμš©ν•˜λŠ” μ„ νƒμžλ₯Ό μžμ†μ„ νƒμžλΌκ³  함

ul.my-things li {
  margin: 2em;
}

 

πŸ’» μžμ‹ κ²°ν•©μž(>)

- μžμ‹κ²°ν•©μž(>)λŠ” 두 개의 CSS μ„ νƒμž 사이에 μœ„μΉ˜ν•˜μ—¬ λ’€μͺ½ μ„ νƒμžμ˜ μš”μ†Œκ°€ μ•žμͺ½ μ„ νƒμž μš”μ†Œμ˜ λ°”λ‘œ 밑에 μœ„μΉ˜ν•  κ²½μš°μ— 선택

ul.my-thing > li {
 margin: 2em;
}
div > span {
  background-color: DodgerBlue;
}

 

 

πŸ’» 일반 ν˜•μ œ κ²°ν•©μž(~)

- 두 개의 μ„ νƒμž 사이에 μœ„μΉ˜ν•˜μ—¬ λ’€μͺ½ μ„ νƒμžμ˜ μš”μ†Œμ™€ μ•žμͺ½ μ„ νƒμž μš”μ†Œμ˜ λΆ€λͺ¨ μš”μ†Œκ°€ κ°™κ³ , λ’€ μͺ½ μ„ νƒμžμ˜ μš”μ†Œκ°€ 뒀에 μœ„μΉ˜ν•  λ•Œ 선택함.

- λΆ€λͺ¨ μžμ‹ 관계 μ•„λ‹˜.

- 두 μš”μ†Œκ°€ μ„œλ‘œ λΆ™μ–΄μžˆμŒ ν•„μš”λŠ” μ—†μŒ

p ~ span {
  color: red;
}

//html
<span>이건 빨강이 μ•„λ‹™λ‹ˆλ‹€.</span>
<p>μ—¬κΈ° 문단이 μžˆμŠ΅λ‹ˆλ‹€.</p>
<code>그리고 μ½”λ“œλ„ μžˆμŠ΅λ‹ˆλ‹€.</code>
<span>이제 λΉ¨κ°•μž…λ‹ˆλ‹€!</span>
<code>더 λ§Žμ€ μ½”λ“œκ°€ μžˆμŠ΅λ‹ˆλ‹€.</code>
<span>이것도 λΉ¨κ°•μž…λ‹ˆλ‹€!</span>

 

 

πŸ’» 인접 ν˜•μ œ κ²°ν•©μž(+)

- μ§€μ • μš”μ†Œμ˜ λ°”λ‘œ λ‹€μŒμ— μœ„μΉ˜ν•˜λŠ” ν˜•μ œ μš”μ†Œλ§Œ 적용

img + p {
  font-weight: bold;
}

 

li:first-of-type + li {
  color: red;
}

 

 

πŸ’» 컬럼 κ²°ν•©μž(||)

- 첫번째 μ„ νƒμžμ— μ˜ν•΄ μΌμΉ˜λ˜λŠ” 컬럼 μš”μ†Œμ— μ†ν•˜λŠ” λ‘λ²ˆμ§Έ μ„ νƒμžμ™€ μΌμΉ˜λ˜λŠ” μš”μ†Œλ“€λ§Œμ„ λ§€μΉ­