[HTML/CSS] πŸ“š μ„ νƒμž

pyeonneΒ·2022λ…„ 6μ›” 9일
0
post-thumbnail

πŸ“‹ κΈ°μ–΅ν•˜κ³  싢은 λ‚΄μš©

πŸ“Œ μ£Όμš” μ„ νƒμž - Type, Class, ID

  • HTML λ¬Έμ„œ 전체에 μΌκ΄„μ μœΌλ‘œ μŠ€νƒ€μΌμ„ μ μš©ν•˜κ³  싢을 λ•Œ Type Selectorλ₯Ό μ‚¬μš©ν•œλ‹€.
  • Type Selector듀은 제일 상단에 λͺ¨μ•„ μž‘μ„±ν•˜λŠ” 것이 μΌλ°˜μ μ΄λ‹€.

πŸ“Œ 속성 μ„ νƒμž

/* 1. [attr] */
a[target] {
	color: red;
}

/* 2. [attr=value] */
a[href="https://example.org"] {
	color: indigo;
}

/* 3. [attr^=value] */
a[href^="http://"] {
	color: green;
}

/* 4. [attr$=value] */
a[href$=".com"] {
	font-style: italic;
}

/* 5. [attr*=value] */
a[href*="example"] {
	color: sienna;
}
  • [attr=value] 속성 μ„ νƒμžλŠ” 보톡 input μš”μ†Œμ˜ νƒ€μž… λ³„λ‘œ μŠ€νƒ€μΌμ„ μ μš©ν•˜κ³  싢을 λ•Œ μ‚¬μš©ν•œλ‹€.
  • Caret Sign(^)은 ν•΄λ‹Ή κ°’μœΌλ‘œ μ‹œμž‘ν•˜λŠ” λͺ¨λ“  μš”μ†Œλ₯Ό μ„ νƒν•˜κ³ , Dollar Sign($)은 ν•΄λ‹Ή κ°’μœΌλ‘œ λλ‚˜λŠ” λͺ¨λ“  μš”μ†Œλ₯Ό μ„ νƒν•œλ‹€.
  • Asterisk Sign(*)은 ν•΄λ‹Ή 값을 가지고 μžˆλŠ” λͺ¨λ“  μš”μ†Œλ₯Ό μ„ νƒν•œλ‹€.

πŸ“Œ 가상 클래슀 μ„ νƒμž

/* 1. :first-child */
li:first-child {
	color: green;
}

/* 2. :last-child */
span:last-child {
	color: tomato;
}

/* 3. :nth-child() */
li:nth-child(3) {
	color: hotpink;
}

/* 4. :first-of-type */
p:first-of-type {
	color: red;
}

/* 5. :last-of-type */
p:last-of-type {
	color: blue;
}

/* 6. :nth-of-type() */
p:nth-of-type(even) {
	color: blue;
}

/* 7. :not() */
input:not(.pw) {
	background-color: indianred;
}

/* 8. :link */
a:link {
	color: tomato;
}

/* 9. :visited */
a:visited {
	color: yellow;
}

/* 10. :hover */
input[type=button]:hover {
	background-color: teal;
    color: white;
}

/* 11. :active */
input[type=button]:active {
	background-color: red;
    color: white;
}

/* 12. :focus */
input[type=text]:focus {
	background-color: blue;
    color: white;
}

/* 13. :enabled */
input[type=text]:enabled {
	background-color: skyblue;
}

/* 14. :disabled */
input[type=text]:disabled {
	background-color: silver;
}

/* 15. :checked */
input[type=radio]:checked {
	outline: 3px solid red;
}
  • :first-child 가상 클래슀 μ„ νƒμžλŠ” ν˜•μ œ μš”μ†Œλ“€ μ€‘μ—μ„œ 첫 번째 μžμ‹ μš”μ†Œλ₯Ό 가리킨닀.
    • λ§Œμ•½ ν˜•μ œ μš”μ†Œλ“€μ˜ 첫 번째 μš”μ†Œκ°€ λ‹€λ₯Έ μš”μ†ŒλΌλ©΄ μŠ€νƒ€μΌμ΄ μ μš©λ˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ λ°œμƒν•œλ‹€.
    • 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‚˜μ˜¨ 것이 :first-of-type 가상 클래슀 μ„ νƒμžλ‹€.
  • :nth-child() 가상 클래슀 μ„ νƒμžμ˜ κ΄„ν˜Έ μ•ˆμ—λŠ” 숫자 뿐만 μ•„λ‹ˆλΌ odd와 even ν‚€μ›Œλ“œλ„ 넣을 수 μžˆλ‹€.
    • oddλŠ” ν™€μˆ˜λ₯Ό λœ»ν•˜κ³ , 2n-1κ³Ό λ™μΌν•˜κ²Œ μž‘λ™ν•œλ‹€.
    • even은 짝수λ₯Ό λœ©ν•˜κ³ , 2nκ³Ό λ™μΌν•˜κ²Œ μž‘λ™ν•œλ‹€.
  • :first-of-type 가상 클래슀 μ„ νƒμžλŠ” ν•΄λ‹Ή μš”μ†Œλ“€ μ€‘μ—μ„œ 첫 번째 μš”μ†Œλ₯Ό 가리킨닀.
    • λ™μΌν•œ 클래슀 μ„ νƒμžλ₯Ό 가진 μš”μ†Œλ“€ μ€‘μ—μ„œ λ‹€λ₯Έ νƒ€μž…μ˜ μš”μ†Œλ₯Ό κ°€μ‘Œμ„ 경우 μ—¬λŸ¬ 개λ₯Ό 가리킬 수 μžˆλ‹€.
  • :not() 가상 클래슀 μ„ νƒμžλŠ” κ΄„ν˜Έ μ•ˆμ— μž‘μ„±λœ μš”μ†Œλ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ λͺ¨λ“  μš”μ†Œμ— μŠ€νƒ€μΌμ„ μ μš©ν•œλ‹€.
  • :active 가상 클래슀 μ„ νƒμžλŠ” mousedown μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ μ μš©λ˜λŠ” μŠ€νƒ€μΌμ„ 지정할 수 μžˆλ‹€.
  • 링크λ₯Ό 적절히 λ””μžμΈν•˜λ €λ©΄ LVHA μˆœμ„œμ— 따라 μž‘μ„±ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

πŸ“Œ 가상 μš”μ†Œ μ„ νƒμž

/* 1. ::before */
.movie::before {
	content: '⭐';
	color: indianred;
}

/* 2. ::after */
.movie::after {
	content: '⭐';
	color: indianred;
}

/* 3. ::first-letter */
.lorem::first-letter {
	color: red;
    font-size: 30px;
}

/* 4. ::first-line */
.lorem::first-line {
	color: red;
}

/* 5. ::seletion */
.lorem::selection {
	background-color: blue;
}
  • 가상 μš”μ†Œ μ„ νƒμžλŠ” 보톡 μ‹€μ œλ‘œ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μš”μ†Œ ν˜Ήμ€ λ²”μœ„λ₯Ό λ§Œλ“€μ–΄μ„œ μŠ€νƒ€μΌμ„ μ μš©ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
  • 가상 μš”μ†Œ μ„ νƒμžλ‘œ λ§Œλ“  가상 μš”μ†ŒλŠ” 선택도 λ˜μ§€ μ•Š, 볡사도 λ˜μ§€ μ•ŠλŠ”λ‹€.
  • 단지 κΎΈλ―ΈκΈ° μœ„ν•œ μš©λ„λ‘œ μ‚¬μš©λ˜λ©°, 보톡 뱃지λ₯Ό λ§Œλ“€κ±°λ‚˜ 메뉴 사이에 ꡬ뢄선을 λ§Œλ“€ λ•Œ μ‚¬μš©ν•œλ‹€.
  • ::before 가상 μš”μ†Œ μ„ νƒμžλ₯Ό μ‚¬μš©ν•œ μš”μ†Œμ— ::first-letter 가상 μš”μ†Œ μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜λ©΄ ::before 가상 μš”μ†Œ μ„ νƒμžκ°€ κ°€λ¦¬ν‚€λŠ” μš”μ†Œμ˜ 첫 번째 ν…μŠ€νŠΈμ— μŠ€νƒ€μΌμ΄ μ μš©λœλ‹€.
  • ::first-line 가상 μš”μ†Œ μ„ νƒμžλŠ” 뷰포트 κ°€λ‘œ λ„ˆλΉ„μ™€ 상관없이 무쑰건 첫 μ€„λ§Œ μŠ€νƒ€μΌμ΄ μ μš©λœλ‹€.
  • ::selection 가상 μš”μ†Œ μ„ νƒμžλŠ” 선택 μ˜μ—­μ— λŒ€ν•œ μŠ€νƒ€μΌμ„ μ μš©ν•  λ•Œ μ‚¬μš©ν•œλ‹€.

πŸ“Œ μ„ νƒμž κ²°ν•©

/* 1. ν•˜μœ„ μ„ νƒμž */
#list li:last-of-type {
	color: red;
}

/* 2. μžμ‹ μ„ νƒμž */
#list > li:last-of-type {
	color: red;
}

/* 3. 일반 ν˜•μ œ μ„ νƒμž */
code ~ p {
	color: red;
}

/* 4. 인접 ν˜•μ œ μ„ νƒμž */
code + p {
	color: red;
}

/* 5. κ·Έλ£Ήν™” */
div, p {
	color: red;
}
  • μŠ€νŽ˜μ΄μ‹±μ„ μ‚¬μš©ν•΄ νƒμƒ‰ν•˜λŠ” λ²”μœ„λ₯Ό 쒁힐 수 μžˆλ‹€.
  • Right Angle Braket(>)을 μ‚¬μš©ν•˜λ©΄ λ°”λ‘œ μ•„λž˜μ˜ μžμ‹ μš”μ†Œλ“€λ§Œ 탐색할 수 μžˆλ‹€.
  • 일반 ν˜•μ œ μ„ νƒμž μ‚¬μš© μ‹œ μ£Όμ˜ν•΄μ•Ό ν•  점은 Tilde(~) λ’€μ—λŠ” 항상 Tilde(~) μ•žμ— μž‘μ„±ν•œ μš”μ†Œμ˜ 뒀에 μž‘μ„±ν•œ ν˜•μ œ μš”μ†Œκ°€ 와야 ν•œλ‹€.
  • 인접 ν˜•μ œ μ„ νƒμžλŠ” μΈμ ‘ν•œ μš”μ†Œλ§Œ 선택할 수 μžˆλ‹€.

πŸ“Œ λ²”μš© μ„ νƒμž


* {
	color: red;
}

div > * {
	color: red;
}
  • λ²”μš© μ„ νƒμžλŠ” μ£Όμ˜ν•΄μ„œ μ‚¬μš©ν•˜κ³ , κ°€λŠ₯ν•œ CSS 파일의 μ΅œμƒλ‹¨μ— μž‘μ„±ν•˜λŠ” 것이 μ’‹λ‹€.
  • λ²”μš© μ„ νƒμžλŠ” λ‹¨λ…μœΌλ‘œ μ‚¬μš©ν•΄ HTML λ¬Έμ„œ μ „μ²΄μ˜ μŠ€νƒ€μΌμ„ 지정할 μˆ˜λ„ 있고, λ‹€λ₯Έ μ„ νƒμžμ™€ κ²°ν•©ν•΄ μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€.

πŸ“Œ 상속 μ œμ–΄ν•˜κΈ°

index.html

<div class="parent1">
  parent1
  <div class="child1">child1</div>
  <div class="child2">child2</div>
</div>

<div class="parent2">
  parent2
  <div class="child1">child1</div>
  <div class="child2">child2</div>
</div>

main.css

div {
	border: 1px solid silver;
    margin: 2px
}

.child1 {
	color: red;
}

.parent1, .parent2 {
	color: blue;
}

.parent2 .child1 {
	all: unset;
}
  • all: initial 값을 μ‚¬μš©ν•˜λ©΄ λΆ€λͺ¨ μš”μ†Œλ‘œλΆ€ν„° 상속받은 λͺ¨λ“  μŠ€νƒ€μΌμ„ κΈ°λ³Έκ°’μœΌλ‘œ λ³€κ²½ν•  수 μžˆλ‹€.
  • all: inherit 값을 μ‚¬μš©ν•˜λ©΄ λΆ€λͺ¨ μš”μ†Œλ‘œλΆ€ν„° 상속받은 λͺ¨λ“  μŠ€νƒ€μΌμ„ μ μš©ν•œλ‹€.
  • all: unset 값을 μ‚¬μš©ν•˜λ©΄ λΆ€λͺ¨λ‘œλΆ€ν„° 상속받을 값이 있으면 inherit으둜 μž‘λ™ν•˜κ³ , λΆ€λͺ¨λ‘œλΆ€ν„° 상속받을 값이 μ—†μœΌλ©΄ initial둜 μž‘λ™ν•œλ‹€.
    • μ—¬λŸ¬ CSS νŒŒμΌμ„ import ν–ˆμ„ λ•Œ ν•΄λ‹Ή μš”μ†Œμ— μ–΄λ–€ μŠ€νƒ€μΌμ΄ μ μš©λ¬λŠ”μ§€ μ•Œ 수 μ—†λŠ” κ²½μš°κ°€ μžˆλ‹€.
    • μ΄λ•Œ all: unset을 μ μš©ν•¨μœΌλ‘œμ¨ ν•΄λ‹Ή μš”μ†Œλ₯Ό μ΄ˆκΈ°ν™”λ₯Ό μ‹œν‚€κ³ , ν•΄λ‹Ή μš”μ†Œμ˜ λΆ€λͺ¨κ°€ 가지고 μžˆλŠ” μŠ€νƒ€μΌλ§Œ 상속받아 μž¬μ •μ˜ν•  수 μžˆλ‹€.

πŸ“Œ μš°μ„  μˆœμœ„

  1. μ„ μ–Έλœ κ³³
  2. λͺ…μ‹œλ„ (적용 λ²”μœ„κ°€ μ μ„μˆ˜λ‘ λͺ…μ‹œλ„κ°€ 높은 것!)
  3. μ½”λ“œ μœ„μΉ˜

🌝 μˆ˜κ°•ν•œ μ†Œκ° & λ– μ˜€λ₯΄λŠ” 생각

  • 상속을 μ œμ–΄ν•  수 μžˆλŠ” initial, inherit, unset 속성듀이 μ–΄λ–»κ²Œ λ™μž‘λ˜λŠ”μ§€ 쑰금 ν—·κ°ˆλ¦°λ‹€. ν˜„μ—…μ—μ„œ κ°„ν˜Ή μ‚¬μš©λœλ‹€κ³  ν•˜λ‹ˆ λ³΅μŠ΅μ„ 톡해 μ™„λ²½ν•˜κ²Œ μ΄ν•΄ν•˜λ„λ‘ ν•˜μž!

πŸ”— μ°Έκ³  래퍼런슀

profile
κ±΄κ°•ν•œ λͺΈκ³Ό λ§ˆμŒμ—μ„œ κ±΄κ°•ν•œ μ½”λ“œκ°€ νƒœμ–΄λ‚œλ‹€ !

0개의 λŒ“κΈ€