🌱 HTML 볡슡

YeonnΒ·2024λ…„ 8μ›” 13일
0

HTML+CSS

λͺ©λ‘ 보기
12/18
post-thumbnail

πŸ“– Β Web

πŸ“Œ World Wide Web
internet
? 인터넷은 TCP/IP ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜μ—¬ ν†΅μ‹ ν•˜λŠ” μ „ 세계 λ„€νŠΈμ›Œν¬λ“€μ˜ 집합체

  • ν•˜μ΄νΌν…μŠ€νŠΈ( Hypertext )둜 ν‘œν˜„λ˜λŠ” μ—¬λŸ¬ λ¬Έμ„œλ“€μ„ 컴퓨터λ₯Ό 톡해 λͺ¨λ‹ˆν„°μ— 좜λ ₯ !

  • ν•˜μ΄νΌν…μŠ€νŠΈ

    • HTML( Hypertext Mark-up Language )둜 μž‘μ„±
    • HTTPν”„λ‘œν† μ½œ( Hypertext Transfer Protocol )을 톡해 정보/데이터 μ†‘μˆ˜μ‹ 
  • μ›Ή νŽ˜μ΄μ§€μ˜ κ΅¬μ„±μš”μ†Œ( μ›Ήμ˜ 3λŒ€ κ΅¬μ„±μš”μ†Œ )

    • HTML( HyperText Markup Language ): μ›Ή νŽ˜μ΄μ§€μ˜ ꡬ쑰와 λ‚΄μš©
    • CSS( cascading Style Sheet ): μ›Ή νŽ˜μ΄μ§€μ˜ λͺ¨μ–‘
    • JavaScript: μ›Ή νŽ˜μ΄μ§€μ˜ 동적 λ³€κ²½

❓ HTML

  • μ›Ή νŽ˜μ΄μ§€μ™€ κ·Έ λ‚΄μš©μ„ κ΅¬μ‘°ν™”ν•˜κΈ° μœ„ν•œ λ§ˆν¬μ—… μ–Έμ–΄

  • μ›Ή λ¬Έμ„œμ˜ ꡬ쑰와 λ‚΄μš©μ„ μ •μ˜

  • tag λ₯Ό μ΄μš©ν•˜μ—¬ ν…μŠ€νŠΈ, 이미지, 링크 λ“±μ˜ μš”μ†Œλ₯Ό ν‘œμ‹œν•˜κ³  ꡬ성

    • HyperText Markup Language
    • HyperText: μ›Ήμ‚¬μ΄νŠΈμ—μ„œ β€˜λ§ν¬β€™λ₯Ό μ΄μš©ν•΄ λ‹€λ₯Έ λ¬Έμ„œ / μ‚¬μ΄νŠΈλ‘œ 이동할 수 μžˆλŠ” κΈ°λŠ₯
    • Markup: νƒœκ·Έλ₯Ό μ‚¬μš©ν•΄ λ¬Έμ„œμ—μ„œ ν•΄λ‹Ή λΆ€λΆ„μ˜ λͺ©μ  / 의미λ₯Ό μ„€λͺ…

❓ tag

πŸ“Œ μš”μ†Œμ˜ μ‹œμž‘κ³Ό 끝을 ν‘œμ‹œν•˜λŠ” λ§ˆν¬μ—… 기호

βœ”οΈΒ tag κΈ°λ³Έ 문법

<νƒœκ·Έμ΄λ¦„ 속성='속성값'> μ½˜ν…μΈ  </νƒœκ·Έμ΄λ¦„>
  • νƒœκ·Έ 이름: ν•΄λ‹Ή νƒœκ·Έκ°€ μ–΄λ–€ 컨텐츠λ₯Ό ν‘œμ‹œν•˜λŠ”μ§€ 의미
  • μ½˜ν…μΈ : νƒœκ·Έ 사이에 νƒœκ·Έκ°€ μ‹€μ œλ‘œ ν‘œμ‹œν•  μ½˜ν…μΈ ( λ‚΄μš© ) μž‘μ„±
  • 속성: νƒœκ·Έμ— λΆ€κ°€ κΈ°λŠ₯ μΆ”κ°€λ₯Ό μœ„ν•΄ μž‘μ„±ν•˜λŠ” 것( optional )
  • 속성값: 속성에 λΆ€μ—¬λœ κΈ°λŠ₯μ΄λ‚˜ 섀정을 ꡬ체적으둜 μ§€μ •ν•˜λŠ” κ°’
  • self-closing tag: νƒœκ·Έ 내뢀에 μ½˜ν…μΈ λ₯Ό ν¬ν•¨ν•˜μ§€ μ•Šμ•„ λ‹«λŠ” νƒœκ·Έλ₯Ό λ”°λ‘œ μž‘μ„±ν•˜μ§€ μ•ŠμŒ
    • ex) <br /> <img /> <input /> …

βœ”οΈΒ HTML λ¬Έμ„œμ˜ κΈ°λ³Έ ꡬ쑰

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	// ...
</body>
</html>
  • !DOCTYPE html
    • λͺ¨λ“  html λ¬Έμ„œλŠ” DOCTYPE μ„ μ–ΈμœΌλ‘œ μ‹œμž‘
    • μ„ μ–Έλœ νŽ˜μ΄μ§€μ˜ HTML 버전이 무엇인지λ₯Ό μ›Ή λΈŒλΌμš°μ €μ— μ•Œλ €μ£ΌλŠ” 역할을 ν•˜λŠ” μ„ μ–Έλ¬Έ
    • <!DOCTYPE html> 은 HTML5둜 μž‘μ„±λœ λ¬Έμ„œμž„μ„ μ„ μ–Έν•˜λŠ” 방법
  • html
    • HTML λ¬Έμ„œμ˜ μ‹œμž‘κ³Ό 끝 μ„ μ–Έ
  • head
    • HTML λ¬Έμ„œμ˜ title, 메타데이터( metadata ), μŠ€νƒ€μΌ μ‹œνŠΈ, 슀크립트 포함
      • title: λΈŒλΌμš°μ €μ˜ 탭에 ν‘œμ‹œλ˜λŠ” μ›Ή νŽ˜μ΄μ§€μ˜ 제λͺ©
      • 메타데이터: μ›Ή νŽ˜μ΄μ§€ μžμ²΄μ— λŒ€ν•œ μ •λ³΄λ‚˜ λ‹€λ₯Έ μ™ΈλΆ€ μš”μ†Œλ“€κ³Όμ˜ 연결을 μ •μ˜ν•˜λŠ” 데이터
  • body
    - μ›Ή νŽ˜μ΄μ§€μ˜ μ‹€μ œ λ‚΄μš©


βœ”οΈΒ  HTML Tags

🌱  meta tag Attributes

  • head 에 μž‘μ„± !

  • charset="character_set" : 인코딩 방식 지정( ν•œκΈ€: β€œUTF-8” )

  • content="value(text)"

  • name="정보이름"

    • keywords: 검색 엔진을 μœ„ν•œ ν‚€μ›Œλ“œλ₯Ό μ •μ˜
    • viewport: λͺ¨λ“  μž₯μΉ˜μ—μ„œ μ›Ή μ‚¬μ΄νŠΈκ°€ 잘 보이도둝 뷰포트λ₯Ό μ„€μ •
    • author: λ¬Έμ„œμ˜ μ €μžλ₯Ό μ •μ˜
    • description: μ›Ή νŽ˜μ΄μ§€μ— λŒ€ν•œ μ„€λͺ…을 μ •μ˜
    <head>
    	<meta charset="UTF-8">
    	<meta name="keyword" content="HTML, meta, tag, element, reference">
    	<meta name="description" content="HTML meta tag">
    	<meta name="author" content="AAA">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>HTML meta tag</title>
    </head>	
  • http-equiv: content 속성에 λͺ…μ‹œλœ 값에 λŒ€ν•œ HTTP 헀더λ₯Ό 제곡

    • content-type: ν•΄λ‹Ή λ¬Έμ„œμ˜ 문자 인코딩 방식 λͺ…μ‹œ
    • default-type: μš°μ„ μ μœΌλ‘œ μ μš©ν•  μŠ€νƒ€μΌμ‹œνŠΈ λͺ…μ‹œ
    • refresh: ν•΄λ‹Ή λ¬Έμ„œλ₯Ό μƒˆλ‘œκ³ μΉ¨(refresh)ν•  μ‹œκ°„ 간격 λͺ…μ‹œ
      <head>
      	// 10초 λ§ˆλ‹€ μƒˆλ‘œκ³ μΉ¨
      	<meta http-equiv="refresh" content="10">
               
         // 5초 뒀에 abc νŽ˜μ΄μ§€λ‘œ λ¦¬λ‹€μ΄λ ‰νŠΈ
         <meta http-equiv="refresh" content="5;url=http://www.abc.com">
      			</head>
      			```
             

🌱  container( non-semantic )

  • μš”μ†Œλ“€μ„ λ¬Άμ–΄μ„œ ꡬ쑰화 / μŠ€νƒ€μΌλ§ μ μš©ν•˜λŠ” μ—­ν• 
  • μ›Ή νŽ˜μ΄μ§€μ˜ λ ˆμ΄μ•„μ›ƒκ³Ό λ‚΄μš© 쑰직화
  • div : Block μš”μ†Œ( μƒˆλ‘œμš΄ 쀄 μ‹œμž‘, 전체 λ„ˆλΉ„ 차지 )
  • span : Inline μš”μ†Œ( 쀄 λ‚΄μ—μ„œ ν‘œμ‹œ, μΌλΆ€λ§Œ λ¬Άμ–΄ μŠ€νƒ€μΌ 적용 )

🌱 text

  • h
    • 제λͺ© νƒœκ·Έ, 제λͺ©μ΄λ‚˜ λΆ€μ œλͺ© ν‘œν˜„
    • h1~h6κΉŒμ§€ μ‘΄μž¬ν•˜κ³  μˆ«μžκ°€ μž‘μ„ 수둝 큰 주제 ν‘œν˜„ !
    • ν•œ νŽ˜μ΄μ§€ λ‹Ή h1은 ν•œκ°œ !
  • p
    • 단락 νƒœκ·Έ, 문단 ν‘œν˜„
    • 문단 λ‚΄μš©μ„ μ—΄λ¦° νƒœκ·Έμ™€ λ‹«νžŒ νƒœκ·Έ 사이에 μž…λ ₯
  • ul / ol + li
    • ul : unordered list, μˆœμ„œκ°€ μ—†λŠ” λͺ©λ‘κ³Ό λͺ©λ‘ μš”μ†Œ νƒœκ·Έ
    • ol : ordered list, μˆœμ„œκ°€ μžˆλŠ” λͺ©λ‘κ³Ό λͺ©λ‘ μš”μ†Œ νƒœκ·Έ
    • li : list item
	<ul> // ol도 동일 !
	  <li>item 1</li>
	  <li>item 2</li>
	  <li>item 3</li>
	</ul>

🌱  others

  • img
    • 이미지 νƒœκ·Έ
    • src: 이미지 파일 경둜 지정 ( essential )
    • alt: 이미지λ₯Ό μ„€λͺ…ν•˜λŠ” λŒ€μ²΄ ν…μŠ€νŠΈ
      • 이미지가 λ‘œλ“œ λ˜μ§€ μ•Šμ•˜μ„ λ•Œ ν‘œμ‹œλ˜λŠ” 문ꡬ
        - μ‹œκ° μž₯애인을 μœ„ν•œ 슀크린 리더λ₯Ό μœ„ν•œ 문ꡬ
        - SEO μˆœμœ„ ν–₯상( 검색 엔진 μ΅œμ ν™” )
      <img src="./img.png" alt="λŒ€μ²΄ ν…μŠ€νŠΈ" />
  • a
    • λ‹€λ₯Έ νŽ˜μ΄μ§€λ‘œ 이동
    • href: 링크의 λŒ€μƒ url 지정( essential )
    • target( optional )
    • _self: ν˜„μž¬ νƒ­μ—μ„œ 이동( default )
    • _blank: μƒˆλ‘œμš΄ νƒ­μ—μ„œ 이동
    <a hrer="https://www.abc.com" target="_blank">링크 ν…μŠ€νŠΈ</a>
      
  • table
    • ν‘œ: 데이터λ₯Ό ν–‰( row )κ³Ό μ—΄( column )둜 ꡬ쑰화 ν•˜μ—¬ ν‘œν˜„
    • table , thead , tbody , th , tr , td
    <table>
		<thead>
			<tr>
        		<th></th>
        		<th></th>
        	</tr>
        </thead>
        <tbody>
        	<tr>
        		<td></td>
        		<td></td>
        	</tr>
        </tbody>
	</table>
  • form
    • μ‚¬μš©μžλ‘œλΆ€ν„° μž…λ ₯을 λ°›λŠ” 양식
    • form νƒœκ·Έ 속성
    • method (default): μ‚¬μš©μžκ°€ μž…λ ₯ν•œ λ‚΄μš©μ„ μ„œλ²„λ‘œ λ„˜κΈΈ 방법 지정
      • HTTP methods: GET, POST, DELETE, PUT
    • name: 폼의 이름 지정
    • action: 데이터λ₯Ό 전솑할 url( μ„œλ²„μ™€ μ—°κ²°λ˜λŠ” μ£Όμ†Œ )
    • form νƒœκ·Έ μš”μ†Œ
      • label: 폼 μš”μ†Œμ— λ ˆμ΄λΈ”μ„ 뢙이기 μœ„ν•œ νƒœκ·Έ
      • input: λ‹€μ–‘ν•œ μž…λ ₯을 λ°›κ³  typeλ₯Ό 톡해 μ’…λ₯˜ 지정
      • type: text, number, radio, checkbox, password, tel, email, url…
      • placeholder: μž…λ ₯ λ‚΄μš©μ— λŒ€ν•œ 힌트 제곡
      • name: form 제좜 μ‹œ μž…λ ₯ κ°’μ˜ 이름( key )이 λ˜λŠ” κ°’
      • textarea: μ—¬λŸ¬ μ€„μ˜ ν…μŠ€νŠΈλ₯Ό μž…λ ₯ν•  수 μžˆλŠ” ν•„λ“œ
      • button: ( disabled: λ²„νŠΌ λΉ„ν™œμ„±ν™” ! boolean κ°’ 가짐 )
	<form action="/submit" method="post">
    <label>
    이메일:
		<input type="email" name="email" placeholder="이메일을 μž…λ ₯ν•˜μ„Έμš”" />
    </label>
	<br />
	<label>
	λΉ„λ°€λ²ˆν˜Έ:
		<input type="password" name="password" placeholder="λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜μ„Έμš”" />
  	</label>
  	<br />
  	<label>
    이름:
    	<input type="text" name="name" placeholder="이름을 μž…λ ₯ν•˜μ„Έμš”" />
  	</label>
    <br />
    <label>
    성별:
    	<input type="radio" name="gender" value="male" /> 남
      	<input type="radio" name="gender" value="female" /> μ—¬
  	</label>
  	<button>submit</button>
	</form>


βœ”οΈΒ  Semantic tag

  • ν•΄λ‹Ή μš”μ†Œμ˜ μ—­ν• κ³Ό 의미λ₯Ό 예츑 κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ νƒœκ·Έ

    • νƒœκ·Έλ§Œ 보고도 μ—­ν• μ΄λ‚˜ μœ„μΉ˜λ₯Ό λŒ€λž΅μ μœΌλ‘œ νŒŒμ•… κ°€λŠ₯
    • HTML λ¬Έμ„œμ˜ 가독성과 μœ μ§€λ³΄μˆ˜μ„± ν–₯상
    • μ›Ή λΈŒλΌμš°μ €κ°€ HTML μ†ŒμŠ€ μ½”λ“œλ₯Ό 톡해 제λͺ©, λ³Έλ¬Έ 등을 ꡬ뢄 κ°€λŠ₯
    • SEO 점수 ν–₯상: 검색 엔진 μ΅œμ ν™”
  • 🌱 Semantic tags

    • header: μ›Ή νŽ˜μ΄μ§€, μ„Ήμ…˜μ˜ 헀더( 제λͺ©, 둜고 λ“± 포함 )
    • nav: HTML λ¬Έμ„œ 사이λ₯Ό 탐색할 수 μžˆλŠ” 링크(link)의 집합( μ›Ή νŽ˜μ΄μ§€μ˜ μ£Όμš” 링크 포함 )
    • main: μ£Όμš” μ½˜ν…μΈ  μ˜μ—­, 1 νŽ˜μ΄μ§€ λ‹Ή 1개
    • section: HTML λ¬Έμ„œμ˜ 전체적인 λ‚΄μš©κ³Ό 관련이 μžˆλŠ” μ½˜ν…μΈ λ“€μ˜ 집합
    • article: 독립적인 μ½˜ν…μΈ  블둝
    • aside: μ‚¬μ΄λ“œλ°”
    • footer: μ €μž‘κΆŒ 정보, μ—°λ½μ²˜ 정보, κ΄€λ ¨ 링크 λ“±

0개의 λŒ“κΈ€