2010-01-29 4 views
33

base HTML 요소는 HTML의 상대 URI에 대한 기반을 제공합니다. 자바 스크립트와 CSS는 해당 URI에서 발행 된 관련 URI에 대해서도 반드시 준수해야합니다.<base> 태그는 스크립팅 및 CSS에서도 사용됩니까?

예 :

자바 스크립트 :

location.href = "mypage.htm"` 

CSS :

h4 { 
    background-image: url(myimage.gif) 
} 

CSS 경로는 IE6가 버그와 바보와 .htc 파일을로드 할 때를 제외하고 (항상 (모든 브라우저에서?)

답변

37

문서에 상대적인 CSS behavior 속성에 지정된)을 HTML 스타일에 의존하지 않고 스타일 시트 자체에 비례합니다. 다른 것들을 위해서, <base>은 파일이 base에 의해 정의 된 디렉토리에있는 것처럼 HTML의 지각 된 현재 디렉토리에 영향을 미칩니다. 결과적으로 location.href=...;과 같은 것에 영향을줍니다. 그런데 <style> 요소의 인라인 스타일 및 스타일 정보는 문서 위치를 기준으로로드됩니다. 물론 이들은 <base> 태그의 영향을받습니다.

+0

철저하고 concise.Thanks :

정상 IE6 수정

은 종료 태그를 포함하는 조건부 주석을 사용하고 있습니다. –

12

base 태그는 실제로 HTML 문서 내부의 상대 링크에 의해서만 수여됩니다.

그러나 <base> 태그를 XHTML이 아닌 0x32를 사용할 때 고려해야 할 IE6 관련 버그가 있습니다. <base> 태그는 HTML에서 종료 태그 </base>을 가지고 있지으로 설명되어 있지만, IE6 잘못의 원인이되는 사실 그것을 상정 <base> 태그는 HTML DOM 트리에서 <base> 태그의 아이으로 배치 후 전체 내용 그 . 이로 인해 Javascript/jQuery/CSS에서 처음으로 설명 할 수없는 문제가 발생할 수 있습니다. 즉, base 사이에 실제로 발견 될 때까지 특정 선택 항목 (예 : html>body)에서 완전히 도달 할 수없는 요소가 발생할 수 있습니다.

<base href="http://example.com/"><!--[if lte IE 6]></base><![endif]--> 
+0

+1에 대한 IE6 설명. –

+0

을하지 않는 이유가 있습니까? –

+1

@Marcus : HTML4 유효하지 않습니다 (브라우저에서 허용 함). 그러나 HTML5에서는 완벽하게 그렇게 할 수 있습니다. – BalusC

관련 문제