2010-01-08 1 views
9

Microsoft의 샘플 StockTrader 응용 프로그램의 소스 코드를 살펴보면 모든 aspx 파일에서이 스 니펫을 발견했습니다.외부 CSS에 메타 태그 Content-Style-Type을 사용하는 이유는 무엇입니까?

<meta http-equiv="Content-Style-Type" content="text/css"/> 
<title>.NET StockTrader Portfolio</title> 
<link rel="stylesheet" href="StockTrader.css" type="text/css" /> 

링크 태그가 모든 것을 말하면 메타 태그를 사용하는 이유는 무엇입니까? 내가 놓친 게 있니?

+5

사실 HTML5 유효성 검사기가이를 감지합니다. – Moshe

+0

파이어 폭스만으로도 내 페이지 중 일부가 잘못되었다는 것을 알게되었습니다. 깊은 곳에서 파고 드는 것은 내 에 메타 태그가 있지만 콘텐츠 매개 변수에 오타가 있음을 발견했습니다. 파이어 폭스가 걱정하는 유일한 브라우저 인 것 같습니다! – Octopus

답변

13

"Content-Style-Type"메타 태그는 문서의 기본값 인 스타일 유형을 설정하는 데 사용됩니다. 실제로는 대부분의 사람들이 질문에 <link> 태그와 같이 스타일 유형을 사용할 때마다 구체적으로 지정하므로이 방법이 유용하지는 않습니다. 이 특별한 선언은 여분의 여분으로 보인다. According to the W3 :

사용자 에이전트는 다음 단계에 따라 문서의 기본 스타일 시트 언어를 결정해야합니다 (가장 높은 가장 낮은 우선 순위) :

  1. 어떤 META 선언이 "콘텐츠 -를 지정하는 경우 스타일 유형 "에서 문자 스트림의 마지막 부분 인 은 기본 스타일 시트 언어를 결정합니다.
  2. 그렇지 않으면 "Content-Style-Type"을 지정하는 HTTP 헤더가있는 경우 문자 스트림에서 마지막으로 이 기본 스타일 시트 을 결정합니다.
  3. 그렇지 않으면 기본 스타일 시트 언어는 "text/css"입니다. 어쩌면 그것은 악성 웹 서버에 대해 보험 비록에 "텍스트/CSS는"단지 브라우저가 어쨌든 가정 한 것입니다 무슨 무시되는 기본을 설정 "내용 스타일 형"을 사용 그래서 이론적으로

, 그 HTTP 헤더에 무엇인가 설정하려고 할 수 있습니다.

아마 표준을 따르려는 열정적 인 시도로 생성되었을 것입니다.

빠른 편집 노트 : 내가 링크 된 그 W3 문서에 실제로 기본 스타일 시트 언어를 정의하지 않고 스타일 속성을 사용하여 요소가 문서가 잘못된 문서라고 주장한다. 그러나 나는 이것이 전에 validator에서 문제로 떠오르는 것을 본 적이 없다.

+3

Microsoft ... "표준을 준수하기위한 열정적 인 시도"... 뭔가 빠졌습니까? hehe. +1 좋은 대답. –

+0

유효성 검사기는 DTD에서 표현할 수있는 것이 아닙니다. 유효성은 적합성의 일부일뿐입니다. – Quentin

0

Content-Style-Type 메타 태그는 기본 스타일 시트 언어를 나타냅니다. http://www.w3.org/TR/REC-html40/present/styles.html#default-style

모든 링크 태그에 type 속성을 지정하면 메타 태그가 필요하지 않습니다.

<div style="color: red;"> 

어떤 스타일 언어이다하십시오 Content-Style-Type 설정이 필요한 이유를 이론적으로

16

이유는 속성을 인라인 스타일인가? <style><link rel="stylesheet"> 태그와 달리 type 속성 메커니즘이 브라우저에 어떤 언어인지 알려주지 않으므로 문서 전체적인 Content-Style-Type이됩니다.

<div onclick='alert("hello")'> 

어떤 언어가 있습니다 :

같은 속성 Content-Script-Type 및 인라인 이벤트 핸들러에 적용? 사실 JavaScript와 VBScript에서도 똑같이 유효합니다. IE에서도 마찬가지 일 수 있습니다. 이론 상으로는 브라우저에 Content-Script-Type 헤더/메타를 주어야합니다. 평범한 예전 JavaScript에서도 text/javascript;version=1.6 또는 e4x=1과 같은 유형 매개 변수를 설정하여 방언을 변경하고자 할 수 있습니다 (E4X XML 리터럴을 사용하고 싶다면 실수하지 않기 때문).

기본 CSS가 실제로 사용할 수있는 유일한 스타일 언어이기 때문에 아무 것도 사용하지 않으며 많은 브라우저는 Content-Style-Type에 아무런주의를 기울이지 않으며 어떤 브라우저도 Content-Script-Type에 관심을 기울이지 않으므로 실제로는 아무 것도 사용하지 않습니다. .

는 (아 물론, 인라인 스타일을 필요로하고있는 이벤트 핸들러는 어쨌든 속성?)

+0

이전에 비슷한 게시물을 보았지만이 응답을 얻지 못했습니다 .. +1 여기는 오래된 게시물입니다. 거의 비슷한 답변을 기대합니다 .. (http://stackoverflow.com/questions/1939949/html-do-we -really-need-different-doctypes) –

3

그것은 대역폭의 낭비입니다. 아무도 실제로 그걸로 아무 것도하지 않습니다. HTML5에도 포함되지 않습니다.

0

CSS는 모든 주요 브라우저에서 사용되는 것으로 간주되므로 기술적으로 차이가 없습니다.

0

다른 사람들이 말했듯이 이것은 인라인 스타일과 링크의 기본값을 설정합니다. 이것은 필요하지 않을 수도 있지만 포함되어야하는 것들의 범주에 속합니다. http://www.w3.org/TR/REC-html40/present/styles.html#default-style에 정의되어 있으며 다른 포스터들은 주요 브라우저가 모두이를 가정한다고 언급했습니다. 그러나 브라우저가 HTML 파일의 유일한 소비자가 아니기 때문에 여전히 추가되어야합니다. 그들은 브라우저보다 더 신중하게 사양을 따라갈 수있는 다른 프로그램으로 가져 오거나 처리 할 수 ​​있습니다.

관련 문제