본문 바로가기

웹 프론트 엔드 정리본

화면 구성하기 : 폼(form) - 라벨(label)

 

오늘은  폼에서 쓰이는 라벨(label) 태그에 대해서 알아보겠습니다.

 

 

 

 

라벨(label) 태그란?

라벨 태그는 ui요소에 텍스트를 결합할때 사용합니다.

왜 굳이 라벨태그를 사용하는지를 물어본다면, label 태그는 다른 ui들과 결합해서 사용할 수 있기 때문입니다.

 

 

label 태그의 속성

  1. for
    span 태그나 p 태그를 사용하지 않는 이유는 label 태그의 for 속성 때문입니다.
    for 속성을 사용하여 같은 id 속성을 가진 ui에 상호작용을 할 수 있습니다.
  2. form
    여러개의 form에 동일한 id가 존재할때 사용합니다.
    form 속성값과 일치하는 id를 가진 form을 참조할 수 있습니다.
    form 과 for를 같이 사용하여 해당 id의 form 중 해당 id를 가진 ui에 상호작용 할 수 있습니다.

 

<body>
    <form>
        <input type="radio" id="option1" name="group1"/>
        <label for="option1"> 옵션 1 </label>
        <input type="radio" id="option2" name="group1"/>
        <label for="option2"> 옵션 2 </label>
        <input type="radio" id="option3" name="group1"/>
        <label for="option3"> 옵션 3 </label>
        <input type="radio" id="option4" name="group1"/>
        <label for="option4"> 옵션 4 </label>
        <input type="radio" id="option5" name="group1"/>
        <span for="option5"> 옵션 5(span 태그) </span>
    </form>
</body>

예시 코드입니다.

label 과의 차이점을 알아보기 위해 마지막에 span 태그를 사용해보았습니다.

 

옵션 5(span 태그)

위의 결과를 눌러보면 label 태그로 구성된 옵션 4까지는 텍스트와 ui간 상호작용이 되지만,

span 태그로 된 옵션 5는 라디오 버튼을 눌러야만 상호작용이 됩니다.

이러한 차이가 사용자 경험에 영향을 미치기 때문에, label 태그를 사용하게 됩니다.

 

반면, for를 사용하지 않고 이러한 상호작용을 할 수 있는 방법이 있는데,

바로 label 태그 내에 ui를 집어넣는 경우입니다.

<body>
    <form>
        <label> 
            <input type="radio" id="option1" name="group1"/> 옵션 1 
        </label>
        <label> 
            <input type="radio" id="option2" name="group1"/> 옵션 2
        </label>
        <label> 
            <input type="radio" id="option1" name="group1"/> 옵션 3
        </label>
        <label > 
            <input type="radio" id="option1" name="group1"/> 옵션 4 
        </label>
        <label> 
            <input type="radio" id="option1" name="group1"/> 옵션 5
        </label>
    </form>
</body>

위의 코드를 방법만 바꾼 예시입니다.

그 외의 차이점은 이전의 span태그를 label로 바꾼것 외에는 없습니다.

 

실행결과를 보시면 for를 사용한것과 동일한 결과임을 확인할 수 있습니다.

이와같이 다른 방법을 사용하여 label을 선언할 수도 있습니다.