AD JB Toolbox 01

HTML 강좌 / label과 input으로 입력 필드 만들기

input은 사용자의 값을 받는 필드이고, label은 그 필드가 무엇을 입력받는지 알려 줍니다. 가장 확실한 연결 방법은 label의 for와 input의 id를 같게 만드는 것입니다.

label과 input 연결하기

<form action="" method="get">
  <label for="visitor-name">이름</label>
  <input id="visitor-name" name="name" type="text">
  <button type="submit">확인</button>
</form>

이 코드를 HTML 파일의 body에 넣어 브라우저에서 열고 ‘이름’ 글자를 눌러 보세요. 연결이 올바르면 입력칸에 초점이 이동합니다. 같은 문서에서 id는 중복하지 않는 것이 중요합니다. 여러 필드에 같은 id를 쓰면 레이블이 의도한 필드와 연결되지 않을 수 있습니다.

마우스뿐 아니라 키보드로도 확인해 보세요. Tab으로 입력칸에 이동했을 때 시각적 초점이 보이고, 보조 기술이 필드 이름을 알 수 있어야 합니다. 레이블은 단순한 장식 문구가 아니라 입력 필드와 연결되는 이름입니다. 화면에 ‘이름’이라는 글자가 바로 옆에 있다고 해서 자동으로 연결되는 것은 아닙니다.

id와 name은 서로 다른 역할

id는 문서 안에서 요소를 식별하고 레이블·링크·스크립트와 연결합니다. name은 양식을 제출할 때 값에 붙는 이름입니다. 위 예제에서는 visitor-name이 레이블 연결에, name이 전송 데이터의 키에 쓰입니다.

입력칸을 클릭했을 때 커서가 보이지만 제출한 주소에 값이 없다면 name을 확인하세요. 반대로 값은 전송되는데 레이블을 눌러도 반응이 없다면 for와 id가 같은지 확인합니다.

for에는 필드의 name이 아닌 id를 적습니다. 반대로 서버에서 받는 키를 바꾸고 싶다면 name을 수정해야 합니다. 예를 들어 위 코드에서 id="visitor-name"을 id="person-name"으로 바꾼다면 레이블의 for도 함께 바꾸지만, name="name"은 그대로 둘 수 있습니다.

placeholder는 label을 대신하지 않습니다

placeholder는 입력 형식에 대한 짧은 힌트입니다. 사용자가 글을 입력하면 사라지므로 필드의 이름을 대신할 수 없습니다. 다음처럼 보이는 레이블을 유지하고 보조 예시만 추가하세요.

<label for="email">이메일 주소</label>
<input id="email" name="email" type="email"
       placeholder="name@example.com">

시각적으로 레이블을 숨겨야 하는 디자인에서도 적절한 접근 가능한 이름은 필요합니다. 입력칸의 목적을 먼저 명확히 표현한 뒤 디자인을 조정하세요. MDN label 요소 문서에 연결 방식과 주의점이 정리돼 있습니다.

체크박스나 라디오 버튼은 입력 요소를 레이블 안에 넣는 방식으로도 연결할 수 있습니다. 예를 들어 <label><input type="checkbox" name="agree"> 동의합니다</label>라면 문구를 눌러 선택 상태를 바꿀 수 있습니다. 어느 방식을 쓰든 한 필드가 무엇을 의미하는지 분명한 문구를 제공하고, 클릭 동작으로 연결 여부를 검사하세요.

같은 카테고리의 다른 글
HTML 강좌 / 여러 페이지로 된 작은 사이트 만들기

HTML 강좌 / 여러 페이지로 된 작은 사이트 만들기

홈·소개·문의 페이지를 연결하는 작은 사이트를 만들고 메뉴, 양식, 키보드 조작과 문서 오류를 점검하는 종합 실습입니다.

HTML 강좌 / form의 구조와 GET·POST 제출 방식

HTML 강좌 / form의 구조와 GET·POST 제출 방식

form, action, method, name의 역할을 이해하고 GET과 POST 방식으로 양식 값이 전달되는 차이를 설명합니다.

HTML 강좌 / 입력값 검증: required, 길이·범위 제한, 오류 안내

HTML 강좌 / 입력값 검증: required, 길이·범위 제한, 오류 안내

required, minlength, min, max 등의 기본 입력 제약을 설정하고 오류를 안내·시험하는 방법과 서버 검증의 필요성을 설명합니다.

HTML 강좌 / label과 input으로 입력 필드 만들기

HTML 강좌 / label과 input으로 입력 필드 만들기

label의 for와 input의 id를 연결하는 방법, name의 제출 역할, placeholder가 레이블을 대신할 수 없는 이유를 설명합니다.

HTML 강좌 / figure와 figcaption으로 그림과 설명 묶기

HTML 강좌 / figure와 figcaption으로 그림과 설명 묶기

figure와 figcaption으로 이미지와 설명을 묶고, alt와 캡션의 역할을 구분하는 방법을 예제로 설명합니다.

HTML 강좌 / div와 span은 언제 사용할까?

HTML 강좌 / div와 span은 언제 사용할까?

div와 span의 차이와 사용 기준을 설명하고, 의미 요소가 없는 경우에만 묶음 요소를 쓰는 예제를 보여 줍니다.

HTML 강좌 / 문서 제목·설명·언어·문자 인코딩 설정하기

HTML 강좌 / 문서 제목·설명·언어·문자 인코딩 설정하기

title, meta description, html lang, UTF-8 문자 인코딩, viewport의 역할을 완성된 HTML 문서 예제로 설명합니다.

HTML 강좌 / 텍스트에 의미 부여하기

HTML 강좌 / 텍스트에 의미 부여하기

HTML의 em, strong, q, blockquote, abbr, code, kbd를 상황에 맞게 쓰는 방법을 예제로 설명합니다. 글자의 모양이 아니라 텍스트의 의미를 표시하는 기준을 익힐 수 있습니다.

HTML 강좌 / 읽기 쉬운 표 만들기: caption, th, scope, 셀 병합

HTML 강좌 / 읽기 쉬운 표 만들기: caption, th, scope, 셀 병합

caption과 제목 셀의 scope로 표의 관계를 분명히 하고, colspan·rowspan으로 셀을 병합할 때 주의할 점을 설명합니다.

HTML 강좌 / 이미지 넣기: img, alt, 크기

HTML 강좌 / 이미지 넣기: img, alt, 크기

HTML img 요소로 이미지를 넣고 alt 대체 텍스트와 width·height를 설정하는 방법을 설명합니다. 실제 예제 이미지로 경로와 크기 문제도 확인할 수 있습니다.