2017-04-25 2 views
0

이것은 가장 일례로 도시되어 올 :라벨 -이

<label for="myInput">This is an external label</label> 
 

 
<br> 
 

 
<label> 
 
This label is wrapped arround the input 
 
<input type="text" id="myInput"> 
 
</label>

는 HTML5이 맞습니까? 여러 라벨이 한 입력란을 가리킬 수 있지만 라벨은 한 입력란을 가리킬 수 있음을 알고 있습니다. 이 예제에서 두 입력란은 동일한 입력을 가리키고 하나만 입력을 둘러 쌉니다.

답변

1

HTML5에서 올바른 내용일까요?

예.

은 여러 개의 레이블을 하나 개의 입력 필드를 가리킬 수 있습니다 이해하지만, 라벨 할 수있는 하나 개의 필드 다시

예에서만 점. 여기 사양에서

: 캡션이 label 요소의 표시 제어로 알려진 특정 폼 컨트롤과 연관 될 수

어느 속성 또는 내부 폼 컨트롤을 바꾸어을

사용 https://www.w3.org/TR/html5/forms.html#the-label-element label 요소 자체

아무 for 특성이없고 label가 그 labelable 제어 중첩 된 후, 최초의 자손은 labelable 제어된다. 그러나 label은 다른 label으로 중첩되어서는 안됩니다.

label.control 속성은이 요소와 연결된 양식 컨트롤을 반환합니다. 그 반대의 경우 .labels은 해당 컨트롤에 적용 가능한 모든 레이블의 nodelist을 반환하는 레이블 가능한 컨트롤의 읽기 전용 속성입니다.

예 1 : 아래의 예에서

input.labels 속성은 모두 라벨을 포함하는 nodeList을 반환합니다. 이 예에서

, I 의도적 두 입력 한 라벨을 연결 한 예제 2


var inp = document.getElementById('myInput'); 
 
console.log(inp.labels);
<label for="myInput">This is an external label</label> 
 
<br> 
 
<label> 
 
    This label is wrapped around 
 
    <input type="text" id="myInput"> 
 
</label>

. 여기서 처음으로 발견 된 것은 for 속성과 연관되며, 두 번째 속성은 중첩 된 컨트롤이 있어도 무시됩니다.

var myInput = document.getElementById('myInput'), 
 
    yourInput = document.getElementById('yourInput') 
 
; 
 
console.log(myInput.labels); 
 
console.log(yourInput.labels);
<label for="myInput"> 
 
\t This is an external label 
 
\t <input id="yourInput"> 
 
</label> 
 
<br> 
 
<input type="text" id="myInput">