당신은 선[善]플러 입니까?

팁공유방

  • 홈관련팁
  • 윈도우
  • 리눅스
  • 드림위버
  • 제로보드(XE)new
  • (x)html
  • CSS
  • javascript
  • jQuery
  • 웹표준
  • 웹접근성
  • 포토샵
  • 플래쉬
  • 기타

Xpress engine
Textyle

CSS

CSS와 관련된 팁이 있는 곳입니다. 좋은 자료 공유해 주세요.

크로스브라우징 input 박스

조회 수 3784 추천 수 0 2009.04.15 17:49:06
출처 :  

input 박스에는 여러가지가 있습니다. (라디오,체크박스,텍스트박스등)

 

여기에서 라디오 박스와 체크박스는 IE와 타브라우저에서 외곽여백의 차이가 있습니다.

이런경우를 잘모르는 웹디자이너 같은 경우 무조건 자기디자인 데로 해달라고 요구하곤하죠.. 그것도 익스에만 맞춰달라면서...참피곤한 경우죠. 물론 디자이너 입장에서는 그게 정답이고, 퍼블리셔 입장에서 맞춰주는것도 해야할일중에 하나일수는 있습니다. 그래서 협업이 중요한거 같습니다.

 

여튼 이럴때 해결방법입니다.

 

먼저 소스를 살펴보겠습니다.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>웹미니 input 박스테스트</title>
<style type="text/css">
body {font:12px "돋움", Dotum;}
</style>
</head>

<body>
<form name="form1" method="post" action="">
<input type="checkbox" name="checkbox" /><label for="test">테스트</label>
</form>
</body>
</html>

 

위와 같은 소스를 출력하면 다음과 같습니다.

 

 bb01.gif

 

익스와 파폭,사파리는 기본적으로 4px 이라는 외곽여백이 존재하며, 오페라는 3px 여백이 있었습니다.

세로여백은 top 라인에서 익스는 2px, 파폭과 사파리는 3px, 오페라는 0px 여백이 있었습니다. (여기서 사파리는 버전이 4입니다.)

 

그럼 여백을 초기화 해보기로 합시다.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>웹미니 input 박스테스트</title>
<style type="text/css">
* {margin:0; padding:0;}
body {font:12px "돋움", Dotum;}
</style>
</head>

<body>
<form name="form1" method="post" action="">
<input type="checkbox" name="checkbox" /><label for="test">테스트</label>
</form>
</body>
</html>

 

여기에서 초기화 방법도 여러가지겠지만, 저는 테스트로 * 를 사용했습니다.

body, table, div, input {margin:0; padding:0;} 이런식으로 해줘도 됩니다. 어떤방법이던간에 중요한건 input 에 여백을 0 으로 만드는겁니다.

 

 bb02.gif

 

익스를 제외하고 타브라우저에서는 여백이 줄어든걸 볼수있습니다. (역시 익스는 끄덕없습니다. 어쩔~ -.-)

input 에 여백을 주지 않을경우는 많은 차이가 없었지만, 여백을 0 으로 하니 브라우저마다 보여지는 차이가 커졌습니다.

 

그럼 이걸 어떻게 맞출까? 방법은 여러가지 겠지만 class 로 input 에 직접 적용해보겠습니다. (물론 여백은 0 으로 했을때 입니다.)

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>웹미니 input 박스테스트</title>
<style type="text/css">
* {margin:0; padding:0;}
body {font:12px "돋움", Dotum;}
.input_m {width:13px; height:13px; vertical-align:middle;}
label {position:relative; top:1px;}

</style>
</head>

<body>
<form name="form1" method="post" action="">
<input type="checkbox" name="checkbox" class="input_m" /><label for="test">테스트</label>
</form>
</body>
</html>

 

bb03.gif

 

가로 여백(1px) 은 익스와, 파폭, 사파리가 동일하고, 오페라는 2px 벌어졌습니다. 그리고 세로 여백은 사파리를 제외하고 모두 동일해졌습니다.
너무 붙어있는거 같으니, 조금 여백을 주도록하겠습니다.

.input_m {width:13px; height:13px; margin-right:4px; vertical-align:middle;}

 

bb04.gif

 

사파리에서 약간의 차이가 있긴하네요. 이래서 핵이 필요한가 봅니다. -.-

위처럼 했는데도 디자이너가 모든브라우저에서 확인후 "어 사파리에서 텍스트가 조금 올라겠네요?" 라고 태클을 걸어온다면, 깔끔하게 핵을 써주세요. (체크와 라디오박스에서 핵사용없이 1px 오차도 없게 하는 방법이 있으면 알려주세요.) 

 

다른방법으로는 * {margin:0; padding:0;} 을 준상태에서 익스만 여백이 그대로이기때문에 익스만 margin-right:-4px 로 주는 방법도 있긴합니다. (익스전용 핵을 사용해야겠죠)

 

어떻게 초기 구조화를 할건지는 제작할 사이트의 특성을 보고 판단하시기 바랍니다. ex) input 전체에 적용할것인가, 아님 class로 뺀후 부분부분만 적용을 할것인가... (차후에 유지보수할때 쉬운쪽으로..)

 

 

만족된 결과는 아니지만, 확인해보시고 또 다른 좋은 방법이 있으면 알려주세요.^^; (공유합시다.)

  1. [2009/02/13] input box mouseover 및 mouseOut 했을때 변경 by nkkim96 (13)
  2. [2010/08/17] 호랑이 by kihoon (73)
  3. [2009/03/14] 익스8 과연 믿을만 ... by 빽짱구 (0)
  4. [2009/02/06] input 박스 활성화시 테두리 색 넣기 by 빽짱구 (3203) *2
  5. [2009/02/05] IE6 스타핵에서 띄어쓰기 by 빽짱구 (3705)

[레벨:2]젤루존

2009.06.16 21:22:29
*.121.136.151

감사합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 css 팁에 관련해서... [1] [레벨:30]id: 빽짱구빽짱구 2007-11-30 13965
공지 Cascading Style Sheets (CSS3) file [레벨:30]id: 빽짱구빽짱구 2010-06-29 2079
62 룰오버버튼 스타일시트로 간단하게 [1] [레벨:4]H1N1 2009-11-30 2312
61 페이지전체를 흑백으로... [1] [레벨:4]H1N1 2009-11-30 1703
60 IE6에서 레이어 위로 셀렉트박스가 뚫고 나오는문... imagefile [2] [레벨:30]id: 빽짱구빽짱구 2009-11-25 2776
59 CSS메뉴 만들어 주는 프로그램 file [13] [레벨:3]웹준 2009-11-01 1764
58 CSS메뉴를 손쉽게 만들 수 있는 사이트 [6] [레벨:1]bumphy 2009-10-29 1413
57 IE에서 letter-spacing:-1px; 적용시 br 태그 버... imagefile [4] [레벨:30]id: 빽짱구빽짱구 2009-10-23 1765
56 소형 대문자 small cap imagefile [1] [레벨:30]id: 빽짱구빽짱구 2009-10-17 1749
55 자동줄바꿈 file [레벨:30]id: 빽짱구빽짱구 2009-09-18 2445
54 IE6에서 line-height 적용시 이미지가 들어갔을때 imagefile [2] [레벨:30]id: 빽짱구빽짱구 2009-09-16 2782
53 유니버설 디자인을 위한 실전 UI(HTML/CSS)개발 ... file [2] [레벨:30]id: 빽짱구빽짱구 2009-09-08 1733
» 크로스브라우징 input 박스 imagefile [1] [레벨:30]id: 빽짱구빽짱구 2009-04-15 3784
51 CSS 상속(2) [1] [레벨:30]id: 빽짱구빽짱구 2009-04-09 3519
50 CSS 상속 imagefile [3] [레벨:30]id: 빽짱구빽짱구 2009-04-03 4654
49 ie6에서 영역을 잡자. [레벨:30]id: 빽짱구빽짱구 2009-03-06 3287
48 IE6 스타핵으로 png 배경으로 적용시 링크가 안... imagefile [레벨:30]id: 빽짱구빽짱구 2009-02-16 4760
47 input 박스 활성화시 테두리 색 넣기 [2] [레벨:30]id: 빽짱구빽짱구 2009-02-06 3203
46 익스 문자버그 (주석버그) imagefile [1] [레벨:30]id: 빽짱구빽짱구 2009-02-05 3189
45 IE6 스타핵에서 띄어쓰기 [레벨:30]id: 빽짱구빽짱구 2009-02-05 3705
44 png 투명이미지 css에서 배경 적용하기 [레벨:30]id: 빽짱구빽짱구 2009-02-01 5152
43 프린트 (인쇄) 할때 다음 페이지 넘기기 [레벨:30]id: 빽짱구빽짱구 2008-07-30 4239