header-img
Info :
밀도
denseΒΉ
μž₯래희망 : λ‹¨μœ„ λΆ€ν”Ό λ‹Ή μ§ˆλŸ‰μ΄ 보닀 λΉ½λΉ½ν•œ μ‚¬λžŒ 되기

 

 

 

HTMLκ³Ό CSSλŠ” 이용자의 λ™μž‘μ— λ”°λ₯Έ λ³€ν™”λ₯Ό 일반적으둜 화면에 λ°˜μ˜ν•  수 μ—†λ‹€. κ·ΈλŸ¬λ‚˜ μ–΄λ–€ μš”μ†Œ μœ„μ— μ»€μ„œλ₯Ό 올렀 λ†“κ±°λ‚˜ 뗐을 λ•Œμ²˜λŸΌ 자주 κ΅¬ν˜„ν•  ν•„μš”μ„±μ΄ μžˆλŠ” λ™μž‘ μΌλΆ€λŠ” 가상 ν΄λž˜μŠ€λ‚˜ μš”μ†Œμ˜ ν˜•νƒœλ‘œ μ œκ³΅ν•˜κΈ°λ„ ν•œλ‹€. 이번 ν¬μŠ€νŠΈμ—μ„œλŠ” 가상 ν΄λž˜μŠ€μ™€ μš”μ†Œμ— λŒ€ν•΄ μ•Œμ•„λ³΄κ³ , μ—¬λŸ¬ μ„ νƒμžκ°€ ν•œ μš”μ†Œλ₯Ό 꾸며쀄 λ•Œ μš°μ„ μˆœμœ„λ₯Ό ν‘œκΈ°ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” κ΅¬μ²΄μ„±μ˜ μ •μ˜μ— λŒ€ν•΄ μ•Œμ•„λ³Έλ‹€. <ν•΄λ‹Ή ν¬μŠ€νŠΈλŠ” λΉ„μ „κ³΅μžλ₯Ό μœ„ν•œ HTML/CSS κ°•μ˜ 기반으둜 μž‘μ„±λλ‹€>

 

 

 

가상 클래슀pseudo class

 

예λ₯Ό λ“€μ–΄, <p>κ°€ μžˆλ‹€κ³  κ°€μ •ν•˜μž. 이 <p>에 마우슀 μ»€μ„œλ₯Ό μ˜¬λ Έμ„ λ•Œλ§Œ νŠΉμ • μŠ€νƒ€μΌμ„ μ£Όλ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒ? ν•΄λ‹Ή λ™μž‘μ„ μœ„ν•΄ κ΅¬ν˜„ν•΄μ•Ό ν•  뢀뢄은 λ‹€μŒκ³Ό κ°™λ‹€. 

 

(1) μž„μ˜μ˜ 클래슀 μ„ νƒμžλ₯Ό μ„ μ–Έν•΄ νŠΉμ • μŠ€νƒ€μΌ κ·œμΉ™μ„ λ§Œλ“ λ‹€.

(2) <p> μš”μ†Œμ— μ»€μ„œκ°€ μ˜¬λΌκ°€λ©΄ 클래슀λ₯Ό μ§‘μ–΄λ„£λŠ”λ‹€.

(3) <p> μš”μ†Œμ—μ„œ μ»€μ„œκ°€ λΉ μ§€λ©΄ 클래슀λ₯Ό μ‚­μ œν•œλ‹€.

 

이런 ν˜•νƒœμ˜ κΈ°λŠ₯은 HTMLκ³Ό CSSμ—μ„œλŠ” λ§Œλ“€μ–΄ λ‚΄κΈ° μ–΄λ ΅λ‹€. 2, 3λ²ˆμ€ λ™μ μœΌλ‘œ 변화돼야 ν•˜λŠ” 뢀뢄인데, 두 μ–Έμ–΄λŠ” 정적인 언어이기 λ•Œλ¬Έμ— 이런 뢀뢄을 κ΅¬ν˜„ν•  수 μ—†κΈ° λ•Œλ¬Έμ΄λ‹€. κ·Έλž˜μ„œ CSSμ—μ„œλŠ” ν”ν•˜κ²Œ μ‚¬μš©λ˜λŠ” μ—¬λŸ¬ νŒ¨ν„΄μ— λŒ€ν•΄ 미리 μ •μ˜ν•΄ 놓고 이λ₯Ό 가상 클래슀 ν˜•νƒœλ‘œ μ œμ–΄ν•  수 있게 ν–ˆλ‹€.

 

:pseudo-class {
    property: value;
}

 

가상 클래슀의 κΈ°λ³Έν˜•μ€ μœ„μ™€ κ°™λ‹€. 가상 클래슀λ₯Ό μ΄μš©ν•˜λ©΄, λ‹€λ₯Έ μ–Έμ–΄λ₯Ό λŒμ–΄μ˜€μ§€ μ•Šκ³ λ„ CSS λ‚΄μ—μ„œ 동적인 κΈ°λŠ₯을 처리 κ°€λŠ₯ν•˜λ―€λ‘œ 훨씬 νš¨μœ¨μ μ΄λ‹€. μ•„λž˜λΆ€ν„°λŠ”, 기본적인 가상 클래슀의 μœ ν˜•μ— λŒ€ν•΄ 닀룬닀.

 



λ¬Έμ„œ ꡬ쑰와 κ΄€λ ¨λœ 가상 클래슀

 

first-child : 첫 번째 μžμ‹ μš”μ†Œ 선택.
last-child : λ§ˆμ§€λ§‰ μžμ‹ μš”μ†Œ 선택.

 

<ul>
    <li>HTML</li>
    <li>CSS</li>
    <li>JS</li>
</ul>

 

li:first-child { color: red; }
li:last-child { color: blue; }

 

ν•΄λ‹Ή μ½”λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ 처음 <li>와 λ§ˆμ§€λ§‰ <li>에 각각 색상이 μ μš©λœλ‹€. 즉, 가상 μ„ νƒμžλ‘œ μœ„μ™€ 같이 κ΅¬ν˜„ν•œ μ½”λ“œλŠ” μ•„λž˜ μ½”λ“œμ²˜λŸΌ 가상 μ„ νƒμž 없이 κ΅¬ν˜„λ  μˆ˜λ„ μžˆλ‹€.

 

<ul>
    <li class="first-child">HTML</li>
    <li>CSS</li>
    <li class="last-child">JS</li>
</ul>

 

 

 

액컀 μš”μ†Œμ™€ κ΄€λ ¨λœ 가상 클래슀

 

:link : ν•˜μ΄νΌ λ§ν¬μ΄λ©΄μ„œ 아직 λ°©λ¬Έν•˜μ§€ μ•Šμ€ 액컀.
:visited : 이미 λ°©λ¬Έν•œ ν•˜μ΄νΌλ§ν¬λ₯Ό 의미.

 

a:link { color: blue; }
a:visited { color: gray; }

 

 

 

μ‚¬μš©μž λ™μž‘κ³Ό κ΄€λ ¨ν•œ 가상 클래슀

 

이것듀도 주둜 <a>에 많이 쓰인닀. λ‹€λ§Œ 액컀 κ΄€λ ¨ ν΄λž˜μŠ€μ™€ 달리 쑰건만 맞으면 λ‹€λ₯Έ μš”μ†Œμ—λ„ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€.


focus: ν˜„μž¬ μž…λ ₯ μ΄ˆμ μ„ κ°€μ§„ μš”μ†Œμ— 적용
hover: 마우슀 포인터가 μžˆλŠ” μš”μ†Œμ— 적용
active: μ‚¬μš©μž μž…λ ₯으둜 ν™œμ„±ν™”λœ μš”μ†Œμ— 적용

 

a:focus { background-color: yellow; }
a:hover { font-weight: bold; }
a:active { color: red; }

 



가상 μš”μ†Œ pseudo element

 

::pseudo-element {
    property: value;
}

 

가상 클래슀처럼 λ¬Έμ„œ 내에 보이지 μ•Šμ§€λ§Œ 미리 μ •μ˜ν•œ μœ„μΉ˜μ— μ‚½μž…λ˜λ„λ‘ μ•½μ†λ˜μ–΄ μžˆλŠ” κ²ƒμœΌλ‘œ, 가상 μš”μ†Œκ°€ μžˆλ‹€. 가상 μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λ©΄ HTML μ½”λ“œμ— μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” ꡬ쑰 μš”μ†Œμ— μŠ€νƒ€μΌμ„ λΆ€μ—¬ν•  수 μžˆλ‹€. 기본적으둜 가상 ν΄λž˜μŠ€μ™€ λ™μΌν•˜κ²Œ 콜둠으둜 μ„ μ–Έν–ˆμœΌλ‚˜, CSS3λΆ€ν„°λŠ” 가상 ν΄λž˜μŠ€μ™€μ˜ ꡬ뢄을 μœ„ν•΄ ::(더블 콜둠) 기호λ₯Ό μ‚¬μš©ν•˜κ²Œ κ°œνŽΈλλ‹€. λ‹€λ§Œ ν•˜μœ„ λΈŒλΌμš°μ €μ—μ„œ :: 문법을 μ§€μ›ν•˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ μžˆμ„ 수 있고 이 λ•ŒλŠ” ; 기호λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

 

before : κ°€μž₯ μ•žμ— μš”μ†Œλ₯Ό μ‚½μž….
after : κ°€μž₯ 뒀에 μš”μ†Œλ₯Ό μ‚½μž….
first-line : μš”μ†Œμ˜ 첫 번째 쀄에 μžˆλŠ” ν…μŠ€νŠΈ.
first-letter : 블둝 레벨 μš”μ†Œμ˜ 첫 번째 문자.

 

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>

 

p::before { content: "###" }
p::after { content: "!!!" }
p::first-line { ... }
p::first-letter { ... }

 

before와 after 가상 μš”μ†ŒλŠ” μ• μ΄ˆμ— λ‚΄μš©μ΄ μ—†λŠ” μƒνƒœλ‘œ μƒμ„±λ˜κΈ° λ•Œλ¬Έμ— λ‚΄μš©μ„ λ„£κΈ° μœ„ν•΄μ„œλŠ” content 속성을 μ΄μš©ν•΄μ•Ό ν•œλ‹€. λˆˆμ— 보이지 μ•ŠλŠ” μš”μ†Œλ₯Ό ꡬ체화해 보면 λ‹€μŒκ³Ό κ°™λ‹€.

 

<p>
    <first-letter>L</first-letter>orem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
<p>
    <!-- λͺ¨λ‹ˆν„° κ°€λ‘œ 해상도에 따라 μš”μ†Œκ°€ ν¬ν•¨ν•˜λŠ” λ‚΄μš©μ΄ λ³€λ™λ©λ‹ˆλ‹€. -->
    <first-line>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiu ..(..μ–΄λ”˜κ°€μ―€..) </first-line>... unt ut labore et dolore magna aliqua.
</p>

 

 

 

μ„ μ–Έμ˜ ꡬ체성

 

h1 { color: red; }
body h1 { color: green; }

 

μš”μ†Œλ₯Ό μ„ νƒν•˜λŠ” λ°λŠ” μ—¬λŸ¬ 방법이 μžˆλ‹€. λ”°λΌμ„œ μ„œλ‘œ λ‹€λ₯Έ μ„ νƒμžλ₯Ό μ΄μš©ν•΄ 같은 μš”μ†Œλ₯Ό 선택할 μˆ˜λ„ μžˆλ‹€. μœ„ μ½”λ“œμ—μ„œ, 두 κ·œμΉ™μ€ λͺ¨λ‘ <h1>을 μ§€μ •ν•˜μ§€λ§Œ 두 κ·œμΉ™μ΄ μ§€μ •ν•˜λŠ” μŠ€νƒ€μΌμ€ μ„œλ‘œ λ‹€λ₯΄λ‹€. 이럴 λ•Œ <h1>은 μ–΄λ–»κ²Œ ν‘œν˜„λ κΉŒ.

 

μ„ νƒμžμ—λŠ” μ–΄λ–€ κ·œμΉ™μ΄ μš°μ„ μœΌλ‘œ μ μš©λΌμ•Ό ν•˜λŠ”μ§€μ— λŒ€ν•΄ μ •ν•΄μ§„ κ·œμΉ™μ΄ μžˆλ‹€. 이 κ·œμΉ™μ„ 'ꡬ체성'이라고 ν•œλ‹€. ꡬ체성은 μ„ νƒμžλ₯Ό μ–Όλ§ˆλ‚˜ λͺ…μ‹œμ μœΌλ‘œ μ„ μ–Έν–ˆλŠλƒλ₯Ό μˆ˜μΉ˜ν™”ν•œ κ²ƒμœΌλ‘œ, κ΅¬μ²΄μ„±μ˜ 값이 클 수둝 μš°μ„ μœΌλ‘œ μ μš©λœλ‹€.

 

0, 0, 0, 0

 

ꡬ체성은 μœ„μ™€ 같이 λ„€ 개의 숫자 κ°’μœΌλ‘œ 이뀄져 μžˆλ‹€. 값을 비ꡐ할 λ•ŒλŠ” μ’ŒμΈ‘μ— μžˆλŠ” κ°’λΆ€ν„° λΉ„κ΅ν•˜λ©°, 쒌츑 λΆ€λΆ„μ˜ μˆ«μžκ°€ 클 수둝 높은 ꡬ체성을 κ°–λŠ”λ‹€. ꡬ체성은 μ•„λž˜μ˜ κ·œμΉ™λŒ€λ‘œ κ³„μ‚°λœλ‹€. 

 0, 1, 0, 0 : μ„ νƒμžμ— μžˆλŠ” λͺ¨λ“  id μ†μ„±κ°’
 0, 0, 1, 0 : μ„ νƒμžμ— μžˆλŠ” λͺ¨λ“  class μ†μ„±κ°’, κΈ°νƒ€ μ†μ„±, κ°€μƒ ν΄λž˜μŠ€
 0, 0, 0, 1 : μ„ νƒμžμ— μžˆλŠ” λͺ¨λ“  μš”μ†Œ, κ°€μƒ μš”μ†Œ

 0, 0, 0, 0 : 전체 μ„ νƒμž

 

h1 { ... }  /* 0,0,0,1 */
body h1 { ... }  /* 0,0,0,2 */
.grape { ... }  /* 0,0,1,0 */
*.bright { ... }  /* 0,0,1,0 */
p.bright em.dark { ... }  /* 0,0,2,2 */
#page { ... }  /* 0,1,0,0 */
div#page { ... }  /* 0,1,0,1 */

 

 


인라인 μŠ€νƒ€μΌ

 

p#page { color: red; }

 

<p id="page" style="color:blue">Lorem impusm dolor sit.</p>

 

μœ„ 두 μŠ€νƒ€μΌ 선언문을 보자. μ „μžλŠ” 0, 1, 0, 1의 ꡬ체성을 κ°€μ§€λŠ” μ„ νƒμžλ‘œ μŠ€νƒ€μΌμ„ μ„ μ–Έν•œ 것이고 두 λ²ˆμ§ΈλŠ” μš”μ†Œμ— 직접 인라인 μŠ€νƒ€μΌ λ°©μ‹μœΌλ‘œ μ„ μ–Έν•œ 것이닀. λ‘˜ 쀑 무엇이 μš°μ„ μˆœμœ„λ‘œ 적용될까? 정닡은 ν›„μžλ‹€. 인라인 μŠ€νƒ€μΌμ˜ ꡬ체성 값은 1, 0, 0, 0이며 κ·œμΉ™λ“€ 쀑 κ°€μž₯ 큰 ꡬ체성을 κ°–λŠ”λ‹€. 
 



κ·œμΉ™μ— μš°μ„ κΆŒ μ μš©ν•˜κΈ°, important

 

p#page { color: red !important; }

 

<p id="page" style="color:blue">Lorem impusm dolor sit.</p>

 

important ν‚€μ›Œλ“œλŠ” λ³„λ„μ˜ ꡬ체성 값은 μ—†μ§€λ§Œ λͺ¨λ“  ꡬ체성을 λ¬΄μ‹œν•˜κ³  μš°μ„ κΆŒμ„ κ°–λŠ”λ‹€. 속성값 뒀에 ν•œ μΉΈ 곡백을 μ£Όκ³  λŠλ‚Œν‘œ κΈ°ν˜Έμ™€ ν•¨κ»˜ μ“°λ©΄ importantλ₯Ό μ μš©ν•  수 μžˆλ‹€. μœ„μ˜ <p>μ—λŠ” important둜 인해 color: redκ°€ μ μš©λœλ‹€.
 


μ†μ„±μ˜ 상속

 

h1 { color: gray; }

 

<h1>Hello, <em>CSS</em></h1>

 

μœ„ μ½”λ“œμ—μ„œ <em>은 λΆ€λͺ¨μΈ <h1>의 color: greyλ₯Ό μƒμ†λ°›λŠ”λ‹€. λ‹€λ§Œ, λͺ¨λ“  λΆ€λͺ¨μ˜ 속성이 μžμ‹μ—κ²Œ μƒμ†λ˜λŠ” 건 μ•„λ‹ˆλ‹€. μƒμ‹μ μœΌλ‘œ ꡬ뢄될 λ§Œν•œ 속성 μ™Έ, margin/ padding/ background/ border 등은 μƒμ†λ˜μ§€ μ•ŠλŠ”λ‹€.

 



상속 μ†μ„±μ˜ ꡬ체성

 

* { color: red; }
h1#page { color: gray; }

  

<h1 id="page">Hello, <em>CSS</em></h1>

 

μœ„ μ½”λ“œμ—μ„œ, <em>μ—λŠ” color: redκ°€ μ μš©λœλ‹€. μƒμ†λœ 속성은 ꡬ체성을 κ°€μ§€μ§€ λͺ» ν•˜λŠ” 점을 κΈ°μ–΅ν•˜μž.

 

 

 

 

 

 

더보기
TOOLS/Frontend