μ΄ κΈμ νλ‘ νΈμλ μ§λ¬΄ λ©΄μ μ§λ¬Έκ³Ό κ΄λ ¨λ Github μ μ₯μ front-end-interview-handbook λ²μλ³ΈμΌλ‘, μ μ₯μμ Translations ν΄λμ λ΄μ©κ³Ό λμΌν©λλ€.
νλ‘ νΈμλ λ©΄μ μ§λ¬Έ - CSS μ§λ¬Έμ λν ν΄μ€μ
λλ€.
Pull Requestλ₯Ό ν΅ν μ μ, μμ μμ² νμν©λλ€.
μ λλ float
κΈ°λ° κ·Έλ¦¬λ μμ€ν
μ μ’μν©λλ€. μλνλ©΄, μ¬μ ν κΈ°μ‘΄ λ체ν λ§ν μμ€ν
(flex, grid) μ€μμλ κ°μ₯ λ§μ λΈλΌμ°μ λ₯Ό μ§μνκΈ° λλ¬Έμ
λλ€. μ΄κ²μ Bootstrap
μμ μ λ
λμ μ¬μ©λμμΌλ©°, ν¨κ³Όκ° μλ€λ κ²μ΄ μ
μ¦λμμ΅λλ€.
λ€. νκ°μ§ μλ₯Ό λ€λ©΄, μ¬λ¬ μ€ νμμ λ€λΉκ²μ΄μ
μ νΉμ breakpointλ₯Ό μ§λλ©΄ fixed-bottom tab
ννλ‘ λ³ννμμ΅λλ€.
λ€, κ°μ²΄μ μμ±μ μ§μ νλ λ°©λ²μ ν¬ν¨ν΄ inline CSS, CSS section μ½μ , μΈλΆ CSS fileμ²λΌ shapeμ μμμ μ νλ μ¬λ¬ λ°©λ²μ΄ μμ΅λλ€. μΉμμ λ³Ό μ μλ λλΆλΆμ SVGλ inline CSSλ₯Ό μ¬μ©νμ§λ§, κ°κ° μ₯λ¨μ μ΄ μμ΅λλ€.
κΈ°λ³Έμ μΈ μ±μμ λ
Έλμ fill
κ³Ό stroke
λ μμ±μ μ€μ νμ¬ μ ν μ μμ΅λλ€. fill
μ κ°μ²΄ μμͺ½ μμ μ€μ νκ³ , stroke
λ κ°μ²΄ μ£Όμμ κ·Έλ €μ§λ μ μ μμ μ€μ ν©λλ€. μμ μ΄λ¦ (red
λ±), RGBκ° (rgb(255,0,0)
), 16μ§μ κ°, RGBA κ° λ± HTMLμμ μ¬μ©νλ κ²κ³Ό λμΌν CSS μμ μ΄λ¦ μ€ν΄μ μ¬μ©ν μ μμ΅λλ€. HTMLμμ μ¬μ©νλ κ²κ³Ό λμΌν CSS μμ μ§μ μ€ν΄μ μ¬μ©ν μ μμ΅λλ€.
<rect x="10" y="10" width="100" height="100" stroke="blue"
fill="purple" fill-opacity="0.5" stroke-opacity="0.8"/>
λ€, @media μμ±μ screen μ ν¬ν¨νμ¬ 4κ°μ§ νμ μ΄ μμ΅λλ€.
print
λ―Έλμ΄ νμ
μ μ¬μ© μμ :
@media print {
body {
color: black;
}
}
λ¨Όμ , λΈλΌμ°μ λ μ νμκ° λ§¨ μ€λ₯Έμͺ½(key μ νμ)λΆν° μΌμͺ½μΌλ‘ μΌμΉνλμ§ νμΈν©λλ€. λΈλΌμ°μ λ μ νμμ λ°λΌ DOMμ μμλ₯Ό νν°λ§νκ³ ν΄λΉ λΆλͺ¨μμκ° μΌμΉνλμ§ μλ³ν©λλ€. μ νμ 체μΈμ κΈΈμ΄κ° 짧μμλ‘ λΈλΌμ°μ λ ν΄λΉ μμκ° μ νμμ μΌμΉνλμ§ μ¬λΆλ₯Ό λΉ λ₯΄κ² νλ³ν μ μμ΅λλ€. λ°λΌμ νκ·Έ μ νμμ 보νΈμ μΈ μ νμ μ¬μ©μ νΌν΄μΌ ν©λλ€. μ΄λ€μ λ§μ μμκ° λ§€μΉλκΈ° λλ¬Έμ λΆλͺ¨κ° μΌμΉνλμ§ μ¬λΆλ₯Ό νλ¨νκΈ° μν΄ λΈλΌμ°μ κ° λ§μ μμ μ ν΄μΌν©λλ€.
BEM (Block Element Modifier) λ°©λ²λ‘ μμλ λͺ¨λ λ¨μΌ ν΄λμ€λ₯Ό κ°κ³ , κ³μΈ΅κ΅¬μ‘°κ° νμν κ³³μμλ ν΄λμ€μ μ΄λ¦μ νμ₯νκΈ°λ₯Ό κΆμ₯ν©λλ€. λ°λΌμ μ νμλ₯Ό μ½κ³ ν¨μ¨μ μΌλ‘ μ¬μ μν μ μμ΅λλ€.
μ΄λ€ CSS μμ±μ΄ reflow, repaint, compositingμ νΈλ¦¬κ±° νλμ§ μμλμΈμ. κ°λ₯νλ©΄ λ μ΄μμ(reflow νΈλ¦¬κ±°)λ₯Ό λ³κ²½νλ μ€νμΌμ νΌνμΈμ.
μ₯μ :
λ¨μ :
μ’μ μ :
μ«μ μ :
node-sass
λ₯Ό ν΅ν΄ Sassλ₯Ό μ¬μ©ν©λλ€. λ
Έλ λ²μ μ λ°κΏ λ μμ£Ό λ€μ μ»΄νμΌν΄μΌ νμ΅λλ€.@
μ΄λ©°, @media
, @import
, @font-face
κ·μΉκ³Ό κ°μ κ³ μ CSS ν€μλμ νΌλλ μ μμ΅λλ€.font-face
λ₯Ό μ¬μ©νκ³ font-weight
κ° λ€λ₯Έ κ²½μ° font-family
λ₯Ό μ μν©λλ€.
μ΄λ μμ ν¨μ¨μ μΈ CSS μμ±κ³Ό κ΄λ ¨μμ΅λλ€. λΈλΌμ°μ λ μ νμλ₯Ό μ€λ₯Έμͺ½(μ νμ)μμλΆν° μΌμͺ½μΌλ‘ μΌμΉμν΅λλ€. λΈλΌμ°μ λ μ νμμ λ°λΌ DOMμ μμλ₯Ό νν°λ§νκ³ λΆλͺ¨μμλ₯Ό κ²μ¬νμ¬ μΌμΉλ₯Ό νμ ν©λλ€. μ νμ 체μΈμ κΈΈμ΄κ° 짧μμλ‘, λΈλΌμ°μ κ° ν΄λΉ μμκ° μΌμΉνλμ§ μ¬λΆλ₯Ό λ λΉ λ₯΄κ² νλ¨ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, μ΄ μ νμ p span
λ λ¨Όμ λͺ¨λ <span>
μμλ₯Ό μ°Ύμ κ·Έ λΆλͺ¨μ 루νΈκΉμ§ λͺ¨λ ν΅κ³Όνμ¬ <p>
μμλ₯Ό μ°Ύμ΅λλ€. νΉμ ν <span>
μ κ²½μ° <p>
λ₯Ό μ°Ύλ μ¦μ <span>
μ΄ μΌμΉνλ κ²μ μκ³ μμΌλ©°, μ΄μ λ°λΌ 맀μΉμ μ€μ§ν©λλ€.
CSS Pseudo-elementλ μ νμμ μΆκ°λλ ν€μλλ‘, μ νν μμμ νΉμ λΆλΆμ μ€νμΌλ§ ν μ μμ΅λλ€. λ§ν¬μ
μ μμ νμ§ μκ³ (:before
, :after
) ν
μ€νΈ λ°μ½λ μ΄μ
μ μν΄ μ¬μ©νκ±°λ(:first-line
, :first-letter
) λ§ν¬μ
μ μμλ₯Ό μΆκ°ν μ μμ΅λλ€.(content: ...
μ κ²°ν©)
:first-line
κ³Ό :first-letter
λ ν
μ€νΈλ₯Ό λ°μ½λ μ΄μ
νλλ° μ¬μ©λ μ μμ΅λλ€..clearfix
μ μ¬μ©λμ΄ clear: both
λ‘ μμμ μ°¨μ§νμ§ μλ μμλ₯Ό μΆκ°ν©λλ€.:before
μ :after
λ₯Ό μ¬μ©ν©λλ€. μΌκ°νμ΄ μ€μ λ‘ DOMμ΄ μλ μ€νμΌμ μΌλΆλ‘ κ°μ£ΌλκΈ° λλ¬Έμ λΆλ¦¬νλ κ²μ΄ μ’μ΅λλ€. μΆκ°μ μΈ HTML μμλ₯Ό μ¬μ©νμ§ μκ³ CSS μ€νμΌλ§μΌλ‘ μΌκ°νμ 그릴 μλ μμ΅λλ€.
λ무 μ’μ μλ£ κ°μ¬ν©λλ€ : )