검색되라고 있는 키워드 : 파비콘 초기화, 파비콘 바꾸기, 파비콘 변경, 홈페이지 아이콘, 바뀌지 않는 파비콘, favicon, favicon refresh, change favicon


플랫폼 : 인터넷 익스플로러 7(Internet Explorer 7, IE7)

파비콘을 바꿨는데 왜 옛날것들이 계속 나오는 걸까.
인터넷 임시 파일을 비워도 비워도 바뀌지 않았다... ㅠㅠ 아흑...
그러나... 구글링을 통해 드디어 해법을 찾았다. (MSDN 포럼에서 찾았다. 모두들 영어로 솰라솰라...)

해법은 열라 간단해서 어이가 없었다.


저렇게 한뒤 F5만 누르면 된다.

혹시 F5만 눌러서 안될 경우 브라우저를 모두 종료한뒤 인터넷옵션에서 삭제작업을 하고 페이지를 방문하면 된다.

방문기록이 아까워서 못지우고 있었던게 삽질의 원인이었던 것이다...



IE7은 페이지를 처음 방문할 때 파비콘을 하드에 받아둔다. 그런데 하나만 받아두는게 아니다.

MSDN에서 이런 유익한 정보를 주신 어느 외국분의 블로그의 포스트의 정보에 의하면 파비콘은 각종 이미지나 음악, 페이지파일을 받아놓는 임시 인터넷 파일 폴더와 방문했던 웹 사이트 목록인 히스토리의 메타데이터에 저장된다고 한다.
두개가 저장되는 셈.

그래서 저 녀석들을 따로따로 지우면 소용이 없다.


그리고 호환가능한 파비콘을 만드는 건... 그림판 같은 것으로는 불가능하다.
어느 외국분의 글에 의하면 IE7은 ExtractIcon() 함수를 사용해서 .ico파일안에서 필요한 이미지를 추출하는데 일반적인 .bmp나 .gif, .jpg 포맷은 절대 추출이 안된다.
그러니까
확실하게 ICON포맷으로 만들어야한다.
확장자만 .ico이어서는 안된다는 말이다.

공짜로는 파비콘 만들어주는 사이트를 이용할 수 있겠으나 자유도와 활용도가 떨어진다.

전문 아이콘 에디터나 무료 아이콘 에디터 같은걸 사용하자. 포토샵의 ICO플러그인 같은것도 괜찮다.
그런 에디터들로 파비콘을 만든 경우 파비콘 사용가능 여부는 간단하다.

16x16크기의 아이콘만 포함되어있으면 뭐든지 오케이다.
IE7은 투명하고 이쁜 알파채널이 포함된 32비트(RGB/A)색상부터 16비트, 256색, 16색 모두 소화가능하다.

심지어는 비스타에서만 사용하는 256x256사이즈 이면서 PNG포맷으로 압축이된 이미지가 포함된 아이콘도 16x16가 포함되어있으면 비스타가 설치된 PC에서는 무리없이 볼 수 있다.
다만 256x256 PNG포맷 이미지가 포함된 ICO의 경우 XP에서 못읽을 수가 있기 때문에 비추다.
게다가 파비콘을 256x256크기로 만들이유도 없지 않은가 ㅡ.ㅡ;;;


현재 올로클리르 블로그에 사용된 Patch GEAR 스킨 파비콘은 Axialis IconWorkshop으로 제작한 것으로 포함된 사이즈와 컬러는,
48x48 32x32 16x16.
32비트(RGB/A) 16비트(256색) 8비트(16색).
이렇게 해서 총 9가지 색과 사이즈가 다른 이미지가 포함된 하나의 ico파일이다.
32비트를 사용했으니 현재 모니터의 표시색상이 32비트(풀컬러)라면 당연히 투명하고 이쁜 알파채널이 표현된다.
모니터 표시색상이 24비트 이하라면 256색짜리가 자동으로 표시되고, 256색이하라면 16색짜리가 표시된다.

이 구성은 MSDN사이트의 파비콘의 색상구성을 보고 따라한 것이다. (아무래도 그쪽꺼니까 호환도 그쪽으로...)
마이크로소프트 원래 홈페이지의 파비콘은 좀더 구성이 적다.
32x32 16x16.
256색.
이렇게 2가지 뿐이다. 이렇게 한데는 다 이유가 있겠지.

MSDN의 파비콘은 복잡하고 색상수를 줄일경우 보기가 힘들다. 그래서 알파채널까지 가미.
마이크로소프트의 경우 파란바탕에 M글자 하나뿐이기 때문에 용량을 줄였을 것 같다.

요즘 개나소나 XP, 비스타, 맥OSX인데 알파채널 넣는다고 해서 호환이 안될리 없다.


그리고 MSDN사이트의 내부 페이지의 소스를 잠깐 보았는데,
<link rel="shortcut icon" type="image/ico" href="/favicon.ico" />

이렇게 type="image/ico" 가 있었다.
티스토리의 스킨들에는 저게 없지 않은가?!
따라해서 나쁠 것 없고 타입을 확실히 해줘서 나쁠 것 없다. 냉큼 집어넣었지.
by Anna 안나 2009. 1. 9. 21:36
웹폰트를 이 게시판에서 양식에 맞게 신청합니다.
그런다음, 신청할때 작성하셨던 이메일주소로 웹폰트파일(~~.EOT)을 받으셨을 것입니다.
그 파일을 계정에 올리신 후, 올린 웹폰트를 페이지에 적용시키려면
아래의 소스를 적용시키고자 하는 페이지의 <head> </head> 사이에 넣어주시면 됩니다.

<style type="text/css">
<!--
@font-face {font-family: 프라데이체; src:url(http://praday.com/praday.eot);}
a:link {font-family: 프라데이체;font-size: 9pt;}
a:visited {font-family: 프라데이체;font-size: 9pt;}
a:hover {font-family: 프라데이체;font-size: 9pt;}
a:acvite {font-family: 프라데이체;font-size: 9pt;}
body,div,table,tr,td,p,span {font-family: 프라데이체;font-size: 9pt;}
-->
</style>

위의 링크나 다른부분에 적용할 때는 스타일에 font-family: 프라데이체; font-size: 9pt; 를 넣어주세요.
※ 위의 경우 다영체의 예를 들었으며 다른폰트를 사용하였을 경우 해당폰트의 이름과 사이즈를 넣어주세요.(빨간글 부분)

질문사항 등은 질답 게시판을 이용해주시기 바랍니다.
by Anna 안나 2008. 10. 17. 18:05
"ㄱ" 에 있는 특수문자 [문장부호] 공백 ! ' , . / : ; ? ^ _ ` |  ̄ 、 。 · ‥ … ¨ 〃 ­ ― ∥ \ ∼ ´ ~ ˇ ˘ ˝ ˚ ˙ ¸ ˛ ¡ ¿ ː "ㄴ" 에 있는 특수문자 [괄호] " ( ) [ ] { } ‘ ‘ “ ” 〔 〕 〈 〉 《 》 「 」 『 』 【 】 "ㄷ" 에 있는 특수문자 [수학 기호] + - < = > ± × ÷ ≠ ≤ ≥ ∞ ∴ ♂ ♀ ∠ ⊥ ⌒ ∂ ∇ ≡ ≒ ≪ ≫ √ ∽ ∝ ∵ ∫ ∬ ∈ ∋ ⊆ ⊇ ⊂ ⊃ ∪ ∩ ∧ ∨ ¬ ⇒ ⇔ ∀ ∃ ∮ ∑ ∏ "ㄹ" 에 있는 특수문자 [단위] $ % ₩ F ′ ″ ℃ Å ¢ £ ¥ ¤ ℉ ‰ € ㎕ ㎖ ㎗ ℓ ㎘ ㏄ ㎣ ㎤ ㎥ ㎦ ㎙ ㎚ ㎛ ㎜ ㎝ ㎞ ㎟ ㎠ ㎡ ㎢ ㏊ ㎍ ㎎ ㎏ ㏏ ㎈ ㎉ ㏈ ㎧ ㎨ ㎰ ㎱ ㎲ ㎳ ㎴ ㎵ ㎶ ㎷ ㎸ ㎹ ㎀ ㎁ ㎂ ㎃ ㎄ ㎺ ㎻ ㎼ ㎽ ㎾ ㎿ ㎐ ㎑ ㎒ ㎓ ㎔ Ω ㏀ ㏁ ㎊ ㎋ ㎌ ㏖ ㏅ ㎭ ㎮ ㎯ ㏛ ㎩ ㎪ ㎫ ㎬ ㏝ ㏐ ㏓ ㏃ ㏉ ㏜ ㏆ "ㅁ" 에 있는 특수문자 [아이콘] # & * @ § ※ ☆ ★ ○ ● ◎ ◇ ◆ □ ■ △ ▲ ▽ ▼ → ← ↑ ↓ ↔ 〓 ◁ ◀ ▷ ▶ ♤ ♠ ♡ ♥ ♧ ♣ ⊙ ◈ ▣ ◐ ◑ ▒ ▤ ▥ ▨ ▧ ▦ ▩ ♨ ☏ ☎ ☜ ☞ ¶ † ‡ ↕ ↗ ↙ ↖ ↘ ♭ ♩ ♪ ♬ ㉿ ㈜ № ㏇ ™ ㏂ ㏘ ℡ ® ª º "ㅂ" 에 있는 특수문자 [선] ─ │ ┌ ┐ ┘ └ ├ ┬ ┤ ┴ ┼ ━ ┃ ┏ ┓ ┛ ┗ ┣ ┳ ┫ ┻ ╋ ┠ ┯ ┨ ┷ ┿ ┝ ┰ ┥ ┸ ╂ ┒ ┑ ┚ ┙ ┖ ┕ ┎ ┍ ┞ ┟ ┡ ┢ ┦ ┧ ┩ ┪ ┭ ┮ ┱ ┲ ┵ ┶ ┹ ┺ ┽ ┾ ╀ ╁ ╃ ╄ ╅ ╆ ╇ ╈ ╉ ╊ "ㅅ" 에 있는 특수문자 [한글] ㉠ ㉡ ㉢ ㉣ ㉤ ㉥ ㉦ ㉧ ㉨ ㉩ ㉪ ㉫ ㉬ ㉭ ㉮ ㉯ ㉰ ㉱ ㉲ ㉳ ㉴ ㉵ ㉶ ㉷ ㉸ ㉹ ㉺ ㉻ ㈀ ㈁ ㈂ ㈃ ㈄ ㈅ ㈆ ㈇ ㈈ ㈉ ㈊ ㈋ ㈌ ㈍ ㈎ ㈏ ㈐ ㈑ ㈒ ㈓ ㈔ ㈕ ㈖ ㈗ ㈘ ㈙ ㈚ ㈛ "ㅇ" 에 있는 특수문자 [알파벳과 숫자] ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵ ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ "ㅈ" 에 있는 특수문자 [숫자] 0 1 2 3 4 5 6 7 8 9 ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ "ㅊ" 에 있는 특수문자 [분수와 제곱] ½ ⅓ ⅔ ¼ ¾ ⅛ ⅜ ⅝ ⅞ ¹ ² ³ ⁴ ⁿ ₁ ₂ ₃ ₄ "ㅋ" 에 있는 특수문자 [한글] ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄸ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅃ ㅄ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ "ㅌ" 에 있는 특수문자 [한글] ㅥ ㅦ ㅧ ㅨ ㅩ ㅪ ㅫ ㅬ ㅭ ㅮ ㅯ ㅰ ㅱ ㅲ ㅳ ㅴ ㅵ ㅶ ㅷ ㅸ ㅹ ㅺ ㅻ ㅼ ㅽ ㅾ ㅿ ㆀ ㆁ ㆂ ㆃ ㆄ ㆅ ㆆ ㆇ ㆈ ㆉ ㆊ ㆋ ㆌ ㆍ ㆎ "ㅍ" 에 있는 특수문자 [영문 대소문자] A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z "ㅎ" 에 있는 특수문자 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω HTML Spacial Entities ¡ &iexcl; ¢ &cent; £ &pound; ¥ &yen; § &sect; ¨ &uml; ⓒ &copy; ≪ &laquo; ¬ &not; ® &reg; ° &deg; ± &plusmn; ´ &acute; μ &micro; ¶ &para; · &middot; ¸ &cedil; ≫ &raquo; ¿ &iquest; A &Agrave; A &Aacute; A &Acirc; A &Atilde; A &Auml; A &Aring; Æ &AElig; C &Ccedil; E &Egrave; E &Eacute; E &Ecirc; E &Euml; I &Igrave; I &Iacute; I &Icirc; I &Iuml; N &Ntilde; O &Ograve; O &Oacute; O &Otilde; O &Ouml; Ø &Oslash; U &Ugrave; U &Uacute; U &Ucirc; U &Uuml; ß &szlig; a &agrave; a &aacute; a &acirc; a &atilde; a &auml; a &aring; æ &aelig; c &ccedil; e &egrave; e &eacute; e &ecirc; e &euml; i &igrave; i &iacute; i &icirc; i &iuml; n &ntilde; o &ograve; o &oacute; o &ocirc; o &otilde; o &ouml; ÷ &divide; ø &oslash; u &ugrave; u &uacute; u &ucirc; u &uuml; y &yuml; ? &#8218; ? &#402; ? &#8222; … &#8230; † &#8224; ‡ &#8225; ? &#710; ‰ &#8240; ? &#8249; Œ &#338; ‘ &#8216; ’ &#8217; “ &#8220; ” &#8221; ? &#8226; ? &#8211; ? &#8212; ? &#732; ™ &#8482; ? &#8250; œ &#339; ? &#376; &nbsp; 특수문자 입력방법 한글 자음 한글자를 입력하고 한자키를 누릅니다.
예) ㅁ+ 한자키
← 직접 해보기 그 밖의 특수문자 가타가나(ァィゥェ…) = ㅃ + 한자키
히라가나(ぁぃぅぇ…) = ㄸ + 한자키 http://naradesign.net/wp/2006/10/30/86/
by Anna 안나 2008. 7. 29. 15:46
1024×768 : (1004 × 617) / 800×600 : (780×449)
윈도우의 테두리 + 세로스크롤바의 크기는 총 28px
세로의 영역은 개인의 윈도우에 따라 가변이 크나 일반적으로(주소창,도구창)있는 경우에만 해당함
by Anna 안나 2008. 7. 12. 22:26
<input type="text" value="id" > 위와 같은 소스를 적용하면, 박스에 id가 입력되어 있는 상태가 됩니다. 우리는 사용자가 저 박스에 마우스를 클릭하면 박스에 id 라는 글자가 없어지게 하려고 합니다. 다음은 해결책입니다. 자바스크립트의 onFocus 를 사용하시면 됩니다. onFocus 는 포커스가 폼이나 창에 주어졌을 때의 이벤트를 판단하는 이벤트 헨들러입니다. 폼을 이동하거나 포커스가 없는 창을 클릭했을 때를 이벤트로 판단하고 설정한 것을 처리합니다. onfocus="this.value='';" 위 소스를 input소스 내에 첨가하시면 되겠습니다. inpyt 소스 내에 첨가한 예는 다음과 같습니다. <input type="text" value="id" onfocus="this.value='';">
by Anna 안나 2008. 7. 6. 22:13
readonly 와 disabled 둘 다, input tag사용시 text필드의 어떤값을 정해두고 고정하여 수정을 못하게 합니다. ● disabled 를 사용할 경우 disabled 필드를 사용하면, 이 필드를 사용하지 않는다고 정의가 내려져 이 값이 다음페이지에 넘어가지 않습니다. ● readonly 를 사용할 경우 이 필드값을 수정하지 못한 체로 다음페이지에 이 값을 넘깁니다. 요약 :: 다음페이지에 넘길수 있느냐/없느냐의 차이점입니다.
by Anna 안나 2008. 7. 6. 22:08
marquee 명령어 이해하기

ⓐ.behavior=slide ☜━marquee 영역의 끝 부분에서 멈춥니다.
ⓑ.behavior=scroll ☜━marquee 영역을 벗어나서 사라집니다.
ⓒ.behavior=alternate ☜━양쪽으로 움직이것을 설정합니다.
ⓓ.direction=up ☜━글자가 위쪽으로 움직이게 해줌니다.
ⓔ.direction=down ☜━글자가 아래로 움직이게 해줌니다.
ⓕ.direction=left ☜━글자가 왼쪽으로 움직이게 해줌니다.
ⓖ.direction=right ☜━글자가 오른쪽으로 움직이게 해줌니다.
ⓗ.bgcolor=yellow ☜━배경설정합니다.(색상은 맘대로 바꾸시면 되겠죠.*^^*)
ⓘ.scrollamount=10 ☜━글짜 움직이는 속도을 설정합니다.(숫자가 적을수록 느려짐니다.)
ⓙ.scrolldelay=100 ☜━스크롤의 지연효과를 얻기 위해서 사용합니다.(1초간 멈추었다가 이동함.!)
ⓚ.bgcolor=yellow ☜━배경색을 설정합니다.(노란색으로 설정)
ⓛ.width=100 ☜━가로 폭을 설정합니다.(100으로 가로 길이설정)
ⓜ.height=100 ☜━세로 폭을 설정합니다.(100으로 높이 길이 설정)
ⓝ.hspace=100 ☜━marquee의 좌우에 지정한 만큼의 여백이 설정합니다.
ⓞ.vspace=100 ☜━marquee의 위와 아래에 지정한 만큼의 여백이 설정합니다.
ⓟ.loop=1 ☜━1번 반복입니다.(원하는 숫자을 넣으면 되겠죠.*^^*)
(※.loop=infinite ☜━무한 반복을 시켜줌니다.)
ⓠ.align ☜━정렬 방식을 설정한다.(ex. align=top )
(absbottom | absmiddle | baseline | bottom | left | middle | right | texttop | top)
by Anna 안나 2008. 6. 21. 15:31
WDXInputReplacer.zip
disabled="disabled" 가능합니다.
index.html 참고하세요 (첨부파일)

ps / 그러고보니 여기도 있음
Checkbox Control(스샷 클릭하시면 샘플)

Radio Control(마찬가지)
by Anna 안나 2008. 5. 23. 19:08
제목에 마우스를 오버하면 옆에 레이어가 나타납니다. ul활용.html
by Anna 안나 2008. 5. 23. 18:48
웹 2.0 div 스타일 (레이어).html
by Anna 안나 2008. 5. 23. 18:47
top slide - 상단 open 슬라이드.html
by Anna 안나 2008. 5. 23. 18:46
네이버메뉴스타일.html
by Anna 안나 2008. 5. 23. 18:44
input 힌트레이어.html
by Anna 안나 2008. 5. 23. 18:43
여러 카페나 블로그를 보시면 카운터수를 늘리려고 자신의 블로그에 태그연습장을 설치해두는 경우를 종종 볼 수 있습니다. 물론 선의의 목적으로 도움을 주시는 분들도 있지만 그렇지 않은 분들도 허다할 뿐더러 내려받기가 가능한 태그연습장 중에는 설치하는 과정중 사용계약의 조항들을 읽어볼때 무지 살벌하여 악성코드를 유포할 목적(?)으로 배포하는것이 아닌가 의심스러운 파일들이 더러 있습니다. 이런 이유로 이것저것 신경쓰지 않고 그냥 기능은 단순할 지라도 나만의 태그연습장을 만드는게 낫겠다 싶어서 여기 나만의 태그연습장을 만드는 방법을 소개합니다. 만드는 절차는 매우 간단합니다. 중요한것은 얼마나 효과적으로 쓰느냐에 달렸습니다. 1. 메모장을 열고 아래의 내용을 그대로 입력합니다.




2.다 입력을 하셨으면 다른이름으로 저장을 합니다.



3. 파일 형식은 반드시 모든파일로 체크하시고 파일이름 확장자는 반드시 .html로 하세요



4. 저장된곳에 주어진 이름의 태그연습장 파일이 생깁니다.



5. 더블 클릭을 하면 IE에 뜹니다.



6.마우스 우클릭을 해서 소스보기를 선택해 보세요




7. 그러면 좀전에 만들었던 태그연습장의 소스가 보여집니다.



8. 태그 연습장에다가 태그를 작성해봅니다 body와 /body 사이에 대한민국만세를 쓰고 한칸 띄고 수평선을 긋고 또 한칸 띄는 태그입니다.



9. 바로 저장합니다.



10.나의 태그연습장이라는 브라우저를 활성화 시킨다음 새로고침(F5)를 해보시면 결과물이 출력됩니다.



일단 태그연습장을 만드셨다면 연습하는 작업은 소스의 바디 사이에 표현하고자 하는 태그를 적용시키시고 이를 저장한 다음
결과물을 확인하셔서 결과 물이 마음에 맞는다면 이를 복사하여 그대로 사용하시는 겁니다.
이러한 작업의 반복을 통해서 더 나은 결과물을 찾게 되는것이지요. 기능상으로는 아무것도 없지만 그래도 미심쩍은 태그연습장 보다는 심적으로 편안하실겁니다. 이상 마칩니다~~
by Anna 안나 2008. 3. 2. 15:37
1. JavaScript을 통한 이미지 투명화 시키기
2. <!--[if IE]><![endif]--> 을 이용해서 IE에서만 적용되는 스타일 따로 정의해주기
3. 비헤이버와 CSS의 조합으로 투명화 시키기
.
.
.
1번.
<script>
function fixPNG(obj){
var blankImg = "blank.gif";
var Src, Width, Height;
if ( !(typeof obj.style.filter == 'string' && obj.src.substr(obj.src.lastIndexOf(".")+1).toLowerCase() == 'png') ) return; Src = obj.src;
Width = obj.width;
Height = obj.height; obj.src = blankImg;
obj.width = Width;
obj.height = Height;
obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+Src+"', sizingMethod='scale')";
}
</script> <body onLoad="fixPNG(this)">

자바스크립트로 투명도를 주어 작업한 PNG 파일을 웹에서 투명하게 보이게 해줍니다.



접근성의 문제로 그나마 원하는 결과값을 제일 잘 보여준 2번도 보여드립니다.
2번을 사용하는 방법은 간단합니다. <style type="text/css">
#T_L {
position:absolute;
left:0;
top:0;
width:269px;
height:462px;
background:url(/01kr/100test/img/common/bg_left_top_logo01.png) transparent no-repeat left top;
}
</style>

위 소스는 IE가 아닌 다른 브라우저에서 처리할 부분으로 background 이미지 처리방법은 일반적으로 알고 있는 방법과 동일!

<style type="text/css">
#T_L {
position:absolute;
left:0;
top:0;
width:269px;
height:462px;
background:url(/01kr/100test/img/common/bg_left_top_logo01.png) transparent no-repeat left top;
}
</style>
<!--[if IE]>
#T_L {
position:absolute;
left:0;
top:0;
width:269px;
height:462px;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/01kr/100test/img/common/bg_left_top_logo01.png',sizingMethod='scale'); }
</style>
<![endif]-->

위 소스는 <!--[if IE]><![endif]-->을 이용한 IE 브라우저에서 PNG 이미지의 투명화를 필터로 처리한 방법입니다.

좀 더 설명하자면 "<!--[if IE]><![endif]-->"은 IE 브라우저에서만 적용되도록 해주는 소스코드입니다.
filter 속성 역시 IE에서만 적용됩니다.

위 방법으로 하면 PNG 이미지의 배경 투명화는 간단히 해결됩니다.


"<!--[if IE]><![endif]-->" 방법은 꼭 <head></head> 사이에 정의가 되어야 합니다.
<link> 태그를 넣어서 사용해도 문제 없이 적용됩니다..

하지만 이 방법에도 버그는 있습니다.
<div id="T_L">
<form><input></form>
</div>
위와 같이 투명한 PNG 이미지를 백그라운드로 사용한 레이어(div)에서는 form, input 등이 마우스로 선택이 되지 않습니다. (단, 키보드의 탭키로 이동 가능)






3번입니다.
요기저기 기웃거려서 찾아낸 방법(소스)

<style>
.png24 {tmp:expression(setPng24(this))}
</style>

<script>
function setPng24(obj) {
obj.width=obj.height=1;
obj.className=obj.className.replace(/\bpng24\b/i,'');
obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ obj.src +"',sizingMethod='image');"
obj.src='';
return '';
}
</script>

요렇게 CSS, Javascript를 넣어주고 적용하는 이미지에...class만 추가해주면 된다.

<img src="xxx.png" class="png24">





-----------------------------------------------------------------------------------

그래서 결과적으로 어쩔 수 없이 위와 같은 부분은 <div><img></div> 방식으로 PNG 이미지 파일을 투명화 패치를 따로 해줄 수 밖에 없었습니다.

IE 7 버전에서는 PNG를 잘 적용시켜준다고하니.....
by Anna 안나 2008. 3. 1. 12:38
<a href="#" onClick="parent.close()">창닫기</a>
<a href="#" onClick="history.back()">이전페이지로</a>
<a href="#" onClick="history.forward()">앞 페이지로</a>
<a href="#" onClick='top.location="javascript:location.reload()"'>새로고침</a>
by Anna 안나 2008. 3. 1. 12:34
HTML Source 주소표시줄과 북마크에 아이콘 넣기 자신의 홈페이지를 보고 있는 사람의 브라우저 주소표시줄에, 혹은 자신의 홈페이지를 즐겨찾기한 사람의 브라우저 북마크 리스트에 지정해둔 아이콘 (파비콘 - favicon 이라고 하죠. favorites 에 추가되는 icon 이라 해서 붙여진 이름인 것 같네요) 을 보이게 하는 방법입니다. 먼저 데스크탑용 아이콘을 준비합니다. 데스크탑용 아이콘은 확장자가 *.ico 입니다. 마이크로앤젤로 등으로 제작 가능하구요. 굳이 제작하지 않더라고 대형통신망 공개자료실 등에 가면 구하실 수도 있고, 윈도우즈 안에도 기본적으로 포함된 데스크탑용 아이콘이 여러개 있습니다. 다음엔 준비한 아이콘을 자신의 계정에 올리고 아래처럼 하시면 됩니다.
적용시킬 HTML문서의 <head>와</head>사이에 아래 소스를 넣습니다.
------------------------------------------------------------------------------------------- <link rel="shortcut icon" href="kissgod.ico">
------------------------------------------------------------------------------------------- kissgod.ico 엔 아이콘의 경로및 이름을 적어 주세요.

끝~^^
by Anna 안나 2008. 2. 26. 14:39
HTML Source 테이블에 마우스오버 적용하기 <body>와</body>사이의 테이블 안(td, tr, table 중 선택)에 아래 소스를 추가합니다. ------------------------------------------------------------------------------------------- onmouseover="this.style.backgroundColor='#9FB6FF'" onmouseout="this.style.backgroundColor=''"
-------------------------------------------------------------------------------------------
아래처럼 하시면 되겠죠. 특정 셀에 적용할 때는
<td onmouseover="this.style.backgroundColor='#9FB6FF'" onmouseout="this.style.backgroundColor=''"> 특정 줄에 적용할 때는
<tr onmouseover="this.style.backgroundColor='#9FB6FF'" onmouseout="this.style.backgroundColor=''"> 테이블 전체에 적용할 때는
<table onmouseover="this.style.backgroundColor='#9FB6FF'" onmouseout="this.style.backgroundColor=''"> 색번호 #9FB6FF 는 마우스커서가 올라가면 변하는 색입니다.
by Anna 안나 2008. 2. 26. 14:38
------------------------------------------------------------ 제작자에게 문의없이 소스 공개 합니다. 문제될시 삭제 토록 하겠습니다. 1. htc확장자 인 파일을 만들어둔다. ex)select.htc 파일안에 삽입될 내용 <public:component URN="lyrSelectBox" />
<public:attach event="ondocumentready" handler="initializeSelectBox" />
<public:attach event="onpropertychange" handler="eventChangeProperty" />
<public:attach event="" for="document" handler="eventMouseDown" />
<public:attach event="onkeydown" for="document" handler="eventKeyDown" />
<public:property name="setColor" put="setupColor" />
<public:property name="setImage" put="setupImage" />
<public:property name="setDisplayCount" put="setupDisplayCount" />
<public:method name="reInitializeSelectBox" /> <script language="JScript">
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 스크립트명 - SelectBox -> 드롭다운 메뉴 변환 HTC
// 설 명 - SelectBox 폼필드를 레이어 형태의 드롭다운 메뉴로 자동 변경
// 제 작 자 - TarauS (taraus@naver.com)
// 메 신 져 - MSN Messenger -> taraus@hanmail.net
//
// * 스크립트 목적
// - 기존의 셀렉트박스를 스타일의 적용이 가능한 레이어 형태(실제로는 테이블과 Popup Object)로 자동 변환
//
// * 주요 기능 및 특징
// - 기존 셀렉트박스 태그의 수정 없이 스타일 시트에 정의하는 것만으로 모든 셀렉트박스 변환 가능
// - 셀렉트박스를 기준으로 아래위의 여백을 비교하여 옵션 항목 창의 출력 방향 결정
// - 기존 셀렉트박스처럼 변환된 셀렉트박스도 포커스를 가질 수 있음
// document.getElementById('SelectBox_Name').focus();
// - 변환된 셀렉트박스가 포커스를 가지고 있을 경우 휠을 움직이거나 키보드의 Home, End, Page Up, Page Down,
// Up Arrow, Down Arrow 등을 누름에 따라 값의 변경이 가능
// 또한 열려진 옵션 항목 창에서도 가능함
// - 위의 이벤트 시에 문서의 스크롤을 제어하여 문서의 움직임이 없음
// - 아이프레임 및 프레임에 삽입된 상황에서도 프레임에 영향을 받지 않고 정상적으로 출력
// (Layer가 아닌 Popup Object를 이용)
// - 셀렉트박스의 항목이 동적으로 변경할 경우를 위한 메소드 제공
// document.getElementById("SelectBox_Name").reInitializeSelectBox();
// - 옵션 항목 창에 출력될 항목의 갯수를 지정(setDisplayCount() 메소드 이용)할 수 있으며 항목이 출력될
// 갯수보다 많을 경우 자동으로 스크롤바 생성 (기본값은 10)
// - 셀렉트박스 및 옵션 항목에 대해 툴팁 메세지 설정 가능
// - 특정 셀렉트박스의 색상 및 화살표 이미지 변경 가능
// - 변환된 레이어를 텍스트처럼 취급 (연속적인 출력이 가능, 하단 여백 없음)
// - HTC 가 지원되는 브라우져에서만 변환 (HTC는 5.0 이상에서 가능하나 createPopup() 메소드가 5.5부터
// 지원되어 IE 5.5 이상에서만 변환)
// - 옵션 항목 창 출력시 일시적으로 문서가 길어져 스크롤바가 출력되는 일이 없음
// - 셀렉트박스가 disabled 상태일 경우 처리
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////// // 변수 선언
var objSelectBox = this;
var widthObject, widthObjectOriginal, heightObject;
var tblTitle, tbdTitle, trTitle, tdTitle;
var objItemWindow, objItemDocument, objItemBody, objItemEvent;
var tblItem, tbdItem, trItem, tdItem;
var leftObject, heightItemWindow, heightTitleTable;
var countMaxItem = 5;
var countItem = this.length;
var is_open = false;
var is_loaded = false;
var focusElement; // 기본 색상 및 글자 설정
var normal_bgcolor = "#FFFFFF";
var normal_color = "#545454";
var disabled_color = "#C0C0C0";
var active_bgcolor = "#F5F5F5";
var active_color = "#000000";
var normal_border_tag = "1 solid #CCCCCC";
var active_border_tag = "1 solid #CCCCCC";
var font_tag = "normal 12px 굴림";
var arrow_image = ""; //-------- 프로퍼티 설정 함수
// 프로퍼티로 색상을 설정시에 색상 관련 변수 변경
function setupColor(color_list){
var color_array = color_list.split(",");
var color = new Array(); for(i=0; i<color_array.length; i++){
color[i] = color_array[i];
} if(color[0]) normal_color = color[0];
if(color[1]) normal_bgcolor = color[1];
if(color[2]) active_color = color[2];
if(color[3]) active_bgcolor = color[3];
if(color[4]) normal_border_tag = "1 solid "+color[4];
if(color[5]) active_border_tag = "1 solid "+color[5];
} // 프로퍼티로 화살표 이미지를 설정시에 화살표 이미지를 변경
function setupImage(image_file){
if(image_file) arrow_image = image_file;
} // 옵션 항목의 최대 출력 갯수 변경
function setupDisplayCount(max_count){
if(max_count) countMaxItem = max_count;
}
//-------- 문서 스크롤 관련 함수
// 문서의 스크롤링을 불가능하도록 설정
function disableScroll(){
window.execScript("document. = function(){return false;}");
window.execScript("document.onkeydown = function(){return false;}");
} // 문서의 스크롤링을 가능하도록 설정
function enableScroll(){
window.execScript("document. = function(){return true;}");
window.execScript("document.onkeydown = function(){return true;}");
} //-------- 이벤트 관련 함수
// 타이틀 출력 테이블 Mouse Over Event
function eventMouseOverTT(){
if(!objSelectBox.disabled){
tblTitle.style.border = active_border_tag;
imgArrow.style.filter = '';
}
} // 타이틀 출력 테이블 Mouse Out Event
function eventMouseOutTT(){
tblTitle.style.border = normal_border_tag;
imgArrow.style.filter = 'gray()';
} // 아이템 출력 테이블 Mouse Over Event
function eventMouseOverIT(idx){
removeItemStyle();
tdItem[idx].style.color = active_color;
tdItem[idx].style.background = active_bgcolor;
focusElement = tdItem[idx];
} // on MouseDown Event
function eventMouseDown(){
if(is_open) changeItemWindowDisplay();
} // 셀렉트박스 Focus Event
function eventFocusSB(){
tdTitle_sv.innerHTML = objSelectBox.options[selectedIndex].text;
tdTitle_sv.style.color = active_color;
tdTitle_sv.style.background = active_bgcolor;
} // 셀렉트박스 Blur Event
function eventBlurSB(){
tdTitle_sv.style.color = normal_color;
tdTitle_sv.style.background = normal_bgcolor;
} // 셀렉트박스 Key Down Event
function eventKeyDownSB(){
var keycode = window.event.keyCode ? window.event.keyCode : window.event.which ? window.event.which : window.event.charCode;
if(is_open && focusElement && keycode == 13){
nowIndex = focusElement.getAttribute("key");
changeSelectBoxValue(nowIndex);
}
} // on KeyDown 이벤트 처리
function eventKeyDown(){
var keycode = window.event.keyCode ? window.event.keyCode : window.event.which ? window.event.which : window.event.charCode;
var eventElement = window.event.srcElement
// 셀렉트박스가 포커스를 가지고 있을 때 스페이스바를 이용하여 옵션 항목 창을 보이고 사라지게 하는 부분
// 현재는 옵션 항목 창이 열렸을 때의 이벤트 객체 문제와 옵션 항목 창 출력 방향 문제로 임시로 주석 처리함
//if(keycode == 32 && eventElement.type == "select-one" && eventElement.name == this.name){
// changeItemWindowDisplay();
//} if(is_open && focusElement){
var firstIndex = 0;
var lastIndex = countItem - 1;
var nowIndex = objSelectBox.selectedIndex;
var tmpIndex = 0;
var change_value_check = false;
nowIndex = focusElement.getAttribute("key"); if(window.event.altKey) closeItemWindow();
if(keycode == 38){ // 위쪽 방향키를 눌렀을 때
tmpIndex = nowIndex - 1;
if(tmpIndex < firstIndex) tmpIndex = firstIndex;
selectIndex = tmpIndex;
change_value_check = true;
}else if(keycode == 40){ // 아래쪽 방향키를 눌렀을 때
tmpIndex = nowIndex + 1;
if(tmpIndex > lastIndex) tmpIndex = lastIndex;
selectIndex = tmpIndex;
change_value_check = true;
}else if(keycode == 33){ // Page Up 키를 눌렀을 때
tmpIndex = nowIndex - countMaxItem - 1;
if(tmpIndex < firstIndex) tmpIndex = firstIndex;
selectIndex = tmpIndex;
change_value_check = true;
}else if(keycode == 34){ // Page Down키를 눌렀을 때
tmpIndex = nowIndex + countMaxItem - 1;
if(tmpIndex > lastIndex) tmpIndex = lastIndex;
selectIndex = tmpIndex;
change_value_check = true;
}else if(keycode == 36){ // Home 키를 눌렀을 때
selectIndex = firstIndex;
change_value_check = true;
}else if(keycode == 35){ // End 키를 눌렀을 때
selectIndex = lastIndex;
change_value_check = true;
}else if(keycode == 13){
if(focusElement != null) changeSelectBoxValue(nowIndex);
} if(change_value_check){
removeItemStyle();
tdItem[selectIndex].style.color = active_color;
tdItem[selectIndex].style.background = active_bgcolor;
objItemBody.scrollTop = selectIndex * 20;
focusElement = tdItem[selectIndex];
}
}
} // on MouseWheel 이벤트 처리 (현재 미작동)
// on MouseWheel 이벤트가 IE 6.0부터 지원되는 점과 팝업창의 이벤트 객체 제어 문제로 기능 삭제
function eventMouseWheel(){
if(is_open){
if(!focusElement) idx = objSelectBox.selectedIndex;
else idx = focusElement.key; for(i=0; i<window.event.wheelDelta; i+=120) idx--;
for(i=0; i>window.event.wheelDelta; i-=120) idx++;
idx = Math.max(idx, 0);
idx = Math.min(idx, countItem - 1); removeItemStyle();
tdItem[idx].style.color = active_color;
tdItem[idx].style.background = active_bgcolor;
objItemBody.scrollTop = idx * 20;
focusElement = tdItem[idx];
}
} // SelectBox Change Property Event
function eventChangeProperty(){
if(window.event.type == "propertychange" && window.event.propertyName == "selectedIndex"){
tdTitle_sv.innerHTML = objSelectBox.options[objSelectBox.selectedIndex].text;
if(objSelectBox.onchange != null) objSelectBox.onchange();
}
} //-------- 옵션 항목 창 관련 함수
// 옵션 항목 창의 출력 상태에 따라 보여주거나 닫음
function changeItemWindowDisplay(){
if(is_open == false){
if(countItem && !objSelectBox.disabled) openItemWindow()
}else{
closeItemWindow();
}
} // 옵션 항목 창 열기
function openItemWindow(){
eventBlurSB(); heightScreen = window.screen.height;
spaceDown = heightScreen - window.event.screenY - heightTitleTable;
spaceUp = heightScreen - spaceDown; // Item Window를 위로 출력
if((objSelectBox.length <= countMaxItem && (objSelectBox.length * 20 + 4) > spaceDown) || (objSelectBox.length > countMaxItem && spaceDown < (countMaxItem * 20 + 4))){
objItemWindow.show(0,(0-heightItemWindow),widthObject,heightItemWindow,tblTitle);
// Item Window를 아래로 출력
}else{
objItemWindow.show(0,heightTitleTable,widthObject,heightItemWindow,tblTitle);
} var idx = objSelectBox.selectedIndex;
tdItem[idx].style.color = active_color;
tdItem[idx].style.background = active_bgcolor;
objItemBody.scrollTop = idx * 20;
focusElement = tdItem[idx];
disableScroll();
is_open = true;
} // 옵션 항목 창 닫기
function closeItemWindow(){
objItemWindow.hide();
removeItemStyle();
enableScroll();
objSelectBox.focus();
is_open = false;
}
//-------- 환경 설정 및 변환 관련 함수
// 초기화 함수
function initializeSelectBox(){
var browser_version = new Number(((window.navigator.appVersion.split('; '))[1].split(' '))[1]); if(this.type != "select-one" || this.size != 0){
return;
}else if(navigator.appName != "Microsoft Internet Explorer" || browser_version < 5.5){
return;
}else{
objSelectBox.attachEvent("",eventFocusSB);
objSelectBox.attachEvent("",eventBlurSB); initializeBasicInformation();
initializeTitleTable();
if(countItem){
initializeItemWindow();
initializeItemTable();
}
is_loaded = true;
}
} // 동적으로 셀렉트박스의 항목이 변경될 경우 다시 변환할 수 있는 메소드
function reInitializeSelectBox(){
countItem = objSelectBox.length;
tblTitle.removeNode(true);
initializeBasicInformation();
initializeTitleTable();
initializeItemWindow();
initializeItemTable();
} // 셀렉트 박스를 레이어 형태로 변형하기 위한 기본 정보 설정
function initializeBasicInformation(){
// style.width 속성을 사용자가 설정한 경우 사용자 설정값으로 넓이를 설정 함
// this.offsetWidth 속성을 가끔 불러오지 못하는 경우가 있어 이럴 경우 이전 버전에서
// 사용하던 getStringPixelWidth()함수를 이용하여 넓이를 직접 계산 후 설정 함
if(is_loaded == false && objSelectBox.style.width){
widthObject = parseInt(objSelectBox.style.width);
widthObjectOriginal = widthObject;
}else if(is_loaded == false && objSelectBox.offsetWidth){
widthObject = objSelectBox.offsetWidth;
}else{
var lengthMax = 0;
if(countItem){
for(i=0; i<countItem; i++){
lengthItem = getStringLength(objSelectBox.options[i].text);
if(lengthMax < lengthItem){
lengthMax = lengthItem;
stringMax = objSelectBox.options[i].text;
}
}
widthObject = getStringPixelWidth(stringMax) + 12 + 12 + 2;
}
}
objSelectBox.style.width = "0px"; heightTitleTable = 22;
if(countItem < countMaxItem){
heightItemWindow = countItem * 20 + 2 + 2;
widthItemTable = widthObject - 2;
}else{
heightItemWindow = countMaxItem * 20 + 2 + 2;
widthItemTable = widthObject - 18;
}
heightObject = heightTitleTable + heightItemWindow;
} // 타이틀 테이블 설정
function initializeTitleTable(){
// 옵션 항목이 있을 경우 선택된 값을 변환된 셀렉트박스의 기본값으로 설정
if(countItem){
if(!objSelectBox.selectedIndex) objSelectBox.selectedIndex = 0;
var textDefault = objSelectBox.options[objSelectBox.selectedIndex].text;
// 옵션 항목이 없을 경우 기본 사이즈를 60px로 설정
}else{
var textDefault = "";
widthObject=60;
}
var tooltip = objSelectBox.tooltip; // 타이틀 테이블 생성 및 셋팅
tblTitle = document.createElement("TABLE");
tblTitle.border = 0;
tblTitle.cellSpacing = 0;
tblTitle.cellPadding = 0;
tblTitle.style.width = widthObject;
tblTitle.style.height = heightTitleTable;
tblTitle.style.color = normal_color;
tblTitle.style.background = normal_bgcolor;
tblTitle.style.border = normal_border_tag;
tblTitle.style.display = "inline";
tblTitle.style.verticalAlign = "bottom";
tblTitle. = eventMouseOverTT;
tblTitle. = eventMouseOutTT;
if(tooltip != null) tblTitle.title = tooltip; tbdTitle = document.createElement("TBODY");
tblTitle.appendChild(tbdTitle); trTitle = document.createElement("TR");
trTitle. = changeItemWindowDisplay;
tdTitle_sv = document.createElement("TD");
tdTitle_sv.innerHTML = textDefault;
tdTitle_sv.width = widthObject - 14 - 4 - 4;
tdTitle_sv.valign = "absmiddle";
tdTitle_sv.onselectstart = function(){return false;};
tdTitle_sv.style.font = font_tag;
if(!objSelectBox.disabled) tdTitle_sv.style.color = normal_color;
else tdTitle_sv.style.color = disabled_color;
tdTitle_sv.style.cursor = "default";
tdTitle_sv.style.background = normal_bgcolor;
tdTitle_sv.style.verticalAlign = "text-bottom";
trTitle.appendChild(tdTitle_sv);
tdTitle = document.createElement("TD");
tdTitle.width = "14";
tdTitle.align = "center";
tdTitle.onselectstart = function(){return false;};
imgArrow = document.createElement("IMG");
imgArrow.src = arrow_image;
imgArrow.valign = "bottom";
imgArrow.style.filter = "gray()";
tdTitle.appendChild(imgArrow);
trTitle.appendChild(tdTitle);
tbdTitle.appendChild(trTitle); insertAdjacentElement("afterEnd",tblTitle);
} // 옵션 항목 창을 설정
function initializeItemWindow(){
objItemWindow = createPopup();
objItemDocument = objItemWindow.document;
objItemBody = objItemDocument.body;
with(objItemBody.style){
border = normal_border_tag;
overflowY = "auto";
scrollbarFaceColor = "#FFFFFF";
scrollbarShadowColor = "#ffffff";
scrollbarHighlightColor = "#ffffff";
scrollbar3dlightColor = "#ffffff";
scrollbarDarkShadowColor = "#ffffff";
scrollbarTrackColor = "#F0F0F0";
scrollbarArrowColor = "#c8c8c8";
buttonTextColor = "#ffffff";
}
} // 옵션 항목 테이블 설정
function initializeItemTable(){
// 아이템 출력 테이블 생성 및 셋팅
tblItem = objItemDocument.createElement("TABLE");
tblItem.cellSpacing = 2;
tblItem.cellPadding = 2;
tblItem.style.width = widthItemTable;
tblItem.style.color = normal_color;
tblItem.style.background = normal_bgcolor; tbdItem = objItemDocument.createElement("TBODY");
tblItem.appendChild(tbdItem); trItem = new Array();
tdItem = new Array();
for(i=0; i<objSelectBox.length; i++){
textSelectBox = objSelectBox.options[i].text;
valueSelectBox = objSelectBox.options[i].value;
var tooltip = objSelectBox.options[i].tooltip; trItem[i] = objItemDocument.createElement("TR");
tdItem[i] = objItemDocument.createElement("TD");
if(tooltip != null) tdItem[i].title = tooltip;
tdItem[i].innerHTML = " " + textSelectBox;
tdItem[i].setAttribute("key",i);
tdItem[i].height = "18";
tdItem[i].vAlign = "bottom";
tdItem[i]. = function(){eventMouseOverIT(this.getAttribute("key"))}
tdItem[i]. = function(){changeSelectBoxValue(this.getAttribute("key"))}
tdItem[i].onselectstart = function(){return false;};
tdItem[i].style.font = font_tag;
tdItem[i].style.color = normal_color;
tdItem[i].style.background = normal_bgcolor;
tdItem[i].style.cursor = "default";
tdItem[i].style.verticalAlign = "bottom";
trItem[i].appendChild(tdItem[i]);
tbdItem.appendChild(trItem[i]);
} objItemBody.insertAdjacentElement("beforeEnd",tblItem);
} //-------- 기타 함수
// 옵션 항목에 적용된 스타일 초기화
function removeItemStyle(){
for(i=0; i<countItem; i++){
tdItem[i].style.color = normal_color;
tdItem[i].style.background = normal_bgcolor;
}
} // 셀렉트박스의 값을 변경
function changeSelectBoxValue(idx){
objSelectBox.selectedIndex = idx;
tdTitle_sv.innerHTML = objSelectBox.options[idx].text;
closeItemWindow()
} // 문자열의 길이를 계산
function getStringLength(string){
var i, j=0; for(i=0;i<string.length;i++) {
lengthString = escape(string.charAt(i)).length;
if(lengthString > 4) j++;
j++;
} return j;
} // 문자열의 넓이를 픽셀 단위로 계산
function getStringPixelWidth(string_value){
var ascii_code;
var string_value_length = string_value.length;
var character;
var character_width;
var character_length;
var total_width = 0;
var total_length = 0; var special_char_size = 6;
var multibyte_char_size = 12;
var base_char_start = 32;
var base_char_end = 127;
var ascii_char_size = Array(4,4,4,6,6,10,8,4,5,5,6,6,4,6,4,6,6,6,6,6,6,6,6,6,6,6,4,4,8,6,8,6,12,8,8,9,8,8,7,9,8,3,6,8,7,11,9,9,8,9,8,8,8,8,8,10,8,8,8,6,11,6,6,6,4,7,7,7,7,7,3,7,7,3,3,6,3,11,7,7,7,7,4,7,3,7,6,10,7,7,7,6,6,6,9,6); for(i=0; i<string_value_length; i++){
character = string_value.substring(i,(i+1));
ascii_code = character.charCodeAt(0); if(ascii_code < base_char_start){
character_width = special_char_size;
}else if(ascii_code <= base_char_end){
idx = ascii_code - base_char_start;
character_width = ascii_char_size[idx];
}else if(ascii_code > base_char_end){
character_width = multibyte_char_size;
}
total_width += character_width;
} return total_width;
}
</script>
</public:component>
---------------------------------------------------------- 위 내용을 select.htc에 삽입 2. css 에 다음과 같이 추가. 방법1 ) select{behavior: url('/inc/common/select.htc');} ///모든 셀렉트 박스에는 위의 이쁜 셀렉트박스를 다 적용한다. 방법2) .select{behavior: url('/inc/common/select.htc');} 셀렉트 박스를 루프시켜 함수로 짠다음 자스코드로 정리해놓은 내 코드에서는 오류가 좀있음 따라서 나의 경우에는 시트에서 하나의 이름을 주어주었다. !) htc 파일의 경로는 각자 입맛에 맞게. 3. 셀렉트박스를 쓸곳에 (html/php)문서등 삽입 2번의 방법1일 경우) <select setImage="/make_img/select.gif" name=key onchange="location='/?mode=manager/info.php&key='+<?=($posmer[charset]=='UTF-8'?'encodeURI(this.value)':'this.value');?>;"> <option value=''>선택하여주세요</option> <?=get_pos_list($member[mb_3])?> </select> ## 위와 같이 코드부분에 강조색 부분(setimage) 만 꼭 삽입해준다. 2번의 방법2일 경우) <select class="select" setImage="/make_img/select.gif" name=key onchange="location='/?mode=manager/info.php&key='+<?=($posmer[charset]=='UTF-8'?'encodeURI(this.value)':'this.value');?>;"> <option value=''>선택하여주세요</option> <?=get_pos_list($member[mb_3])?> </select> ## 위와 같이 코드부분에 강조색 부분(setimage/class) 만 꼭 삽입해준다. !) 주의할점은 select.gif와 같은 이미지파일이 존재 하여야한다. 이는 셀렉트 박스의 오른구석의 화살표 이미지 이다. ------------------------------------------------------------ 이와 같이 아주 간단히 만들어 보았고, 응용은 알아서들 자스소스 저작권(htc)은 원제작자에게 있고, 문제가 될시에는 즉각 삭제토록 하겠습니다.
by Anna 안나 2008. 2. 24. 22:13
| 1 |