Mark Up/HTML

🏷️ id / class / name νƒœκ·Έ 속성 차이 & μ‚¬μš©μ²˜

인파_ 2021. 9. 20. 07:00

htmlνƒœκ·Έ

id / class / name 속성 비ꡐ

  • id 속성 - κ³ μœ ν•œ 식별을 λͺ©μ μœΌλ‘œ ν•˜λŠ” 경우 μ‚¬μš©
  • class 속성 - css 쿼리문 λ°‘ μž¬μ‚¬μš©μ„ λͺ©μ μœΌλ‘œ ν•˜λŠ” 경우 μ‚¬μš©
  • name 속성 - form 컨트둀 μš”μ†Œμ˜ κ°’(value)을 μ„œλ²„λ‘œ μ „μ†‘ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ 속성

id 속성

 

1. 고유 μ˜μ—­ μ‹λ³„μž

  • document.getElementId()λ₯Ό 톡해 고유 μ˜μ—­μ„ μ°Έμ‘°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
<section id="front-end-news">
  <h1>ν”„λ‘ νŠΈμ—”λ“œ 개발 λ‰΄μŠ€</h1>
  ...
</section>

<section id="front-end-heroes">
  <h1>ν”„λ‘ νŠΈμ—”λ“œ 개발 νžˆμ–΄λ‘œμ¦ˆ</h1>
  ...
</section>

​

2. Labelκ³Ό input μ»¨νŠΈλ‘€μ„ μ—°κ²°ν•˜κΈ° μœ„ν•œ μ‹λ³„μž

<div class="form-control">
  <label for="email">이메일</label>
  <input type="email" id="email"> <!--'이메일' λ ˆμ΄λΈ” ν…μŠ€νŠΈμ™€ μ—°κ²°λœ 이메일 인풋 컨트둀-->
</div>

​

3. ν‘œμ™€ ν‘œ μ„€λͺ…을 μ—°κ²°ν•˜κΈ° μœ„ν•œ μ‹λ³„μž

<p hidden id="table-desc">ν‘œ μ„€λͺ…(μš”μ•½)</p>
<!--ν‘œ μš”μ†Œμ˜ aria-describedby 속성과 μ—°κ²°λœ ν‘œ μ„€λͺ…-->
<table aria-describedby="table-desc">
  <caption>ν‘œ 제λͺ©</caption>
  ...
</table>

class 속성

 

1. μ—¬λŸ¬ μ˜μ—­μ—μ„œ 쀑볡 μ •μ˜λ₯Ό ν—ˆμš©ν•˜μ—¬ μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•œ μ‹λ³„μž

<button type="button" class="button">읽기</button>

<input type="button" class="button" value="읽기">

<a href class="button">읽기</a>

μš”μ†Œμ˜ μœ ν˜•κ³Ό 상관 없이 class="button" μ„€μ • 되면 μΌκ΄€λœ λ””μžμΈμ΄ λ°˜μ˜λ©λ‹ˆλ‹€.

htmlνƒœκ·Έ

​

2. ν•œ μ˜μ—­μ—μ„œ μ—¬λŸ¬κ°œ μ •μ˜λ₯Ό ν—ˆμš©ν•˜μ—¬ μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•œ μ‹λ³„μž

<!-- κ³ μ • λ„ˆλΉ„λ₯Ό κ°€μ§„ μ»¨ν…Œμ΄λ„ˆ μŠ€νƒ€μΌμ„ λ°˜μ˜ν•˜κΈ° μœ„ν•œ μ‹λ³„μž -->
<div class="container">
  ...
</div>

<!-- μ»¨ν…Œμ΄λ„ˆ μš”μ†Œμ˜ λ„ˆλΉ„λ₯Ό μœ μ—°(fluid)ν•˜κ²Œ λ³€κ²½ν•˜λŠ” μ‹λ³„μž μΆ”κ°€ -->
<div class="container is-fluid">
  ...
</div>

name 속성

 

1. 폼 전솑 이벀트 λ°œμƒ μ‹œ μ„œλ²„λ‘œ 데이터 μ΄λ¦„μœΌλ‘œμ¨ μ „μ†‘ν•˜κΈ° μœ„ν•œ μ‹λ³„μž

  • name 속성은 μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ μš”μ†Œλ₯Ό μ°Έμ‘°ν•  수 있게 ν•©λ‹ˆλ‹€.
<form>
  <div class="select">
    <label for="source-of-info">정보 좜처</label>
    <select 
      name="source-of-info" id="source-of-info"> <!--<select> μš”μ†Œμ— μ„€μ •λœ 값을 μ‹λ³„ν•˜κΈ° μœ„ν•œ 이름-->
      <option>정보 좜처λ₯Ό μ„ νƒν•΄μ£Όμ„Έμš”.</option>
      <option>페이슀뢁</option>
      <option>νŠΈμœ„ν„°</option>
      <option selected>μΈμŠ€νƒ€κ·Έλž¨</option>
    </select>
  </div>
</form>
// name은 μš”μ†Œλ₯Ό ν•˜μ—¬κΈˆ μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ μ ‘κ·Όν• μˆ˜ 있게 ν•˜λŠ” 고유 μ‹λ³„μž 이닀.

var form = document.querySelector('form');
var formData = new FormData(form);


formData.get('source-of-info'); // name="source-of-info" 정보 값을 좜λ ₯ => μΈμŠ€νƒ€κ·Έλž¨

// 이벀트 ν•Έλ“€λŸ¬μΌ 경우 μ΄λŸ°μ‹μœΌλ‘œ 접근도 κ°€λŠ₯ν•˜λ‹€.
e.target.source-of-info

# 참고자료

https://hashcode.co.kr/questions/7049/id-name-class-%EC%86%8D%EC%84%B1%EC%97%90-%EB%8C%80%ED%95%9C-%EC%82%AC%EC%9A%A9%EB%B2%95%EC%9D%B4-%EA%B6%81%EA%B8%88%ED%95%A9%EB%8B%88%EB%8B%A4