크로스브라우징 팁 정리
첨부파일 https://eond.com/coding/162805
이 글은 정찬명님의 나라디자인에서 '크로스브라우징 팁'을 읽고 정리한 내용을 갈무리해놓았습니다.

1) 바른 DTD 사용.
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

2) 공동 선택자(*) 활용
* { margin:0; padding:0; font-size:small; font-family:돋움, Dotum, AppleGothic, sans-serif;}

공통선택자에 font 를 정의하는 이유는 body 태그에 적용한 font 속성은 form 내부의 element 와 th, td 태그에까지 이를 상속하지 않는데 반하여 공통선택자에 이것을 적용하면 모든 element 에 대한 font 를 완벽하게 통일할 수 있기 때문입니다. 또한 font 에 대표속성(예: {font:small 돋움, Dotum, AppleGothic, sans-serif})을 사용하지 않는 이유는 이를 사용하는 경우 h1~h6, th, strong 태그가 기본적으로 지니고 있는 font-weight 까지 모두 초기화(normal) 되기 때문입니다. font의 대표속성을 사용할 때 font-weight 따위를 정의하지 않으면 font-wight:normal 상태로 렌더링 됩니다.


3) 의도하지 않았던 여백이 발생하는 경우는 보통 inline 형태의 element 문제 또는 IE 의 버그 때문 입니다. inline 형태의 element 는 항상 line-height 를 지니고 있습니다. 따라서 의도하지 않았던 여백이 발생하는 경우 일단 inline element 의 line-height 문제가 아닌지 먼저 확인해 보아야 합니다. line-height 도 화면에서 분명히 면적을 차지하고 있습니다. 안타깝게도 line-height 속성을 CSS 에서 따로 정의하지 않았다면 웹 브라우저 제품마다 line-heght 를 다르게 렌더링 할 것입니다. 이 때문에 어떤 브라우저에서는 의도한 대로 나타나지만 어떤 브라우저에서는 박스와 박스 사이에 여백이 생길 수도 있는 것입니다. 또 다른 문제는 잘 알려진 IE 버그로서 block 된 li 에 발생하는 알 수 없는 여백의 문제 입니다. 이럴 때에는 해당 li 가 화면에서 차지하는 면적을 제거하기 위하여 li {float:left; clear:both} 를 적용하고 float 된 li 의 면적이 부모 element 에게는 유효하게 전달되도록 ul {overflow-hidden} 을 적용해 보시기 바랍니다.

4) 화면 레이아웃을 결정할 때 position 속성을 사용하거나 또는 float 을 사용하라고 배웠을 것입니다. {position:absolute} 상태일 때에는 화면에서 면적을 차지하지 않는다는 것을 잘 알고 계실껍니다. 그리고 {position:absolute} 상태일 때에는 그다지 렌더링 관련 버그를 만나는 경우가 없을 것입니다. 하지만 float 의 경우 IE 에서는 버그가 있으므로 FF, OP 브라우저와의 차이가 발견되면 일단 IE 를 믿지 마시기 바랍니다. 이것에 대한 문제해결은 float 이 화면에서 면적을 차지하지 않는다는 사실과 IE 에서는 이와 관련된 버그가 있다는 사실을 인지하는 것으로부터 시작됩니다. 자주 발견되는 IE 의 렌더링 오류는 float 된 요소와 float 되지 않은 요소가 만나는 방법입니다. float 은 원래 주변의 inline 요소만 흐르도록 하는것이 맞지만 IE 는 block 된 이웃 요소도 float 의 영향을 받습니다.
IE 처럼 렌더링 시키려면 b 상자에도 float 속성을 넣어주면 됩니다. float 된 element 는 float 되지 않은이웃 element 와 서로 간섭하지 않지만 float 된 이웃 element 끼리는 서로의 면적을 인식하게 되기 때문입니다. 추가적으로 IE 6.x는 float된 요소에 적용된 margin을 두 배로 출력하는 버그가 있습니다. 따라서 float을 사용할때 margin을 함께 사용하지 않는것도 중요한 팁 입니다.
코멘트 0
접기/펴기 | 댓글 새로고침
 
 
Total 221 articles in 1 / 12 pages
번호 제목 제목 날짜날짜
공지 코딩 배울 수 있는 사이트 모음(HTML/CSS/JS/IMG/PHP) 2018/01/03
공지 jQuery를 배울수 있는 동네들입니다. 2013/08/09
공지 관련 링크 [1] 2010/05/23
221 [HTML5] pre 태그랑 xmp 태그의 차이점 [1] 2007/08/20
220 [미분류] 태터에 제로보드 넣기 & Next, Prev 버튼 감추기 (by SkyRejoice) 2007/08/27
219 [Script] 레이어를 이용한 서브 메뉴 2007/09/10
218 [Script] onload="allblur()" 2007/11/10
217 [Script] 입력폼에 배경 넣기 2008/12/22
216 Table to DIV 파일 [5] 2008/12/25
215 구글 인덱스 코드 파일 2008/12/25
214 CSS 강좌 2일차 : display : inline(혹은 block, none) 파일 2008/12/27
213 [DIV] 이미지 없이 CSS로 둥근 모서리 구현하기 [1] 2008/12/31
212 Rounded corners without images [1] 2008/12/31
211 이미지 없이 CSS로 둥근 모서리 구현하기(1) 2008/12/31
210 Rounded Corners 2008/12/31
현재글 크로스브라우징 팁 정리 [2] 2009/01/01
208 DIV와 Table for Layout 에 대한 코딩 이야기 [2] 2009/01/03
207 리다이렉트 방식에 대해서..... 2009/01/04
206 주석 표시하기 2009/01/14
205 [Script] 롤오버 메뉴 만들기 [1] 2009/01/18
204 [Script] div 높이 100% 맞추기 2009/01/18
203 [Script] Show-Hide Layers (by 신의키스) 파일 2009/01/19
202 [Script] Show-Hide Layers (by 태그매니아) 파일 [3] 2009/01/20

해시태그 디렉터리