태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


이미지 롤 오버 작업을 하다가 막상 투명이미지를 사용하면 편하겠다 싶어서 gif파일로 만들었지만. 원하는 퀄리티가 안나온다. 그에 따라 png파일로 작업을 하고 웹에서 롤오버를 걸었는데..이게 왠일..ㅡ/.,ㅡ;;

png파일의 알파값 처리가 제대로 안되어서 저렇게 보이는 것이다. ㅡㅡ;;
집컴은 ie7, ff, safari 만 사용하다보니...저런 문제가 있는지 몰랐는데..겜방에서 확인해보니 저런 모양이뜬다;;ㅎㄷㄷ
겜방이 아직 익스6이라는게 참 다행이였다;;거의 대부분 익스6 이겠지만 ㅋㅋ

여튼 모든 웹에서 똑같은 화면이 보이게 하기 위해서 고심을 해서 이미지 배경을 배경색과 동일하게 만들까도 생각했지만..;;
추후에 홈페이지 색 변경이 이루어지면 아이콘을 다시 만들어야 하는 그런 수고를 줄이기 위해서..png파일을 고집하게 되었다. 하지만 알파값 해결을 위해서 서핑과 서핑을 돌아서 찾아낸 소스다.
기존의 XE를 쓸때에는 기본적으로 지원해주는거 같아서 class값만 추가해주면 되던거 같은데..막상 내 홈페이지 만들때
이렇게 하나하나 만들어 줘야 한다는게 좀 글치만..그놈의 익스6 브라우저가 뭔지..
ㅋㅋㅋㅋ
여튼 아래 방법대로 따라 하면 익스6 브라우저에서도 png파일의 알파값을 제대로 표현 해 낼수있게 된다.


IE6 브라우저 PNG 투명 이미지 처리 방법

1. 아래의 자바스크립트를 <head>와 </head> 사이에 넣어주세요.
(js 파일로 따로 만들어서 링크를 거셔도 되고, html 파일 head안에 삽입해도 된다.)

<script language="javascript">
<!--
    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>

2. 역시 아래의 스타일 정의를 <head>와 </head> 사이에 넣어주세요. (물론 style.css 등으로 별도의 css 파일로 만들어도 되지요.)

(html 파일안에 스타일 속성을 지정할때 추가만 해주면 된다. 물론 css파일안에 추가해줘도 상관은 없다.)

<style type="text/css">
.png24 {
   tmp:expression(setPng24(this));
}
</style>

3. 그러고 나서 원하는 png 파일을 사용할 때 class="png24" 라고 적어주시면 됩니다.

(투명 이미지로 사용하려는 이미지 파일 링크에 위 스타일 class 네임을 추가해주면 된다.)

<img src="./images/we-want-alpha.png" class="png24">

4. 끝

소스 출처 : http://bones.tistory.com/46

5. 결과물 전 / 후


이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

트랙백 주소 :: http://db.noo9ya.com/trackback/127 관련글 쓰기

댓글을 달아 주세요

  1. 깔깔마녀 2010/01/28 10:17  댓글주소  수정/삭제  댓글쓰기

    하나의 이미지만 있을때는 해보니까 적용이 되더라구요. 근데 롤오버 이미지 두개다 png 파일일때는 어째야 하나요?? 롤오버에 적용시키니까 투명하게 되긴됬는데.. 오버 이미지로 바뀌지 않아요... 해결책 아시면 알려주심 감사^^;;

  2. 누구야 2010/01/28 11:27  댓글주소  수정/삭제  댓글쓰기

    흠..ㅡ/.,ㅡ;;
    아직 심도깊게 연구를 안해봐서 저도 잘 모르겠네요.
    혹시 방법을 아시게 되시면 연락 좀 부탁드립니다;;;

    제가 방법을 알게 된다면 연락을 드리겠습니다.
    이멜 주소를 안걸어 두셔서 연락이 힘들겠지만;;;연구를 해서라도 방법을 알아내면 댓글과 새로운 글로 방법을 알려드리겠습니다^^
    제가 바빠서 그 때가 언제가 될라나 모르겠지만;;ㅎㅎ

    여튼 열작하십시요^^