2011-01-20 3 views
1

CSS를 사용할 때 크로스 브라우저에 적합하지 않다는 것을 깨닫는 데 오랜 시간이 걸리지 않습니다. 주변에 연주 한 사람 등 등의 위치 및 의사 셀렉터와
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(...);Strict vs Hacky CSS - 어느 쪽이 바람직합니까

내가 했어 문제 :

예를 들어

나는 반투명 PNG를 원 할 때, 나는 IE에게 같은 말도 뭔가를 제공했다 20 분 이상 CSS가 발생했습니다.

  • 때때로 문제를 해결하기 위해 모든 브라우저가 지원하고 지원하는 기능을 동일하게 (또는 적어도 유사한 방식으로) 수행하기로 결정합니다.
  • 다른 경우 나는 조건부 주석을 넣고 IE에 자신 만의 스타일 시트를 제공합니다.
  • 그리고 다른 경우에 나는 단순히

그래서 제 질문은 최선의 선택 인 것입니다 ("html>/**/body {}"은 "* html {}"이전 또는 같은) 특정 비트를 읽고 특정 브라우저를 제외 CSS를 해킹을 사용합니다. 첫 번째 기능은 꽤 제한적이며 IE6이 할 수있는 기능에 대한 개발을 끝내지 만 나머지 두 가지 기능은 조금은 실망 스럽습니다. 그렇다면 프로그래밍 실습, 렌더링 효율성 등의 관점에서의 베팅은 무엇입니까?

+0

내가 일하는 회사와 동일한 정책을 채택하고 현재 버전과 현재 버전 1에있는 각 브라우저 만 지원할 것을 제안합니다. IE7/8을 의미하며 곧 IE8/9가됩니다. – sberry

+0

웹에 여전히 많은 IE6 사용자가있는 경우 실용적이지 않습니다. - 극도로 유혹적이긴하지만 ... – jcuenod

답변

1

짧은 답변 :

  • 정지 해킹을 사용하여 조건부 주석 장기적으로

을 사용하기 시작, CSS 해킹은 창의력 표준을 준수하기 위해 최선을 스타일 시트를 오염시키고 유지 보수하기가 더 어려워 질 것입니다. 가능하면 어디든지 피하고 IE 스타일 시트에서 조건부 주석을 대신 사용하십시오 (대부분의 해킹은 IE에 적합하기 때문에). CC가 해킹보다 훨씬 덜 운명적이라는 것을 보장 할 수 있습니다.

IE가 항상 제한하지 않아도됩니다. 점진적 향상이라는 개념이 있습니다. 즉, 고급 스타일링을 지원하는 최신 브라우저에서 페이지를 약간 더 예쁘게 만들 수 있습니다. 브라우저 공급 업체가 이들 제품에 대한 지원을 신속하게 (상대적으로)하고 있기 때문에 오늘 border-radius과 같은 CSS3 속성을 사용하면 아무런 문제가 없습니다.

그러나 다른 토론 주제가 될 클라이언트가 있습니다. 나는 균형을 잡으라고 말하고 싶습니다. 고객을 교육시키고 창의력을 발휘하십시오. 그러나 똑똑하거나 공상적인 것을 시도하지 마십시오. 그리고 아침에 4시 반이 지났지 만 CSS 해킹을 피하십시오. 그리고 맥주 한 통을 마신 후에도 할 수 있고 어떤 상황에서도 무언가를하고 싶습니다.

+0

당신은 코드에 "맥주 한잔 할 수 있어요?"나는 최근에 21 세가 된 onpy를 가지고 있을지 모르지만 건강에 좋지 않거나 불법적 인 것처럼 보입니다. 당신을 해고 할 가능성이 있습니다. –

+0

@Chris Lutz : 건강에 해로운/불법적 인 (나는 술을 마시지 않는다) 이야기는 할 수 없지만, 집에서 일하는 사람들이 있습니다. 그 표현은 어쨌든 완전히 혀로 된 뺨이었습니다. P – BoltClock

+0

광산 역시 유머러스 한 발언이었습니다. 나는 스마일을 사용하기 시작할 필요가있다. 또한, 내 전화를 입력 할 때 더 많은 훈련 철자 검사를 사용하여 시작해야합니다. 필자는 철자와 타이핑에서 일반적으로 주석이 나타내는 것보다 훨씬 낫다. : P –

1

나는 항상 IE 픽스로 조건부 코멘트를 선호한다. 해킹은 파싱을 수정하는 IE와는 일관성이 없으므로 해킹은 더 이상 작동하지 않지만 해킹이 수정되는 것은 수정하지 않습니다. 또한 다른 CSS 파서와 혼란 스러울 수 있습니다.