2013-03-19 4 views
0

예를 들어, SO는 가장 인기있는 사이트처럼 50 개 이상의 CSS 오류 및로드시 경고를 발생시킵니다.브라우저 종속 CSS가 사용되지 않는 이유는 무엇입니까?

올바른 브라우저를 감지하고 올바른 CSS를 동적으로로드하기 만하면됩니다.

대부분의 사이트에서 이러한 오류/경고가 무시되는 이유를 알고 싶습니다.

불필요한 CSS를 구문 분석 할 때 발생하는 성능이 마이크로 초의 범위 일 가능성이 높습니다.

+3

쓸모없는 CSS를 구문 분석 할 때의 성능 저하가 너무 작기 때문에 중요한 오류가 아니므로 * 및 * 브라우저 검색의 성능이 크게 향상되었습니다. – BoltClock

+5

그리고 올바른 브라우저를 어떻게 감지합니까? – Ian

+1

주된 이유는 개발의 용이성 때문이라고 생각합니다. 개별 브라우저에 대한 CSS 규칙 설정 * 및 * 정확한 브라우저 탐지 구현은 ...하지 않는 것보다 더 많은 시간이 걸리며 일부 개발자는 CSS 오류를 볼 수 없습니다. –

답변

5

두 가지 이유 :

  1. 그것은 불가능이다 사물의 클라이언트 측에서 사용 브라우저를 감지합니다. 요청이있는 경우 user-agent 헤더를 스니핑 할 수 있지만 브라우저 제조업체 —과 사용자 (사용자가 헤더 값을 사용 중지하거나 변경할 수 있기 때문에) —이 허용하는 경우에만 신뢰할 수 있습니다.

  2. 브라우저 특정 CSS를 사용하여 DOM 또는 Javascript의 "기능"은 비표준 구현을 장려합니다. 이것이 중요한 이유는 http://www.webstandards.org/을 참조하십시오. 당신이 제안하는 것은 웹 개발의 "어두운 시대"로 돌아갈 것입니다.

  3. 단순히 실패하거나 클라이언트가 사용하는 브라우저가 아닌 표준이라고 지적 페이지에 배너를 표시하는 훨씬 더

는 — 무료 얼마나 싼 브라우저 주어진! —은 사용자가 더 나은 브라우저를 사용하면 웹에서 더 나은 환경을 제공 할 것이라고 제안했습니다.

존 포스텔 (Jon Postel)은 강건 함을 위해 애플리케이션이 수용하는 것에 대해 방출하고 허용하는 것에 대해 엄격해야한다고 말한 적이 있습니다. 조기 HTTP 구현과 초기 HTML 렌더링 엔진은 받아 들일 수있는 것에 대해 극단적으로 관대하고 모든 종류의 비표준 확장자와 웹 서버를 구현하는 웹 브라우저가 모든 종류의 깨진 잘못된 형식의 브라우저를 사용하여 궁극적으로 Great Browser Wars로 이어졌습니다 마크 업. 브라우저 제조업체가 표준이 아니거나 조작 된 데이터 수신시 오류를 단순히 던진다면 우리가 훨씬 나아 졌을 것이라고 주장합니다.

나는 이러한 오류/경고가 대부분의 사이트에서 무시됩니다 이유를 이해하기 위해 노력하고있어 다음 OPS 질문에 대한 응답으로

?

짧은 답변은 표준이 특정 동작을 요구하기 때문입니다. http://www.w3.org/TR/CSS21/syndata.html#parsing-errors에있는 CSS 표준의 § 4.2를 참조하십시오.

+0

@pure_code 읽으려면 예. 냄새 맡기/이해하기, 안돼. – Ian

+1

멋진 세상에서 당신은 옳았습니다. 브라우저 별 규칙을 작성하지 않으면 할 수없는 일이 많습니다. 사용자 에이전트를 사용한 브라우저 감지에 관해서는 사용 된 브라우저의 99.99 %를 나타내는 모든 주요 브라우저가 누구인지 알기 때문에 신뢰할 수있는 정보입니다. – Gael

+2

@pure_code 질문에 대한 답변입니다. 왜 제거해야합니까? 대신에 Upvoting. –

관련 문제