CSS νμ κ°λ 볡μ΅
CSS μ§μ μμ±ν΄λ³΄κΈ°
λ΄κ° μ§ μ½λμ κ°μ λ΄μ© λΉκ΅Β·λΆμ
transform: transitionX(100px)
transform: transitionY(100px)
transform: transition(-50px, -20px) Β Β β» μμ: (μ’μ°, μν)
transition: λμ μμ±ο½μ§μ μκ°ο½λ³ν 리λ¬ο½μ§μ° μκ°
κ°μ ν΄λμ€ μ νμ λλ javascriptμ λΆμμ μΈ μ‘μ μ΄ μμ΄μΌλ§ λ°λ κ°λ₯
λ³ν 리λ¬
div:hover { border-radius: 50%; transform: translateX(500px); background-color: blue; transition: all 3s steps(5, start) 1s; }
μ μ λ°©λ² β --컀μ€ν
μμ±: μμ±κ°;
μ μ© λ°©λ² β μμ±: var(--컀μ€ν
μμ±);
λ³μκ°μ νμ μμμ μμλλ€. μ¦, 컀μ€ν
μμ±μ΄ μ§μ λ μμμ λͺ¨λ μμμμλ€
μ μ μ© κ°λ₯νλ€.
calc() ν¨μ
λ₯Ό ν¨κ» μ΄μ©ν μ μλ€.
ex. margin-left: calc(var(--base-space)
* 2);
μμ£Ό λ°λ³΅λλ μμ±μ λ³μλ‘ μ μν΄μ μ¬μ©νλ©΄, κ·Έ κ°μ μμ νκ³ μΆμ λ ν κ΅°λ°λ§ μ°Ύμμ κ³ μΉλ©΄ λλ€. μ΄λ₯Ό μν΄ λ¬Έμ νΈλ¦¬μ λ£¨νΈ μμμΈ :root
μ 컀μ€ν
μμ±μ μ μνλ©΄ νΈλ¦¬νλ€.
νΉν λ―Έλμ΄μΏΌλ¦¬
λ₯Ό μ΄μ©ν λ λ§€μ° μ μ©νλ€. μμ :rootμ μ μν΄λμ 컀μ€ν
μμ±λ€μ κ·Έλλ‘ λ³΅μ¬ λΆμ¬λ£κΈ° ν ν κ·Έ κ°λ§ λ°κΏμ£Όλ©΄ λλ€.
:root { --background-color: yellow; --font-size: 12px; }
@media screen and (max-width: 600px) { :root { --background-color: red; --font-size: 8px; } }
default λ³μκ°
μ μ§μ ν΄μ€ μ μλ€.:root
β κΈλ‘λ² λ³μ μ μ (컀μ€ν
μμ± μ μ)
*
β λͺ¨λ μμμ 곡ν΅μ μΌλ‘ μ μ©λ μμ± μ μ
μμ
/* global */ :root { /* color */ --color-white: #ffffff; --color-light-white: #eeeeee; --color-dark-white: #bdbdbd; /* font size */ --font-large: 50px; --font-medium: 30px; --font-regular: 20px; --font-small: 15px; --font-micro: 10px; /* font weight */ /* linkλ‘ μ°κ²°ν κ΅¬κΈ ν°νΈλ₯Ό μ°Έκ³ ν΄μ μ€μ */ --weight-bold: 700; --weight-semi-bold: 600; --weight-regular: 400; } /* universal tags */ * { box-sizing: border-box; }
κΈμ(ν μ€νΈ) λμμΈμ κΎΈλ©°μ£Όλ κ²
HTML μμ± μ μ¬μ©νλ <h1>
~<h6>
, <p>
λ±μ λν΄ μ€μ ν΄μ€λ€
μμ
h1 { font-size: var(--font-large); font-weight: var(--weight-bold); color: var(--color-white); margin: 16px 0; /* marginμ κ²½μ°, κ°λ°μ λꡬλ₯Ό ν΅ν΄ νμΈν ν μ μ ν μ€μ ν κ² */ } /* h2, h3, pλ κ°μ λ°©λ²μΌλ‘ μ€μ */
μ§λ¬Έ 4κ°λ₯Ό νλ§λλ‘ νννλ©΄, π’μμ§ μ€μ μ λ ¬μ΄ μ£½μ΄λ μλ¨π’μ΄μλ€
λͺ μκ°μ κ²μκ³Ό κ³ λ―Ό λμ μ΄λ κ² μ λ κ² κ»΄λ§μΆ°μ κ²°κ΅ κ²°κ³Όλ¬Όμ λμκ³Ό λΉμ·νκ² λ§λ€ μ μμλ€. νμ§λ§ μ΄λ»κ² κ·Έλ κ² λλμ§ μ리λ μ΄ν΄κ° μ λλ€.
λ§μΉ¨λ΄ κ°μλ₯Ό λ΄€λλ°......align-items: center;
μ΄κ±Έ μ΄λ»κ² μκ°μ λͺ»νμκΉ. μ΄ λͺ¨λ μ§λ¬Έλ€μ λν λ΅μ μ 지λ§ν ν μ€μ΄μλ€. flexboxμ μνΒ·μμ§ μ λ ¬ μ΄ν΄νλ €κ³ κ±°μ ν루λ₯Ό κΌ¬λ° μμμκ³ , κ²°κ΅ μ΄ν΄λ νλ€κ³ λΏλ―ν΄ νμλλ° μ κ±Έ κΉλ§£κ² μκ³ μμλ€λ.
λ³λͺ
νμλ©΄, μ΅κ·Όμ vertical-align
κ³Ό line-height
κ° μ΄ν΄κ° μ μ λΌμ ννμ΄ μ°Ύμλ³΄κ³ μμλλ° κ·Έλμ λ κ½ν μμλ κ±° κ°λ€. ꡬ차ν λ³λͺ
μ΄λ€. κ·Όλ° λ ν° λ¬Έμ λ μμ§λ μ΄ λ κ°λ
μ μ΄ν΄κ° μ λλ€λ κ±°λ€. κ·Έλμ λ°μ μ§λ¬Έ 4κ°λ μμ£Ό νλ§ν리λ§μΉ μμκ°μ ν΄κ²°μ΄ λμμ§λ§ μ λΆ μ§μ°μ§ μκ³ λ¨κ²¨λκΈ°λ‘ νλ€.
μ§μ μ½λ©νλ©΄μ κ·Έλκ·Έλ λ μ¬λλ μ§λ¬Έλ€κ³Ό μ΄μ°μ μ°ν΄μ κ²°κ΅ μ°ΎμλΈ μ°μ°ν λ΅μλ€μ΄λ€.
Q1. logo μ΄λ―Έμ§μ ν μ€νΈλ₯Ό μ΄λ»κ² navμ μμ§ μ€μ μ λ ¬μν¬ μ μμκΉ?
vertical-align: middleμ ν΅ν΄ μμ§ μ€μ μ λ ¬μν€κΈ΄ νλλ° μ νν μ리λ₯Ό λͺ¨λ₯΄κ² λ€.
Q2. ulμ display: flexλ₯Ό μ§μ νλλ°λ justify-content: space-betweenμ΄ μ λ¨Ήνλ€.
ulμ width: 50%λ₯Ό μ§μ ν΄μ£ΌλκΉ justify-content: space-betweenλ λ¨Ήνλ©΄μ μμ§ μ€μ μ λ ¬μ΄ λλ€. λ€λ§ μ΄λ κ² νλκΉ λΈλΌμ°μ μ°½ ν¬κΈ°λ₯Ό μ€μμ λ μ€λ₯Έμͺ½μ marginλ μλ, HTML λ¬Έμ λ°μ μ¬λ°±μ΄ μκΈ°κ³ navbarκ° μλ € 보μλ€.
Q3. liκ° navμμ μμ§ μ€μ μ λ ¬μ΄ λμ§ μκ³ λ€μ μμͺ½μ λΆμ΄μλ€. navμ logo μ΄λ―Έμ§κ° 컀μ κ·Έ ν¬κΈ°μ λ§μΆ°μ liμ λμ΄λ λμμ§ λ―νλ° κ°λ°μ λκ΅¬λ‘ νμΈν΄ 보면 li μ½ν μΈ λ₯Ό λλ¬μΈκ³ μλ μ¬λ°±μ΄ λ°μͺ½μ μ λ € μλ€. liμ marginμ΄λ paddingλ λΆμ¬λμ΄ μμ§ μμλ° κ·Έ μ¬λ°±μ μ΄λ»κ² μλ, μ λκ°μ΄ λ§λ€μ΄μ navμμ liλ₯Ό μμ§ μ€μ μ λ ¬μν¬ μ μμκΉ?
<ul>
or<li>
μ line-height: 300% νΉμ line-height: 2.5 νΉμ line-height: 45px νΉμ line-height: 2.5em μ μ μ©νλκΉ λλμ€μΌλ‘λ μμ§ μ€μ μ λ ¬μ΄ λλ κ±° κ°λ€. κ·Έλ¬λ λλμ€μΌ λΏμ΄κ³ μ΄κ² μ΄λ»κ² κ°λ₯ν κ±΄μ§ μ리λ λͺ¨λ₯΄κ² λ€. ν°νΈ 맀νΈλ¦μ€, line-heightμ vertical-alignλ₯Ό μ°Έκ³ νμΌλ μ΄ν΄κ° μ΄λ €μ λ€.
Q4. <li>
μ€ HOME λ©λ΄μ borderμ μμ°λκΉ λ€λ₯Έ <li>
λ€κ³Ό μ€μμ΄ λ§μ§ μλλ€.
HOME λ©λ΄μλ§ line-height: 2.3μ μ μ©ν΄μ μ€μμ λ§μΆκΈ΄ νμΌλ μμ μ리λ₯Ό λͺ¨λ₯΄κ² λ€.
color
(ν°νΈ μκΉ) μμ±μ #navbarμ μ§μ ν΄μ ν λ²μ νμ μμκΉμ§ μ λΆ μ μ©λ μ μλλ‘ νλ€.
flexbox κ΅μ°¨μΆ μ€μ μ λ ¬
β align-items: center
π₯π₯π₯π₯π₯
navbar-menu-item, μ¦ <li>
λ€ μ¬μ΄λ₯Ό λμ°λ €λ©΄ justify-content: space-between λ§κ³ κ·Έλ₯ marginμ΄λ padding κ°μ λ£μ΄μ£Όλ©΄ λλ€.
text-decoration: none
κ³Ό list-style: none
μ²λΌ νμ λκ°μ΄ μ μ©ν μμ±λ€μ λ§€λ² classλ§λ€ μ§μ ν΄μ£Όμ§ λ§κ³ , μμ /* universal tags */
μ aμ li νκ·Έλ₯Ό λͺ
μν΄μ μ§μ ν΄λ¬λΌ.
κ΅¬κΈ ν°νΈλ₯Ό body
μ μ§μ ν΄μ€¬λ€.
κΈ°λ³Έμ μΌλ‘ ν
μ€νΈ μμ λ§μ°μ€ 컀μλ₯Ό μ¬λ €λ κ·Έ λͺ¨μμ΄ λ³νμ§ μλλ‘ νκΈ° μν΄ bodyμ cursor: default
λ₯Ό μ§μ ν΄μ€¬λ€.
λ¨, li μμ λ§μ°μ€ 컀μλ₯Ό μ¬λ Έμ λλ μ λͺ¨μμΌλ‘ λ°λλλ‘ cursor: pointer
λ₯Ό μ§μ ν΄μ€¬λ€.
border-radiusλ μ΄ λ¬Έμ λ΄μμλ νμ λμΌν κ°μ μ¬μ©ν κ²μ΄κΈ° λλ¬Έμ :rootμ λ³μκ°μ μ§μ ν΄μ£Όμλ€.
class="navbar-menu-item active"λ₯Ό κ°λ¦¬ν€λ CSS μ νμλ navbar-menu-item.activeμ΄λ€. μ΄ κ²½μ°μ .active μμμ λμ΄μ°κΈ° νλ©΄ μ λλ€.
border-radius μμ±μ .activeμ :hoverμμ λ°λ³΅λλ―λ‘ μμ .nav-menu-itemμ ν λ²λ§ μ¨μ£Όλλ‘ νλ€.