2014-09-18 4 views
2

는 </p> <p>

<br><b>ABCDEF<u>GHJIKLOM</b>PQRST</u>UVWXYZ 
 
<br><b>ABCDEF<ins>GHJIKLOM</b>PQRST</ins>UVWXYZ
이 첫 번째 예에서 밑줄이 T 아래로 이동하고 두 번째에 갑자기 종료하는 방법을 참조하십시오 "허용하지 않습니다" M에 있습니다. 그러나 코드는 기본적으로 동일하지만, u은 특정 모양을 변경하고 ins은 텍스트가 삽입되었고 "어떻게 든"이라고 표시해야한다는 힌트 일 뿐이며 확인은 밑줄로 표시됩니다. 경험은 이것이 괜찮을 거라는 것을 말해 주지만 일부 태그가 다른 태그와 겹치도록 허용하고 다른 태그와 겹치는 것이 왜 겹쳐 질 수 없는지 궁금합니다. 브라우저 어딘가에 쌍 테이블이 있습니까? 또는 일부 태그는 "중첩 친화적"으로 표시되어 있습니까? 왜 이런거야?

+1

흥미를 자아냅니다. ...하지만 너무 개방적이라고 느낍니다. – amphetamachine

+0

이것에 관해 인터넷에서 많은 것을 발견하지 못한다. 통용되는 견해는 유효하지 않은 문법이므로 태그를 중첩하지 마라. – Dan

답변

4

스 니펫이 유효하지 않습니다. 브라우저는 입력으로부터 유효한 DOM 트리를 재구성해야합니다.

<b> 
    ABCDEF 
    <u> 
     GHJIKLOM 
    </u> 
</b> 
<u> 
    PQRST 
</u> 
UVWXYZ 

<b> 
    ABCDEF 
    <ins> 
     GHJIKLOM 
    </ins> 
</b> 
PQRSTUVWXYZ 

이이 section 12.2.3.3 ("Parse state") of the HTML5 standard에 지정된 것처럼 잘못된 HTML 입력에서 복구를 제어하는 ​​알고리즘이 두 경우에, 그것으로 끝나는된다. 특별히 여기에 결과의 차이의 원인은 무엇

<ins> 태그 <b><i>는 반면, 서식 HTML5 요소로 분류되지 점이다. (서식 지정 요소의 전체 목록은 in section 12.2.3.2이며 매우 작습니다.) 이렇게하면 <ins>이 다른 닫는 태그에 의해 "인터럽트"될 때 다시 열리지 않습니다.