ie6부터 ie9까지 대응하기_정찬명

84
"IE6부터 IE9까지 대응하기" NHN 오픈UI기술팀 정찬명

Upload: webstandard

Post on 05-Dec-2014

12.642 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Ie6부터 ie9까지 대응하기_정찬명

"IE6부터 IE9까지 대응하기"

NHN 오픈UI기술팀정찬명

Page 2: Ie6부터 ie9까지 대응하기_정찬명

목           차

1. She is still alive2. 국내 웹 브라우저 통계3. IE 브라우저를 표준 준수율에 따라 구분4. IE6~7 문제해결 5. IE6~9 브라우저에서 CSS3 사용하기6. 요점 정리

Page 3: Ie6부터 ie9까지 대응하기_정찬명

She is still alive.

Page 4: Ie6부터 ie9까지 대응하기_정찬명

She is still alive.

She is still alive.

Page 5: Ie6부터 ie9까지 대응하기_정찬명

She is still alive.

Wonder Woman(Lynda Carter)

Page 6: Ie6부터 ie9까지 대응하기_정찬명

She is still alive.

16.18%2010.09 - Net Applications - http://bit.ly/do6knz

Page 7: Ie6부터 ie9까지 대응하기_정찬명

She is still alive.

IE6 in Global.

Page 8: Ie6부터 ie9까지 대응하기_정찬명

She is still alive.

37.11%2010.09 - Internet Trend - http://bit.ly/9qpZ7Z

Page 9: Ie6부터 ie9까지 대응하기_정찬명

She is still alive.

IE6 in South Korea.

Page 10: Ie6부터 ie9까지 대응하기_정찬명

She is still alive.

Is IE6 dead?

Page 11: Ie6부터 ie9까지 대응하기_정찬명

She is still alive.

No, IE6 is still alive.

Page 12: Ie6부터 ie9까지 대응하기_정찬명

국내 웹 브라우저 통계

Page 13: Ie6부터 ie9까지 대응하기_정찬명

국내 웹 브라우저 통계 

IE를 제외한 브라우저 3.46%.2010.09 - Internet Trend - http://bit.ly/9qpZ7Z

Page 14: Ie6부터 ie9까지 대응하기_정찬명

국내 웹 브라우저 통계 

IE6는 10년째 한국에서가장 높은 점유율.

Page 15: Ie6부터 ie9까지 대응하기_정찬명

국내 웹 브라우저 통계 

"저희 웹 사이트는

IE6를 지원하지 않습니다.

"

Page 16: Ie6부터 ie9까지 대응하기_정찬명

국내 웹 브라우저 통계 

손님의 1/3을 받지 않겠음. 

Page 17: Ie6부터 ie9까지 대응하기_정찬명

국내 웹 브라우저 통계 

웹 개발자는

IE6, IE7, IE8, IE94개 버전의 브라우저에 모두 대응해야 한다.

Page 18: Ie6부터 ie9까지 대응하기_정찬명

국내 웹 브라우저 통계 

행정안전부전자정부 웹 호환성 준수지침

2009.8.19

Page 19: Ie6부터 ie9까지 대응하기_정찬명

국내 웹 브라우저 통계 

"

최소 3종의 브라우저에서

동등한 레이아웃 및기능 구현

"

Page 20: Ie6부터 ie9까지 대응하기_정찬명

국내 웹 브라우저 통계 

"IE 브라우저는 

버전과 관계없이

1종의 브라우저입니다

"

Page 21: Ie6부터 ie9까지 대응하기_정찬명

IE 브라우저를 표준 준수율에 따라 구분

Page 22: Ie6부터 ie9까지 대응하기_정찬명

IE 브라우저를 표준 준수율에 따라 구분 

IE6 | IE7 | IE8 | IE9

Page 23: Ie6부터 ie9까지 대응하기_정찬명

IE8 | IE9IE6 | IE7

IE 브라우저를 표준 준수율에 따라 구분 

Page 24: Ie6부터 ie9까지 대응하기_정찬명

IE 브라우저를 표준 준수율에 따라 구분 

IE6 IE7 IE8 IE9

Page 25: Ie6부터 ie9까지 대응하기_정찬명

IE 브라우저를 표준 준수율에 따라 구분 

IE8, IE9 브라우저는 '웹 표준' 브라우저

Page 26: Ie6부터 ie9까지 대응하기_정찬명

IE 브라우저를 표준 준수율에 따라 구분 

웹 개발자가

'웹 표준'을 준수하면 

IE8, IE9 브라우저는거의 문제가 되지 않는다.

Page 27: Ie6부터 ie9까지 대응하기_정찬명

IE 브라우저를 표준 준수율에 따라 구분 

IE6, IE7 브라우저는 하위 호환성확인 필요.

Page 28: Ie6부터 ie9까지 대응하기_정찬명

IE 브라우저를 표준 준수율에 따라 구분 

웹 개발자가

'웹 표준'을 준수해도 

IE6, IE7 브라우저는문제가 생길 수 있다. 

Page 29: Ie6부터 ie9까지 대응하기_정찬명

IE 브라우저를 표준 준수율에 따라 구분 

IE6 브라우저와

IE7 브라우저는

큰 차이가 없다

Page 30: Ie6부터 ie9까지 대응하기_정찬명

IE 브라우저를 표준 준수율에 따라 구분 

IE6에서 발생하는 문제는

IE7에서도 대부분 발생한다.

Page 31: Ie6부터 ie9까지 대응하기_정찬명

IE6~7 문제해결 

Page 32: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

표준 DTD 사용하기

Page 33: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

DTDDocument Type Definition문서형 정의

DTD 선언 유무와 종류에 따라  브라우저의 화면 표시 방식이 달라짐.

Page 34: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

표준 DTD를 사용하지 않거나 DTD를 아예 사용하지 않는 경우웹 브라우저는 

IE5 브라우저의 렌더링을 흉내낸다.

이런 상태를 Quirks Mode 라고 한다.

Page 35: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

대부분의 브라우저들은 Quirks Mode를 통해서 IE5를 흉내내는데문제는 브라우저마다 IE5를 흉내내는

정도가 다르다는 점.

Page 36: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

결국 DTD를 사용하지 않으면

브라우저 호환성을 결코유지할 수 없다.

Page 37: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

HTML = XHTML둘 중 어느것을 사용해도 좋다.

어느것이 우월한지에 관한 논쟁은 무의미.

Page 38: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

Strict < Transitional

Transitional을 사용하는 것이 좋다.지나친 엄격함은 더 많은 오류를 유발할 뿐.

Page 39: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

hasLayout

Page 40: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

hasLayouthasLayout이란 IE 브라우저만의고유한 렌더링 방식으로써 IE의 많은 오류들이 관련되어 있다.HTML 요소가 hasLayout을 갖지 못하면 문제 발생.

Page 41: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

hasLayout 문제HTML 요소가 화면에 보이지 않음박스의 크기를 잘못 계산마진 또는 패딩의 크기를 잘못 계산etc ...

Page 42: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

hasLayout TriggerhasLayout Trigger는 특정 요소가 hasLayout을 갖도록하는속성을 말한다.요소가 hasLayout을 갖도록 하면 문제를 해결할 수 있다. 

Page 43: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

hasLayout Triggerposition: absolutefloat: left | rightdisplay: inline-blockwidth: auto 외의 모든 값height: auto 외의 모든 값zoom: 1 (IE 전용)

Page 44: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

zoom:1다른 브라우저가 해석하지 않는 속성으로써 실무에서 가장 유용.문제 발생시 DOM 구조의 가장 깊은 곳으로부터 순차적으로 적용해 보면 hasLayout 문제를 대부분 해결.

Page 45: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

hasLayout 문제는

IE8, IE9 브라우저에서는 발생하지 않는다.

Page 46: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

Double Margin Float Bug

Page 47: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

.b { float:left; margin-left:100px;}

Page 48: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

표준 렌더링 

IE6 마진 2배 작용 

Page 49: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

IE6는 

float된 방향과 같은 방향의margin이 설정되면margin이 두 배로 작용한다.

Page 50: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

해결 방법.b { float:left; margin-left:100px; display:inline;}

Page 51: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

float 처리된 요소는display:block이 되는데이는 어떤 방법으로도 덮어쓰기가 불가능하다.

따라서 display:inline 속성은 IE6 문제해결을 위한 트리커.

Page 52: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

position:relative

Page 53: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

position:relative hasLayout Trigger는 아니지만그 밖의 다양한 IE 버그에 대한 Trigger 역할을 한다.

Page 54: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

display:inline

Page 55: Ie6부터 ie9까지 대응하기_정찬명

IE 6~7 문제해결 

display:inline Double Float Margin 버그 뿐만 아니라float 처리된 요소에 발생하는 여러가지 문제들을 해결할 수 있다.

Page 56: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기 

Page 57: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

낡은 브라우저 때문에 

신기술을 

사용할 수 없다?

Page 58: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

신기술을 

사용할 수 있다!

Page 59: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

첫째, 마이크로소프트에서IE6~8에 탑재한 기술이 CSS3에 채택됨.

Page 60: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

둘째, CSS3와 유사한 기술이이미 IE 6~8 브라우저에 존재.

Page 61: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

IE6~8 브라우저에서도

신기술을 사용하거나 

또는 모방할 수 있다!

Page 62: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

word-wrap:

지원 브라우저 : IE6~9, FF, CR, SF, OP

Page 63: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

word-wrap:word-wrap:break-word; 지원 브라우저 : IE6~9, FF, CR, SF, OP

Page 64: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

text-overflow:

지원 브라우저 : IE6~9, CR, SF, OP

Page 65: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

text-overflow:text-overflow:ellipsis; -o-text-overflow:ellipsis; 지원 브라우저 : IE6~9, CR, SF, OP

Page 66: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

@font-face{...}

지원 브라우저 : IE6~9, FF, CR, SF, OP

Page 67: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

@font-face{...}@font-face{ font-family:ngttf; src:url(NanumGothic.ttf);}@font-face{ font-family:ngeot; src:url(NanumGothic.eot);}body, input, textarea, select, button{ font-family:NanumGothic, 맑은고딕, ngttf, ngeot;}

지원 브라우저 : IE6~9, FF, CR, SF, OP

Page 68: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

opacity:

지원 브라우저 : IE6~9, FF, CR, SF, OP

Page 69: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

opacity:opacity:0.5;*filter:alpha(opacity=50); 지원 브라우저 : IE6~9, FF, CR, SF, OP

Page 70: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

box-shadow:

지원 브라우저 : IE9, FF, CR, SF, OP

Page 71: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

box-shadow:

IE6~7 브라우저는 filter 효과를 사용하여 다소다른 표현을 보여준다.

Page 72: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

box-shadow:box-shadow:10px 10px 10px silver;-moz-box-shadow:10px 10px 10px silver;-webkit-box-shadow:10px 10px 10px silver;filter:progid:DXImageTransform.Microsoft.Shadow(color=silver,direction=135, strength=10);

지원 브라우저 : IE6~9, FF, CR, SF, OP

Page 73: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

text-shadow:

지원 브라우저 : IE6~9, FF, CR, SF, OP

Page 74: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

text-shadow:text-shadow:5px 5px 0 #ccc;filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=5, OffY=5, Color=#cccccc, Positive=true);display:inline-block; zoom:1;

지원 브라우저 : IE6~9, FF, CR, SF, OP

Page 75: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

border-radius:

지원 브라우저 : IE9, FF, CR, SF, OP

Page 76: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

border-radius:border-radius:30px; -moz-border-radius:30px;-webkit-border-radius:30px;

지원 브라우저 : IE9, FF, CR, SF, OP

Page 77: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

border-radius:IE6~7 브라우저는 border-radius 속성을 지원하지 않지만마이크로소프트 전용 포멧 자바스크립트 파일ie-css3.htc 를 사용하면 동일하게 렌더링 할 수 있다.

- 관련정보 : http://fetchak.com/ie-css3/- 문제해결 : http://support.microsoft.com/kb/306231/en-us?fr=1

Page 78: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

background:gradient

지원 브라우저 : IE6~9, FF, CR, SF

Page 79: Ie6부터 ie9까지 대응하기_정찬명

IE6~9 브라우저에서 CSS3 사용하기

background:gradientbackground:#3EAF0E -webkit-gradient(linear, 0% 0%, 0% 100%, from(#3EAF0E), to(#fff));background:#3EAF0E -moz-linear-gradient(top, #3EAF0E, #fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#3EAF0E, endColorStr=#ffffff);

지원 브라우저 : IE6~9, FF, CR, SF

Page 80: Ie6부터 ie9까지 대응하기_정찬명

요점 정리

Page 81: Ie6부터 ie9까지 대응하기_정찬명

요점 정리

첫째,현존하는 하위 버전 브라우저에 대한호환성을 지원해야 한다.

Page 82: Ie6부터 ie9까지 대응하기_정찬명

요점 정리

둘째,신 기술의 사용을두려워 할 필요가 없다.향상된 경험을 전달하자.

Page 83: Ie6부터 ie9까지 대응하기_정찬명

요점 정리

셋째,낡은 브라우저 비난하기 보다는 새 브라우저를 추천.

Page 84: Ie6부터 ie9까지 대응하기_정찬명

경청해주셔서고맙습니다.