CSS(1)

μœ„μˆ˜ν˜„Β·2023λ…„ 2μ›” 21일
0

CSS

πŸ”Ž cascading Style Sheets

πŸ”Ž HTML νƒœκ·Έμ— 옷(=λ””μžμΈ)을 μž…ν˜€μ£ΌλŠ” 기법

πŸ”Ž λ¬Έμ„œ μ „μ²΄μ˜ 일관성을 μœ μ§€ν•  수 있고, μ„Έμ„Έν•œ μŠ€νƒ€μΌ μ§€μ •μ˜ ν•„μš”λ₯Ό 쀄여쀀닀.

HTMLλ¬Έμ„œμ— CSSλ₯Ό 적용 ν•˜λŠ” 방법

πŸ”Ž CSSλŠ” HTMLλ¬Έμ„œ λ‚΄μ˜ μ–΄λŠ μœ„μΉ˜μ—λ‚˜ 올 수 μžˆμ§€λ§Œ, 일반적으둜 head νƒœκ·Έ μ•ˆμ— μœ„μΉ˜ν•œλ‹€.

<style>...</style>

μ™ΈλΆ€ 파일 μ°Έμ‘° 방법

πŸ”Ž CSSμ½”λ“œλ₯Ό λ³„λ„μ˜ μ™ΈλΆ€ μ†ŒμŠ€νŒŒμΌμ— μž‘μ„±ν•΄ 두고 HTMLμ—μ„œ ν•΄λ‹Ή νŒŒμΌμ„ μ°Έμ‘° ν•˜λŠ” 방법

πŸ”Ž 이 방법은 ν•œλ²ˆ μž‘μ„±ν•œ μ½”λ“œλ₯Ό μ—¬λŸ¬ νŽ˜μ΄μ§€μ—μ„œ μž¬μ‚¬μš© ν•  수 μžˆλ‹€λŠ” μž₯점이 μžˆμ§€λ§Œ, CSS에 λ¬Έμ œκ°€ 생길 경우 ν•΄λ‹Ή νŒŒμΌμ„ μ°Έμ‘°ν•˜λŠ” λͺ¨λ“  μ›ΉνŽ˜μ΄μ§€μ— λ¬Έμ œκ°€ 번질 수 μžˆλ‹€λŠ” μœ„ν—˜λ„ μžˆλ‹€.

 <head>
< link rel = "stylesheet" type ="text/css"
  href="μ™ΈλΆ€ CSS파일 경둜"/>
 </head> 

HTML νƒœκ·Έμ— style 속성을 μ‚¬μš©ν•˜λŠ” 방법

πŸ”Ž 이 방법은 μ„Έλ°€ν•œ 쑰정이 κ°€λŠ₯ν•˜λ‹€.

πŸ”Ž μ „μ²΄μ μœΌλ‘œ μ†ŒμŠ€μ½”λ“œ 양이 μ§€λ‚˜μΉ˜κ²Œ λ§Žμ•„μ§€κ³ , μœ μ§€λ³΄μˆ˜κ°€ 쉽지 μ•Šλ‹€.

 <div style="....CSS μ½”λ“œλ‚΄μš© .."> </div>

CSS μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” κΈ°λ³Έ ν˜•μ‹

 selector {
 속성 1: κ°’, 속성2: κ°’, ...
 }

πŸ”Ž selectorλŠ” {...} λ²”μœ„μ•ˆμ— 기술된 CSSꡬ문이 적용될 λŒ€μƒμ„ μ˜λ―Έν•œλ‹€.

πŸ”Ž μ†μ„±μ˜ 이름은 μ‹€μ œ μ²˜λ¦¬ν•  κ·Έλž˜ν”½μ μΈ μ†μ„±μœΌλ‘œ, 폰트, 문단, 크기 , μœ„μΉ˜ , 색상 등을 μ§€μ •ν•˜λ©°, 값은 ν•΄λ‹Ή 속성에 μ μš©ν•  λ‚΄μš©μ΄λ‹€.

πŸ”Ž μ΄λŸ¬ν•œ ꡬ쑰둜 HTMLνŽ˜μ΄μ§€μ˜ νŠΉμ • λΆ€λΆ„μ΄λ‚˜ μ—¬λŸ¬ 개의 μš”μ†Œλ₯Ό selector둜 μ§€μ •ν•˜κ³  λͺ¨μ–‘을 κΈ°μˆ ν•˜λŠ” 것이 CSS의 ν‘œν˜„λ°©μ‹μ΄λ‹€.

κΈ°λ³Έ μ…€λ ‰ν„°μ˜ μ’…λ₯˜

πŸ”Ž CSSμ—μ„œ μ…€λ ‰ν„°λ₯Ό μž‘μ„±ν•˜λŠ” 방법은 기본적으둜 HTML의 νƒœκ·Έμ΄λ¦„ , 클래슀 속성, id 속성에 λŒ€ν•œ λͺ…μ‹œκ°€ μžˆλ‹€.

νƒœκ·Έμ΄λ¦„

πŸ”Ž νŠΉμ • νƒœκ·Έλ₯Ό κ°€λ₯΄ν‚¨λ‹€. HTML 내에 동일 νƒœκ·Έκ°€ μ‘΄μž¬ν•  경우 λͺ¨λ“  νƒœκ·Έ μš”μ†Œλ₯Ό 일괄 μ²˜λ¦¬ν•œλ‹€.

selector{..CSSλ³Έλ¬Έ...}

클래슀

πŸ”Ž .selector{...CSSλ³Έλ¬Έ...}

πŸ”Ž μ…€λ ‰ν„° 이름 μ•žμ— 점(.)을 λΆ™μ—¬ ν‘œμ‹œν•˜κ³ 
HTMLνƒœκ·Έμ˜ class속성에 점을 μ œμ™Έν•œ 이름을 λͺ…μ‹œν•˜μ—¬ μ§€μ •ν•œλ‹€.

πŸ”Ž νƒœκ·Έμ˜ μ’…λ₯˜λ₯Ό 가리지 μ•Šκ³  μ—¬λŸ¬ μš”μ†Œμ— 볡수 지정 κ°€λŠ₯ν•˜λ‹€.

πŸ”Ž μž¬μ‚¬μš©μ˜ λͺ©μ 

-> 자주 μ‚¬μš©λ˜λŠ” μŠ€νƒ€μΌμ—μ„œ 미리 μ§€μ •ν•˜μ—¬ ν•œλ²ˆμ— μ μš©μ‹œν‚€λŠ” 원리

id

πŸ”Ž μ…€λ ‰ν„° 이름 μ•žμ— (#)을 λΆ™μ—¬ ν‘œμ‹œν•˜κ³  HTMLνƒœκ·Έμ˜ id속성에 샡(#)을 μ œμ™Έν•œ 이름을 λͺ…μ‹œν•˜μ—¬ μ§€μ •ν•œλ‹€.

πŸ”Ž idμ†μ„±μ˜ 값은 HTML λ‚΄μ—μ„œ 쀑볡 μ‚¬μš©λ  수 μ—†λ‹€.

#selector{...CSSλ³Έλ¬Έ...}
link    : 링크의 κΈ°λ³Έμƒνƒœ
active  : μ–΄λ–€ μš”μ†Œμ— λŒ€ν•˜μ—¬ λ§ˆμš°μŠ€κ°€
             λˆŒλ €μ§„ μƒνƒœ
visited : λ°©λ¬Έν•œ κ²½ν—˜μ΄ μžˆλŠ” 링크
hover   : μ–΄λ–€ μš”μ†Œμ— λŒ€ν•˜μ—¬ λ§ˆμš°μŠ€κ°€
             μ˜¬λΌκ°€ μžˆλŠ” μƒνƒœ

class 예제



μ‘°ν•©ν˜• μ…€λ ‰ν„°

πŸ”Ž idκ°’μ΄λ‚˜ calss값을 νƒœκ·Έ 이름과 ν•¨κ»˜ λͺ…μ‹œν•˜μ—¬ μ μš©ν•˜λŠ” ν˜•νƒœ

πŸ”Ž μ…€λ ‰ν„°κ°€ μ§€μ •ν•˜λŠ” λŒ€μƒμ„ μžμ„Έν•˜κ²Œ λͺ…μ‹œν•  수 μžˆλ‹€.

πŸ”Ž νƒœκ·Έ, 클래슀, 아이디λ₯Ό λ…λ¦½μ μœΌλ‘œ λͺ…μ‹œν•  λ•Œ 보닀 μš°μ„ μ μœΌλ‘œ μ μš©λœλ‹€.

AND의 의미λ₯Ό κ°–λŠ” 콀마(,)μ‚¬μš©ν•˜κΈ°

 selector1, selector2, ...., selectorn{
 ... CSS 적용...

πŸ”Ž μ—¬λŸ¬ 개의 μš”μ†Œμ— λ™μΌν•œ CSS λ‚΄μš©μ„ μ μš©ν•˜κΈ° μœ„ν•΄ μ…€λ ‰ν„°λ₯Ό 콀마(,)둜 κ΅¬λΆ„ν•˜μ—¬ 일괄 처리 ν•  수 μžˆλ‹€.

πŸ”Ž νƒœκ·Έ, class, id λ“± λͺ¨λ“  ν˜•νƒœμ˜ CSS μ…€λ ‰ν„°κ°€ κ°€λŠ₯ν•˜λ‹€.

가상 클래슀

πŸ”Ž HTML νƒœκ·Έμ—μ„œ νŠΉμ • 상황이 λ°œμƒν–ˆμ„ κ²½μš°μ—λ§Œ μ μš©λ˜λŠ” CSS μ…€λ ‰ν„°

πŸ”Ž 가상 ν΄λž˜μŠ€λŠ” CSS의 μ…€λ ‰ν„° 이름뒀에 ":상황"의 ν˜•μ‹μœΌλ‘œ λͺ…μ‹œν•œλ‹€.

λ³΅μž‘ν•œ ν˜•νƒœμ˜ μ…€λ ‰ν„°

πŸ”Ž μžμ‹μ…€λ ‰ν„° : ">"둜 κ΅¬λΆ„ν•˜κΈ°

πŸ”Ž μžμ†μ…€λ ‰ν„° : 곡백(" ")으둜 κ΅¬λΆ„ν•˜κΈ°

πŸ”Ž 속성셀렉터 : HTMLνƒœκ·Έμ˜ 속성에 λ”°λ₯Έ ꡬ뢄

μžμ‹μ…€λ ‰ν„°

πŸ”Ž ">"둜 κ΅¬λΆ„ν•œ ꡬ쑰적 ν‘œν˜„

πŸ”Ž ">"λŠ” HTML의 계측 ꡬ쑰의 ν‘œν˜„μ„ μ˜λ―Έν•œλ‹€.

πŸ”Ž A > B일 경우 B의 μš”μ†ŒλŠ” λ°˜λ“œμ‹œ A의 1depthμ•ˆμ— μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€.

μžμ†μ…€λ ‰ν„°

πŸ”Ž 곡백으둜 κ΅¬λΆ„ν•˜μ—¬ νƒœκ·Έμ˜ ꡬ쑰λ₯Ό ν‘œν˜„

πŸ”Ž μžμ‹ μ…€λ ‰ν„°κ°€ λ°˜λ“œμ‹œ 1depthμ•ˆμ— μ‘΄μž¬ν•΄μ•Ό ν–ˆλ‹€λ©΄, μžμ† μ…€λ ‰ν„°λŠ” depthλ₯Ό μ œν•œν•˜μ§€ μ•ŠλŠ”λ‹€.

πŸ”Ž λͺ…μ‹œ κ³Όμ •μ—μ„œ 쀑간 단계λ₯Ό μƒλž΅ν•΄λ„ λœλ‹€. λͺ‡ depthλ₯Ό 더 λ‚΄λ €κ°€λ˜, μ§€μ •ν•œ νƒœκ·Έμ˜ λ²”μœ„ μ•ˆμ— μ‘΄μž¬ν•˜κΈ°λ§Œ ν•˜λ©΄ λœλ‹€.

속성셀렉터

πŸ”Ž νƒœκ·Έμ˜ 속성에 λ”°λ₯Έ ν‘œν˜„

πŸ”Ž μŠ€νƒ€μΌμ‹œνŠΈμ˜ μ…€λ ‰ν„°κ°€ μ μš©λ˜λŠ” λŒ€μƒμ—κ²Œ νŠΉμ • 속성이 μžˆλŠ”μ§€ 여뢀와 νŠΉμ • μ†μ„±μ˜ 값이 μ μš©λ˜μ–΄ μžˆλŠ”μ§€μ— λŒ€ν•œ 여뢀에 따라, νƒœκ·Έ μš”μ†Œλ₯Ό μ’€ 더 ꡬ체적으둜 가리킬 수 μžˆλ‹€.

text-align

  • left
  • right
  • center
  • justify

ν…μŠ€νŠΈ 예제



-> 폰트 바꿔보기

μŠ€νƒ€μΌμ— κ΅¬κΈ€ν°νŠΈ μ μš©ν•΄λ³΄κΈ°

  • λ³΅μ‚¬ν•΄μ˜¨ 링크λ₯Ό ν—€λ“œμ— 볡뢙

  • λ³΅μ‚¬ν•΄μ˜¨ μŠ€νƒ€μΌ μ½”λ“œλ₯Ό μŠ€νƒ€μΌνƒœκ·Έμ— 볡뢙

<κ²°κ³Ό>

κΈ€μžμ— 그림자λ₯Ό μΆ”κ°€ν•˜λŠ” 속성

selector{
text-shadow : x-offset y-offset blur-radius clolr;

}

μ…€λ ‰ν„° 예제





-> ID에 μ ‘κ·Όν•  λ•ŒλŠ” #으둜 μ ‘κ·Όν•œλ‹€.
ex) #class / #student / #container
-> class에 μ ‘κ·Όν•  λ•ŒλŠ” .으둜 μ ‘κ·Όν•œλ‹€.
ex) .class / .box / .teacher




λ°•μŠ€

πŸ”Ž κ°€λ‘œμΆ• : λΆ€λͺ¨λ₯Ό 가득 μ±„μš΄λ‹€.

πŸ”Ž μ„Έλ‘œμΆ• : μžμ‹ μ΄ ν¬ν•¨ν•˜κ³  μžˆλŠ” λ‚΄μš©λ§ŒνΌ μ„€μ •λœλ‹€. λ‚΄μš©μ΄ μ—†λŠ” 경우, 높이가 ν˜•μ„±λ˜μ§€ μ•ŠλŠ”λ‹€.

λ°•μŠ€μ˜ 크기λ₯Ό κ΅¬μ„±ν•˜λŠ” μ†μ„±μ˜ μ’…λ₯˜

πŸ”Ž width : κ°€λ‘œ
πŸ”Ž height : μ„Έλ‘œ
πŸ”Ž border : λ°•μŠ€μ˜ ν…Œλ‘λ¦¬
πŸ”Ž padding : ν…Œλ‘λ¦¬μ™€ λ‚΄μš©μ˜μ—­ μ‚¬μ΄μ˜ μ—¬λ°±

  • μ—¬λ°± μ‚¬μ΄μ¦ˆμ— λŒ€ν•œ pxλ‹¨μœ„ , 4가지 λ°©ν–₯으둜 λ§Œλ“€ 수 μžˆλ‹€.
  • μƒμš°ν•˜μ’Œ - λŒμ•„κ°€λ©΄μ„œ μ„ΈνŒ…μ„ ν•΄μ•Όν•œλ‹€.

λ°•μŠ€ 예제

  1. λ°•μŠ€ λ§Œλ“€κΈ°

    // box2λŠ” μ‘΄μž¬ν•˜μ§€λ§Œ, 값이 μ •ν•΄μ Έ μžˆμ§€ μ•Šμ•„ 보여지지 μ•ŠλŠ”λ‹€.

  1. border & padding을 ν†΅ν•œ boxμŠ€νƒ€μΌ λ§Œλ“€κΈ°

  1. ꡬ글 폰트 μ μš©μ‹œμΌœλ³΄κΈ°


  1. margin μ μš©ν•΄λ³΄κΈ°

  1. border & padding & margin μ‚¬μš©ν•΄λ³΄κΈ°

// box-sizing: border-box;
-> 넓이가 λ‹€λ₯Έ 두 divλ₯Ό μœ„ μ½”λ“œλ₯Ό ν†΅ν•΄μ„œ, 넓이λ₯Ό λ§žμΆ°μ€„ 수 μžˆλ‹€.

padding 속성

<κ°’μ˜ 지정 ν˜•μ‹>
πŸ”Ž 1개의 κ°’
-> 상/ν•˜, 쒌/우 λͺ¨λ‘ 같은 크기의 여백을 μ§€μ •ν•œλ‹€.

πŸ”Ž 2개의 κ°’
-> 곡백으둜 κ΅¬λΆ„ν•˜μ—¬ 2개의 값을 지정할 경우
첫 번째 값은 "상/ν•˜", 두 번째 값은 "쒌/우"둜 μ§€μ •λœλ‹€.

πŸ”Ž 4개의 κ°’
-> 곡백으둜 κ΅¬λΆ„ν•˜μ—¬ 4개의 값을 지정할 경우
첫 번째 값이 상단여백, κ·Έν›„ 우츑, ν•˜λ‹¨, μ™Όμͺ½μ˜ μˆœμ„œλ‘œ μ‹œκ³„λ°©ν–₯으둜 μ μš©λœλ‹€.

상속

πŸ”Ž 상속은 λΆ€λͺ¨ μ—˜λ¦¬λ¨ΌνŠΈμ˜ 속성을 가진 μžμ‹ μ—˜λ¦¬λ¨ΌνŠΈκ°€ λ¬Όλ €λ°›λŠ” 것을 μ˜λ―Έν•œλ‹€. 상속은 CSSμ—μ„œ 생산성을 높이기 μœ„ν•œ 방법이닀.


상속 예제


ν¬μ§€μ…˜

πŸ”Ž μ—˜λ¦¬λ¨ΌνŠΈμ˜ μœ„μΉ˜λ₯Ό μ§€μ •ν•˜λŠ” 4가지 방법

  • static
  • relative
  • absolute
  • fixed

πŸ”Ž bottom vs top : top이 μš°μ„ 

πŸ”Ž right vs left : leftκ°€ μš°μ„ 

πŸ”Ž css각각의 μ—˜λ¦¬λ¨ΌνŠΈλŠ” 각각의 μœ„μΉ˜κ°€ μ •μ μœΌλ‘œ μ‘΄μž¬ν•œλ‹€.즉, static ν•˜κ²Œ μœ„μΉ˜ν•˜κ²Œ λœλ‹€.
μ—¬κΈ°μ„œ meλ₯Ό κΈ°μ€€μœΌλ‘œ λΆ€λͺ¨ μ—˜λ¦¬λ¨ΌνŠΈ μ•ˆμ— μ‘΄μž¬ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— left, top λ“±λ“±μ˜ μ˜΅μ…˜μ΄ λ¬΄μ‹œλœλ‹€.

πŸ”Ž position을 static이 μ•„λ‹Œ relative둜 λ³€κ²½ν•΄μ•Ό ν•œλ‹€.

ν¬μ§€μ…˜ 예제



-> fixed ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν–ˆκΈ°μ—, μƒμ†μ˜ λ²”μ£Όμ—μ„œ λ²—μ–΄λ‚˜κΈ°μ— λ…λ¦½μ μœΌλ‘œ ν–‰λ™ν•œλ‹€
-> μŠ€ν¬λ‘€μ„ 내렀도 me의 μœ„μΉ˜λŠ” 고정이 λ˜μ–΄μžˆλ‹€.


cascading

πŸ”Ž μ—˜λ¦¬λ¨ΌνŠΈλŠ” μ—¬λŸ¬ 개의 μŠ€νƒ€μΌμ— 영ν–₯을 받을 수 μžˆλ‹€.

πŸ”Ž μš°μ„ μˆœμœ„λ₯Ό 메겨야 μ›ν•˜λŠ” μŠ€νƒ€μΌμ„ 받을 수 μžˆλ‹€.

cascading μš°μ„ μˆœμœ„

	<li>style attribute</li>
    <li>id selector</li>
    <li>class selector</li>
    <li>tag selector</li>
이 외에도 κ°€μž₯ λ¨Όμ € μŠ€νƒ€μΌμ„ μ μš©ν•  수 μžˆλŠ”
졜고의 μš°μ„ μˆœμœ„λŠ” '!important' ν‚€μ›Œλ“œμ΄μ§€λ§Œ,
ν•¨λΆ€λ‘œ λ‚¨μš©ν•˜λŠ” 것은 쒋지 λͺ»ν•˜λ‹€.

-> ꡬ체적이고 직관적인 μ½”λ“œκ°€ μš°μ„ μˆœμœ„κ°€ λœλ‹€κ³  κΈ°μ–΅ν•˜λ©΄ νŽΈν•˜λ‹€.

-> body에 μžˆλŠ” style에 colorλ₯Ό 직접 λ°•μ•„μ£Όμ—ˆκΈ° λ•Œλ¬Έμ— κ°€μž₯ μš°μ„ μ‹œ μ²˜λ¦¬λœλ‹€.

 
profile
μˆ˜ν˜„

0개의 λŒ“κΈ€