^^

'JS > 자바의심' 카테고리의 다른 글

깔끔한 메뉴  (0) 2008.03.02
툴팁이 나왔다사라지는 메뉴  (0) 2008.03.02
마우스로 옮길 수 있는 메뉴  (0) 2008.03.02
서브메뉴  (0) 2008.03.02
오른쪽 버턴클릭하면 나오는 메뉴  (0) 2008.03.02
마인드맵 형식의 메뉴  (0) 2008.03.02
간단한 설명과 이동이 가능한 메뉴  (0) 2008.03.02
메뉴에 마우스를 데면 메뉴배경이 이동해요.  (0) 2008.03.02
세로 서브 메뉴  (0) 2008.03.02
가로 서브 메뉴  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 16:43
색도 마음에 들고 멋져요^^
by Anna 안나 2008. 3. 2. 16:42
소스가 좀 길지만.. -,-..
유용합니다.^^
by Anna 안나 2008. 3. 2. 16:41
이쁩니다~ㅎㅎ

'JS > 자바의심' 카테고리의 다른 글

깔끔한 메뉴  (0) 2008.03.02
툴팁이 나왔다사라지는 메뉴  (0) 2008.03.02
마우스로 옮길 수 있는 메뉴  (0) 2008.03.02
서브메뉴  (0) 2008.03.02
오른쪽 버턴클릭하면 나오는 메뉴  (0) 2008.03.02
마우스 대면 왼쪽에서 천천히 이동하는메뉴  (0) 2008.03.02
마인드맵 형식의 메뉴  (0) 2008.03.02
간단한 설명과 이동이 가능한 메뉴  (0) 2008.03.02
세로 서브 메뉴  (0) 2008.03.02
가로 서브 메뉴  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 16:40
이전의 가로 서브 메뉴에 이어서 세로 서브 메뉴입니다.
by Anna 안나 2008. 3. 2. 16:40
종종 있었던 질문 같은데요.
설명 드리기가 조금 애매했습니다.
주메뉴가 몇개이냐에 따라서 스크립트에 신경을 써야 하니까요.

어렵지는 않은데요.. 제가 사용하고 있던 스크립트를 정리해서
제가 주석을 조금 달아 놓았습니다.
제가 만든 것은 아니지만.. 사용하시기 편하시라고 설명을 나름대로 적었는데요..
도움이 되셨으면 하네요.
제가 // 혹은 <!-- 이런 식으로 설명 달아 놓은 부분을 참고하시면
이해가 가지 않을까 싶네요.

멋진 홈페이지 만드시길 바랍니다.
by Anna 안나 2008. 3. 2. 16:38
여러 카페나 블로그를 보시면 카운터수를 늘리려고 자신의 블로그에 태그연습장을 설치해두는 경우를 종종 볼 수 있습니다. 물론 선의의 목적으로 도움을 주시는 분들도 있지만 그렇지 않은 분들도 허다할 뿐더러 내려받기가 가능한 태그연습장 중에는 설치하는 과정중 사용계약의 조항들을 읽어볼때 무지 살벌하여 악성코드를 유포할 목적(?)으로 배포하는것이 아닌가 의심스러운 파일들이 더러 있습니다. 이런 이유로 이것저것 신경쓰지 않고 그냥 기능은 단순할 지라도 나만의 태그연습장을 만드는게 낫겠다 싶어서 여기 나만의 태그연습장을 만드는 방법을 소개합니다. 만드는 절차는 매우 간단합니다. 중요한것은 얼마나 효과적으로 쓰느냐에 달렸습니다. 1. 메모장을 열고 아래의 내용을 그대로 입력합니다.




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



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



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



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



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




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



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



9. 바로 저장합니다.



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



일단 태그연습장을 만드셨다면 연습하는 작업은 소스의 바디 사이에 표현하고자 하는 태그를 적용시키시고 이를 저장한 다음
결과물을 확인하셔서 결과 물이 마음에 맞는다면 이를 복사하여 그대로 사용하시는 겁니다.
이러한 작업의 반복을 통해서 더 나은 결과물을 찾게 되는것이지요. 기능상으로는 아무것도 없지만 그래도 미심쩍은 태그연습장 보다는 심적으로 편안하실겁니다. 이상 마칩니다~~
by Anna 안나 2008. 3. 2. 15:37
((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

'디자인소스 > i_icon' 카테고리의 다른 글

블로그 피드 RSS 아이콘 모두  (0) 2008.07.20
귀여운 이모티콘  (0) 2008.03.28
블루세트(blue set) 아이콘들  (0) 2008.03.28
투톤 아이콘 - blue  (0) 2008.03.28
투톤 아이콘 - green  (0) 2008.03.28
투톤 아이콘 - gray  (0) 2008.03.28
미니 실버 아이콘  (0) 2008.03.28
깔끔한아이콘 조금!  (0) 2008.03.02
여러가지 조그마하고 유용한 아이콘 2  (0) 2008.03.02
여러가지 조그마하고 유용한 아이콘 1  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 15:00
((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

'디자인소스 > i_bg' 카테고리의 다른 글

저작권 없는 무료 이미지 사이트 100선  (0) 2009.01.05
포토샵합성용 텍스쳐  (0) 2008.07.27
푸른 숲같은 길  (0) 2008.07.27
부드러운 배경 2개  (0) 2008.03.28
회색배경  (0) 2008.03.02
분홍파스텔느낌  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 14:58
((-------IMAGE-------))


((-------IMAGE-------))


((-------IMAGE-------))


((-------IMAGE-------))


((-------IMAGE-------))

'디자인소스 > i_bg' 카테고리의 다른 글

저작권 없는 무료 이미지 사이트 100선  (0) 2009.01.05
포토샵합성용 텍스쳐  (0) 2008.07.27
푸른 숲같은 길  (0) 2008.07.27
부드러운 배경 2개  (0) 2008.03.28
반짝이는 심플한배경들  (0) 2008.03.02
분홍파스텔느낌  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 14:57
((-------IMAGE-------))((-------IMAGE-------))


((-------IMAGE-------))((-------IMAGE-------))

((-------IMAGE-------))((-------IMAGE-------))


((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))


((-------IMAGE-------))

((-------IMAGE-------))


((-------IMAGE-------))


((-------IMAGE-------))


((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))


((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))


((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))

((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))

((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

'디자인소스 > i_line' 카테고리의 다른 글

부드러운 나뭇잎 라인  (0) 2008.03.28
반짝이는 무지개파스텔  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 14:55
((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))
((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))
((-------IMAGE-------))

'디자인소스 > i_icon' 카테고리의 다른 글

블로그 피드 RSS 아이콘 모두  (0) 2008.07.20
귀여운 이모티콘  (0) 2008.03.28
블루세트(blue set) 아이콘들  (0) 2008.03.28
투톤 아이콘 - blue  (0) 2008.03.28
투톤 아이콘 - green  (0) 2008.03.28
투톤 아이콘 - gray  (0) 2008.03.28
미니 실버 아이콘  (0) 2008.03.28
귀여운아이콘^^  (0) 2008.03.02
여러가지 조그마하고 유용한 아이콘 2  (0) 2008.03.02
여러가지 조그마하고 유용한 아이콘 1  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 14:51
((-------IMAGE-------))
((-------IMAGE-------))
((-------IMAGE-------))
((-------IMAGE-------))
((-------IMAGE-------))
((-------IMAGE-------))

'디자인소스 > i_line' 카테고리의 다른 글

부드러운 나뭇잎 라인  (0) 2008.03.28
깔끔,귀엽,화려한 라인들~  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 14:50
((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

((-------IMAGE-------))

'디자인소스 > i_bg' 카테고리의 다른 글

저작권 없는 무료 이미지 사이트 100선  (0) 2009.01.05
포토샵합성용 텍스쳐  (0) 2008.07.27
푸른 숲같은 길  (0) 2008.07.27
부드러운 배경 2개  (0) 2008.03.28
반짝이는 심플한배경들  (0) 2008.03.02
회색배경  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 14:47
아래 아이콘 다운로드하기 (zip)
((-------IMAGE-------))


==============================몇가지 샘플^0^========================
((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))

'디자인소스 > i_icon' 카테고리의 다른 글

블로그 피드 RSS 아이콘 모두  (0) 2008.07.20
귀여운 이모티콘  (0) 2008.03.28
블루세트(blue set) 아이콘들  (0) 2008.03.28
투톤 아이콘 - blue  (0) 2008.03.28
투톤 아이콘 - green  (0) 2008.03.28
투톤 아이콘 - gray  (0) 2008.03.28
미니 실버 아이콘  (0) 2008.03.28
귀여운아이콘^^  (0) 2008.03.02
깔끔한아이콘 조금!  (0) 2008.03.02
여러가지 조그마하고 유용한 아이콘 1  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 14:15
icon1.zip

((-------IMAGE-------))

'디자인소스 > i_icon' 카테고리의 다른 글

블로그 피드 RSS 아이콘 모두  (0) 2008.07.20
귀여운 이모티콘  (0) 2008.03.28
블루세트(blue set) 아이콘들  (0) 2008.03.28
투톤 아이콘 - blue  (0) 2008.03.28
투톤 아이콘 - green  (0) 2008.03.28
투톤 아이콘 - gray  (0) 2008.03.28
미니 실버 아이콘  (0) 2008.03.28
귀여운아이콘^^  (0) 2008.03.02
깔끔한아이콘 조금!  (0) 2008.03.02
여러가지 조그마하고 유용한 아이콘 2  (0) 2008.03.02
by Anna 안나 2008. 3. 2. 14:09
필요에 따라 자바스크립트 php등을 부분 결합해서 많은 응용이 가능합니다

전 이것을 폴더를 담는 그릇으로 자바 스크립트를 이용해서 열림 닫힘 박스로 만들어,
쪼물딱 거리고 있는 프로그램의 서브메뉴 표현부에 쓰고 있습니다
포토샵으로 라운드를 그려놓고 확대시켜 일일이 css 픽셀을 맞춰 표현했기에 라운드가 정확합니다


장점이라면
css를 이용한 것이기에 로딩이 빠르고
혹 기타사유로 로딩이 실패해도 div로 자리매김 했기에 그림 파일로 만든 것 보다는 좀더 표현이 완만합니다
자바 스크립트나 그림파일등은 간혹 로딩중 에러가 나올수 있는고 거기에
비하면 사용하는 입장에서느 꽤 쓸모 있지 않을까 싶습니다

더블어 php 또는 자바 스크립트의 변수등을 이용해서
여러가지 사용자 정의 색을 한계 범위 없이 만들어 낼수 있습니다
ㅡ 실상 이부분 때문에 만들었구 디비와 결합해서 사용하고 있습니다
그림 파일등으로 표현하게 되면 사용할수 있는 색은 고정될수 밖에 없습니다 ㅡ

단점이라면 라운드가 고정이라는 ...
자바 스크립트의 라운드 테이블등이 나와 있기도 하지만 그보다 부드러운 표현이 가능하고 이중 테두리 구조이기에
용도에 따라 표현하기 좋을거 같습니다







<!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" xml:lang="ko" lang="ko">
<head>
<style type="text/css">
body {
font: 14px Arial, Helvetica, sans-serif;
color: #000;
background-color: #fff;
}
/*
사용법: ┏━━━━━━━━━━━━ 높이와 넓이 ━━━━━━━━━━━━━┓
┃넓이 : 테이블을 감싸줄 DIV에서 조절 ┃
┃높이 : .CONTENTS에서 높이와 마진을 조절 ┃
┗━━━━━━━━━━━━ 높이와 넓이 ━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━ 바깥쪽 테이블 ━━━━━━━━━━━━━┓
┃테두리 색 : ┃
┃ .rt1에서 .rt6까지는 border-right border-left의 색을 조절 ┃
┃ .rt7 은 background-color로 라인의 색을 맞춰줌 ┃
┃ ┃
┃배경색 : ┃
┃.rt1에서 .rt6까지 background-color로 맞춤 ┃
┗━━━━━━━━━━━━ 바깥쪽 테이블 ━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━ 안쪽 테이블 ━━━━━━━━━━━━━┓
┃테두리 색 : ┃
┃.rt1in1 에서 .rt2in4 까지는 border-right border-left의 색을 조절 ┃
┃.rt2in5 는 background-color로 라인의 색을 맞춰줌 ┃
┃ ┃
┃배경색 : ┃
┃.rt1in1 에서 .rt2in4 까지 background-color로 맞춤 ┃
┗━━━━━━━━━━━━━ 안쪽 테이블 ━━━━━━━━━━━━━┛ */ /* 바깥쪽 테이블 테이블: 시작 */
.rt1{
background-color: #fdfdfd;
border-right: 1px solid #ccc;
border-left: 1px solid #ccc;
margin : 0px 0px 0px 0px;
padding : 0px;
overflow: hidden;
height : 4px;
}
.rt2{
background-color: #fdfdfd;
border-right: 1px solid #ccc;
border-left: 1px solid #ccc;
margin : 0px 1px 0px 1px;
padding : 0px;
overflow: hidden;
height : 2px;
}
.rt3{
background-color: #fdfdfd;
border-right: 1px solid #ccc;
border-left: 1px solid #ccc;
margin : 0px 2px 0px 2px;
padding : 0px;
overflow: hidden;
height : 1px;
}
.rt4{
background-color: #fdfdfd;
border-right: 1px solid #ccc;
border-left: 1px solid #ccc;
margin : 0px 3px 0px 3px;
padding : 0px;
overflow: hidden;
height : 1px;
}
.rt5{
background-color: #fdfdfd;
border-right: 1px solid #ccc;
border-left: 1px solid #ccc;
margin : 0px 4px 0px 4px;
padding : 0px;
overflow: hidden;
height : 1px;
}
.rt6{
background-color: #fdfdfd;
border-right: 2px solid #ccc;
border-left: 2px solid #ccc;
margin : 0px 5px 0px 5px;
padding : 0px;
overflow: hidden;
height : 1px;
}
.rt7{/* 상하단 라인 */
background-color: #ccc;
margin : 0px 7px 0px 7px;
padding : 0px;
overflow: hidden;
height : 1px;
}
.rtoutLRline{/* 좌우 라인 */
background-color: #fdfdfd;
border-right: 1px solid #ccc;
border-left: 1px solid #ccc;
margin : 0px 0px 0px 0px;
padding : 0px;
overflow: hidden;
} /* 바깥쪽 테이블 테이블: 끝 */
/* 안쪽 테이블: 시작 */
.rt2in5{/* 상하단 라인 */
background-color: #000;
margin : 0px 8px 0px 8px;
padding : 0px;
overflow: hidden;
height : 1px;
}
.rt2in4{
background-color: #F2F2F2;
border-right: 2px solid #000;
border-left: 2px solid #000;
margin : 0px 6px 0px 6px;
padding : 0px;
overflow: hidden;
height : 1px;
}
.rt1in3{
background-color: #F2F2F2;
border-right: 1px solid #000;
border-left: 1px solid #000;
margin : 0px 6px 0px 6px;
padding : 0px;
overflow: hidden;
height : 1px;
}
.rt1in2{
background-color: #F2F2F2;
border-right: 1px solid #000;
border-left: 1px solid #000;
margin : 0px 5px 0px 5px;
padding : 0px;
overflow: hidden;
height : 2px;
}
.rt1in1{
background-color: #F2F2F2;
border-right: 1px solid #000;
border-left: 1px solid #000;
margin : 0px 4px 0px 4px;
padding : 0px;
overflow: hidden;
height : 1px;
} .rtinLRline{/* 좌우 라인 */
background-color: #F2F2F2;
border-right: 1px solid #000;
border-left: 1px solid #000;
margin : 0px 4px 0px 4px;
padding : 0px;
overflow: hidden;
} /* 안쪽 테이블: 끝 */
/* 내용 테이블 */
.CONTENTS{
margin : 0px 0px 0px 0px;
padding : 5px 10px 5px 10px;
height : 100px; }
</style> </head>
<body> css 처리한 라운드
<div style="margin : 0px 10px 0px 0px; width: 250px;">
<div class="rt7"></div>
<div class="rt6"></div><div class="rt5"></div>
<div class="rt4"></div><div class="rt3"></div>
<div class="rt2">
<div class="rt2in5"></div><div class="rt2in4"></div>
</div>
<div class="rt1">
<div class="rt1in3"></div><div class="rt1in2"></div>
<div class="rt1in1"></div>
</div>
<div class="rtoutLRline">
<div class="rtinLRline"> <div class="CONTENTS">
내용을 이곳에 넣으시면 됩니다 ^_____________________^*
</div> </div>
</div>
<div class="rt1">
<div class="rt1in1"></div><div class="rt1in2"></div>
<div class="rt1in3"></div>
</div>
<div class="rt2">
<div class="rt2in4"></div><div class="rt2in5"></div>
</div>
<div class="rt3"></div><div class="rt4"></div>
<div class="rt5"></div><div class="rt6"></div>
<div class="rt7"></div>
</div>
<br />
이미지 처리한 라운드( gif 파일 )
<br />
<img src="http://repter.ddam119.com/test/images/roundTable.gif" alt="이미지처리한 라운드 테이블" />
</body>
</html>


태그로 넣었더니 코드가 깨지네요 링크로 올립니다

http://repter.ddam119.com/test/roundTable.html
by Anna 안나 2008. 3. 1. 20:08
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><head><meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title>스크롤바따라다니는,TOP</title>
<style type="text/css"><!--
BODY,p,li,TD,SELECT,input,DIV,form,TEXTAREA,option,td,fieldset {font-size:9pt; font-family:verdana;color:D4D0C8;
line-height:120%; margin-top:0; margin-bottom:0; scrollbar-face-color:2B2A2A; scrollbar-shadow-color:2B2A2A; scrollbar-highlight-color:2B2A2A; scrollbar-3dlight-color:2B2A2A; scrollbar-darkshadow-color:2B2A2A; scrollbar-track-color:434343; scrollbar-arrow-color:EFFFFD}
A:link {color:#47F8FF;text-decoration:none;font-weight: bold}
A:visited {color:#47F8FF;text-decoration:none;font-weight: bold}
A:hover{color:#FCFF7A;text-decoration:underline;font-weight: bold)
--></style>
<SCRIPT LANGUAGE="JavaScript">
<!--
function fix(){
var a=document.body.scrollTop+0
bar.style.top = a
}
-->
</SCRIPT>
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red" onScroll="fix();">
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<span id="bar" style="Z-INDEX: 1; RIGHT: 0px; VISIBILITY: visible; POSITION: absolute; TOP: 0px"><script language="JavaScript">
document.write("<input type='button' value='TOP-1000' onClick='self.scrollBy(0,-1000)' style='font-weight:bold; color:CC6699;'>")
</script></span> </body> </html>




---자, 그리고 수정된소스를 봅시다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<script language="javascript">
function fix() {
var imgH = 18; // 이미지 사이즈에 맞게 수정 (이미지 높이)
var imgW = 44; // 이미지 사이즈에 맞게 수정 (이미지 너비)
var posTop = document.body.clientHeight - imgH;
var posLeft = document.body.clientWidth - imgW;
bar.style.top = document.body.scrollTop + posTop;
bar.style.left = document.body.scrollLeft + posLeft;
} function neuladen() {window.location.reload()}
window.onresize = neuladen; window.onscroll = fix;
//window.onresize = fix;
window.onload = fix;
</script>
</HEAD> <BODY background="img/bg_patten.gif" bgproperties="fixed"> <!--
밑에 3가지 중에서 선택해서 사용하시면 될 듯 합니다.
1. 이미지
2. 테이블
3. 버튼
-->
<!--<span id="bar" style="position:absolute; z-index:1"><a href="#top"><img src="top.gif" border=0></a></span>-->
<!--<span id="bar" style="position:absolute; z-index:1"><table bgcolor=#CCCCCC width=44 height=18 cellpadding=0 cellspacing=0><tr><td align=center><a href="#top">TOP</a></td></tr></table></span>-->
<span id="bar" style="position:absolute; z-index:1"><input type='button' value='TOP' onClick="window.location='#top'"></span> <TABLE CELLSPACING=0 CELLPADDING=1 WIDTH="100%" BGCOLOR="#336699">
<TR><TD>
<B><FONT COLOR="#FFFFFF" face=돋움>당구 유머</FONT></B>
</TD></TR>
</TABLE><br> <table border=0 width=100%><tr><td width=23></td><td>
<table width=95% cellpadding=1><tr>
<td width=25% align=center bgcolor="#339966" onMouseOver="style.background='#AA1002'" onMouseOut="style.background='#339966'"><a href="#당구와sex"><font color=white><b>당구와sex</b></font></a></td>
<td width=25% align=center bgcolor="#DDAD08" onMouseOver="style.background='#AA1002'" onMouseOut="style.background='#DDAD08'"><a href="#당구찬양시"><font color=white><b>당구찬양시</b></font></a></td>
<td width=25% align=center bgcolor="#339966" onMouseOver="style.background='#AA1002'" onMouseOut="style.background='#339966'"><a href="#정치인당구인"><font color=white><b>정치인당구인</b></font></a></td>
<td width=25% align=center bgcolor="#DDAD08" onMouseOver="style.background='#AA1002'" onMouseOut="style.background='#DDAD08'"><a href="#당구같이"><font color=white><b>당구같이</b></font></a></td>
</tr></table>
</td></tr></table><br> <a name="당구와sex"></a>
<table border=0 width=100%><tr><td width=23></td><td>
<table border=0 cellspacing=0 cellpadding=1 width="95%">
<tr><td BGCOLOR="#339966"><font color=white><b>당구와 sex 공통점30선</b></font></td></tr>
<tr><td style="line-height:20pt;font-size:10pt">
1. 예전에는 대학교때 시작했는데 요즘은 고등학교, 중학교때 처음 시작한다.<br>
2. 혼자서 연습하는것은 공짜지만 항상 눈치를 보게 된다. <br>
3. 혼자서도 연습을 많이하면 실력이 늘어난다.<br>
4. 실력이 늘어나면 자세가 바뀐다.<br>
5. 초보는 힘으로밀어 부치지만 고수는 테크닉으로 끝낸다.<br>
6. 초보나 고수나 벗기기는 항상 힘이든다.<br>
7. 초보는 무조건 빠는 것을 좋아하지만 고수는 필요한 만큼만 빤다.<br>
8. 어려운 포지션은 허리를 잘쓰면 해결된다.<br>
9. 반 듯하면 (큐대일수록) 정확하게 들어간다.<br>
10. 세게 찍어치면 다이가 찢어질 위험이 있다.<br>
11. 보통 한게임에 일이십분 걸린다.<br>
12. 항상 한게임으로 끝내지는 않는다.<br>
13. 술마시고 하는 경우에는 시간만 오래 걸리고 대부분 진다.<br>
14. 끝난후에는 꼭 씻는다.<br>
15. 몰아치면 더 빨리 끝낼수도 있지만 재미가 없다.<br>
16. 계속해서 오랜시간을 하다보면 다리가 후들거린다.<br>
17. 하다보면 밤을 세울때가 많다.<br>
18. 처음만난 사람과는 긴장된 마음으로, 오래된 사람과는 편안한 마음으로....<br>
19. 초보는 엉뚱한데다 겨냥을 한다.<br>
20. 교본이 많이 있긴하지만 실전이 제일 중요하다.<br>
21. 자기것 안치고 남의 것을 치면 죽는다.<br>
22. 개인큐는 남이 못쓰게 잘 보관한다.<br>
23. 한번 맛들이면 하루도 안빠지고 하고 싶다.<br>
24. 요즘은 비디오 교본도 나온다.<br>
25. 같이 할 사람만 있으면 밤낮없이 할 수 있다.<br>
26. 큐대가 크고 무겁다고 잘치는 것은 아니다.<br>
27. 자세가 중요하다는 건 고수가 되야 안다.<br>
28. 군발이들이 휴가나 외박을 나오면 단체로 하고 들어간다.<br>
29. 외국의것은(당구대)우리나라 것보다 크다.<br>
30. 사오십대가 되면 한달에 한번 칠까 말까 한다.<br>
</td></tr></table>
</td></tr></table><br>
<a name="당구찬양시"></a>
<table border=0 width=100%><tr><td width=23></td><td>
<table border=0 cellspacing=0 cellpadding=1 width="95%">
<tr><td BGCOLOR="#DDAD08"><font color=white><b>당구 찬양시</b></font></td></tr>
<tr><td style="line-height:20pt;font-size:10pt"> 테마 유머::스포츠<br>
당구 찬양시(撞介)<br>
거룩한 우라는<br>
예술구보다도 깊고<br>
불붙는 맛세이는<br>
게임비보다도 값지다.<br>
<br>
아! 강낭콩보다도 더 푸른<br>
그 다이 위에<br>
양귀비꽃보다도 더 붉은<br>
그 적구 굴러라.<br>
아리땁던 그 큐대<br>
곧게 뻗어나가며<br>
그 석류 속 같은 적구<br>
두개를 다 맞추었네!<br>
아! 강낭콩보다도 더 푸른<br>
그 다이 위에<br>
양귀비꽃보다도 더 붉은<br>
그 적구 굴러라<br>
<br>
구르는 적구는<br>
길이길이 모이리니<br>
그대의 꽃다운 다마수<br>
어이 아니 오르랴.<br>
아! 강낭콩보다도 더 푸른<br>
그 다이 위에<br>
양귀비꽃보다도 더 붉은<br>
그 적구 굴러라<br><br>
<br>
<작품 해설><br>
<br>
평생 당구만을 위해 모든 것을 바치친 전설적인 인물 '당개 (撞介)'를 화려한<br>
색채 대비를 이용하여 묘사하고 있다.<br>
<br>
*당개 (撞介:190?-194?)<br>
<br>
암울했던 일제 시대 때 이 땅에 당구를 보급하기 위하여 자신의 모든 것을 다 바쳤던 인물.<br>
당시 총독부 사령관 '하오마루'와 죽방을 쳤으나 크게 물리게 되자 그를 껴안고 <br>
3층 당구장에서 뛰어내려 같이 즉사하였다 함. <br> </td></tr></table>
</td></tr></table><br>
<a name="정치인당구인"></a>
<table border=0 width=100%><tr><td width=23></td><td>
<table border=0 cellspacing=0 cellpadding=1 width="95%">
<tr><td BGCOLOR="#339966"><font color=white><b>정치인과 당구인공통점</b></font></td></tr>
<tr><td style="line-height:20pt;font-size:10pt"> 1. 경력과 실력이 다가 아니다. 누가 뒤통수를 칠지 모른다. 다크호스는 항상 존재한다. <br>
2. 상대방 까대기를 절라 잘한다. 가끔 얼굴 붉어져 치고받고 싸운다. <br>
3. 우기는넘이 짱이다. 되던 안되던 목소리높여 우기고 봐야한다. <br>
4. 승리를 위해 담합을 하기도 한다. 뒤에서 절라 욕하면서도 눈치봐서 자기도 한다. <br>
5. 가끔 승리하면 돈을 긁어오기도 한다. 언제나 남은것은 없다고 우긴다. <br>
6. 상승세를 타면 막을 수 없다. 그러나 한번 꼬이면 바로 끝이다. <br>
7. 폼만 그럴싸한 허접이들이 대다수이다. <br>
8. 자기 이익에만 급급하게 된다. 매너 황인넘들이 많다. <br>
9. 상대방이 실수하면 절라 좋아한다. 그러나 자기가 실수 해서 상대방이 좋아하면
예의라고는 눈꼽만큼도 없다고 지랄한다. <br>
10. 자기 전용터가 있다. 다른곳은 꺼린다. <br>
11. 상대방이 이기면 절라 화내면서 짜증부린다. <br>
12. 똑같이 여가를 활용해서 참여한다. <br>
<br>
(당구맨 본업 : 학생 또는 사회인 정치인 본업 : 국가가 인정한 사기꾼 <br>
그래도 당구는 보는사람은 재미있지만 정치인 봐도 재미없다. 그냥 화가 날 뿐이다. <br>
<br>
천리안 by 윌리 <br>
< 퍼가실땐, http://humorvista.co.kr/ 을 적어주세요 T.T > <br>
</td></tr></table>
</td></tr></table><br> <a name="당구같이"></a>
<table border=0 width=100%><tr><td width=23></td><td>
<table border=0 cellspacing=0 cellpadding=1 width="95%">
<tr><td BGCOLOR="#DDAD08"><font color=white><b>당구같이 못칠놈</b></font></td></tr>
<tr><td style="line-height:20pt;font-size:10pt">
<p>10위- "먹는거에 초연한 놈." </p> 대단한 집중력이다. 먹는거보다 당구가 중요하다니...고개가 숙여진다.
<p>9위- "전화와도 안 받는 놈" </p> 악바리다. 안 물리려고.. 지극 정성이다. 내가 이겨도 돈 내줘야 될거 같다.
<p>8위- "시작하기 전 연습 다마때 잘 치는 놈" </p> 시작하기 전, 은근한 연습다마 싸움.
마치 농구 연습할때 골대 앞에서 시합보다 더 치열하게 리바운드 다툼 하듯이,
당구 칠 때도 시작하기 전에 서로 공한번 건드려 보려고 난리인데,
그런 혼잡한 상황 속에서도 잘 치는 놈이라면 엄청난 실력자이다.
<p>7위- "시간 한참 지나도 아무 동요 없이 치는 놈" </p> 게임이 길어질 수록 아줌마 눈치 봐가면서,"야, 니가 눌러." "니가 눌러 이새끼야." 이런 식으로 신경을 쓰게 마련인데...
그 와중에도 전혀 동요 없이 치는 놈들이 있다. 이긴다는 확신이 있는, 아주 무서운 놈들이다.
<p>6위- "뽀록치고 깍듯하게 인사하는 놈" </p> 고수다. 당구장 벽에 써 붙여있는 당구 10계를 지키는 고수다.
그냥 이런 사람과 같이 친다는 걸 영광으로 알아야 한다.
<p>5위- "3년째 계속 150인 놈." </p>
진짜 무서운 놈이다. 150 이면 칠건 다친다.
게다가 다마수도 300~500 등 고다마에 비하면 훨씬 적어서 맘만 먹으면 후다닥 빼고 나간다.
<p>4위- "최근에 만나는 여자 없는 놈" </p> 절대 잡생각이 안난다.
여자 친구나 쫓아다니는 여자 있는 일반인들은 승부가 극한 상황으로 치닿으면, 꼭 여자 생각을 하게 마련이다.
바로 여기서 일반인들과 이런 놈들의 집중력의 차이가 생겨난다.
<p>3위- "하늘이 돕는 놈" </p> 절묘한 순간마다 뽀록이 터져준다. 반면에 그 상대방은 짤 들어가게 친 공도 야리하게 새고, 싸대기 맞고...난리난다.
정말 말이 안 된다. 근데 보면 늘 똑같은 놈이 그런다. 이젠 아예 뽀록이 당연한건 줄 안다.
심해지면, 뽀록 치고도 노리고 쳤다는 식의 덤덤한 표정을 짓는다. 그럴땐 진짜 초크 묻은 손으로 싸대기 때려주고 싶다.
<p>2위- "쓰레빠 갈아신고 치는 놈" </p> 쓰레빠는 산전수전 다 겪은 베테랑을 상징한다.
바로 쫄아주어야 한다. 이런 사람이랑은 웬만하면 이길 생각 말고 배운다는 생각으로 쳐야한다.
그래도 이겨보겠다고 따라서 어설프게 쓰레빠 꺼내서 신고 쳤다가,
나중에 돈은 돈대로 물리고, 열받아서 홧김에 집에 오다가 현관문에서 쓰레빠를 신고 있는 자신을 발견하게 된다.
<p>1위- "집에서 낮잠 자다가 나온 놈" </p> 정말 컨디션 만빵이다.
수능 시험도 충분한 수면을 취해야 잘 치듯이 당구도 마찬가지인 것이다.
자는 놈을 깨워서 당구 치자고 한 놈이 죽일 놈이다.
대낮 부터 낮잠 자는애 깨워서 당구 쳐봤자 결국 자기가 물리게 된다. <p>나우누리 by lingo<br> < 퍼가실땐 , http://humorvista.co.kr/ 을 적어주세요 T.T ></p>
</td></tr></table>
</td></tr></table><br>

</body>
</HTML>




차이점이요..?
그냥.. 조금소스가 간단해졌을 뿐입니다.^^
잘쓰세요..
by Anna 안나 2008. 2. 26. 14:53
아이디어 게시판에 아래의 기능은 원하는 분들이 있어 올립니다.


지금 현재 카테고리를 사용하는 게시판 모듈에서 글을 작성 할 경우 굳이 카테고리를 지정하여 주지 않아도 글작성이 가능합니다.
글작성시 반드시 카테고리를 선택하게 하는 초 간단 팁입니다.

단. 이팁은 게시판 설정에서 카테고리사용을 체크하시고 분류명(카테고리)을 추가하지 않을경우 글 작성시 논리적인 오류로 글 등록이 되지안습니다.


zbxe/moudles/board/skins/xe_board/filter/insert.xml line 2의 아래부분에 부분의 소스를 삽입한다.
<form>
<node target="nick_name" required="true" />
<node target="password" required="true" />
<node target="email_address" maxlength="250" />
<node target="homepage" maxlength="250"/>
<node target="title" required="true" minlength="1" maxlength="250" />
<node target="content" required="true" />
<node target="category_srl" required="true" />
</form>


-대암지기 님-
by Anna 안나 2008. 2. 26. 14:44
DB를 수정하면 된다는말을 듣고..
phpMyAdmin이 있다는것만 알고 다룰줄은 모르는 초보가..=,.=;;
그냥..도움이라도 될까해서 올려봅니다. (0.2.8이였습니다 ㅇ_ㅇ)



일단 DB관리하러 ((-------IMAGE-------))로 들어갑니다..
자기 DB를 클릭하시구요.
((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))((-------IMAGE-------))

이상..ㅋㅋ;;
내용만 길어보이려고 스샷까지 하는군요.. -,.-;;;;
이만.. 감사합니다. ㅎㅎ

오류나는건 없었네요..ㅎ
by Anna 안나 2008. 2. 26. 14:42
ZeroBoard Tip&Tech 제로보드에서 글쓰기 창에 내용을 미리 입력 해 놓는 방법을 보겠습니다. ▶ 제목에 기본적으로 나오게하기 (subject) write.php 파일 맨 위에 아래의 내용을 넣어주세요.

<? if ($mode=="write") $subject="[제목]"; ?>

[제목] 이란 부분을 원하시는데로 고치시면 됩니다.
이 경우는 새 글 쓰기일 경우만 [제목]이라고 나오게 됩니다. ▶ 내용에 기본적으로 나오게하기 (memo) 제목에 넣는것과 마찬가지로 write.php 파일 맨 위에 이렇게 넣어주세요.
동일하게 [내용] 부분을 원하시는 내용으로 수정하시면 됩니다.

<? if ($mode=="write") $memo="[내용]"; ?>

이 경우도 새 글 쓰기일 경우만 [내용]이라고 나오게 됩니다.
$mode 가 write 일 경우에만 해당 내용을 표시하기 위함입니다. 만약 수정(modify)모드이거나 답변(reply)모드일 경우에도 표시된다면 곤란하겠죠...? ▶ 기본적으로 나온글을 클릭시 내용이 지워지게하기 (onfocus=) write.php 내용중 "$memo"를 찾아보시면 그 중 <textarea 어쩌구저쩌구><?=$memo?></textarea>라는 부분을 찾아보실 수 있습니다. 글을 입력할 부분을 클릭시 기존 내용이 지워지도록 하려면 다음과 같이 수정하면 됩니다. <textarea 어쩌구저쩌구 onfocus='this.value='><?=$memo?></textarea> <참고자료> onfocus 부분이 this.select() 일 경우에는 블럭지정만 되어있어 글 입력시 지워지지 않습니다. 만약 this.value= 이라고 되어있을 경우에는 해당 입력창에 클릭하면 내용이 지워지게 됩니다. * 블럭지정 : onfocus='this.select()'
* 클릭시 삭제 : onfocus='this.value=' ▶ 게시판마다 다른내용이 기본적으로 나오게하기 ($id) 보통 위와 같이 사용하면 다른게시판에서 해당 스킨을 사용하면 동일한 메시지를 출력하게 됩니다. 이럴 경우 다음과 같은 방법을 이용하여 각각의 게시판에서 다른 메시지를 출력할 수 있도록 할 수 있습니다. $memo 를 게시판ID 에 따라 다르게 출력시키는 형식입니다. <?
if($id==게시판명1 && $mode=="write")
{ $memo="내용1";}
if($id==게시판명2 && $mode=="write")
{ $memo="내용2";}
if($id==게시판명3 && $mode=="write")
{ $memo="내용3";}
?>
위의 예는 게시판이 3개일 경우 각각인 게시판명1일때와 2일때, 3일때 각각 다른 메시지를 미리 출력하게 됩니다.
<참고자료> 보통 표시할 메시지를 입력할때 줄을 넘기시려면 \n을 넣어주면 됩니다. 예를들어 <? if ($mode=="write") $memo="이름 : \n내용 : \n사유 : "; ?>
위와같이 입력해 두었다면 아래와 같이 미리 입력되어있습니다. 이름 : 내용 : 사유 : 두줄을 띄우고 싶다면 \n을 두번 입력하여주면 됩니다

*참고자료 : http://www.nzeo.com

'zb4tip_6' 카테고리의 다른 글

Pop Box 적용하기  (0) 2008.05.23
by Anna 안나 2008. 2. 26. 14:40
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
JAVA Script Source 새 창의 링크로 부모창에 결과출력하고 새 창은 닫기 <script language="JavaScript">
function Go1(){
opener.parent.location='연결할 주소';
window.close();
}
function Go2(){
opener.parent.location='연결할 주소';
window.close();
}
</script>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="64"><a href="javascript:Go1();" target="_parent">바로갈 곳 링크</a></td>
</tr>
<tr>
<td height="121"><a href="javascript:Go2();" target="_parent">바로갈 곳 링크</a></td>
</tr>
</table> * 출처 : 해피스크립트닷컴(http://www.happyscript.com)
by Anna 안나 2008. 2. 26. 14:37
JAVA Script Source 스크롤바를 따라다니는 메뉴 1 에 비해 미끄러지는 듯한 느낌이 들면서 보다 부드럽게 따라다닙니다. 레이어 안을 텍스트, 이미지, 테이블 등으로 채워 보조메뉴로 활용하기 좋습니다. 1. <head>와 </head>사이에 아래 소스를 넣습니다. ---------------------------------------------------------------------------------------- <style type="text/css">
<!--
#floater {position:absolute; visibility:visible}
-->
</style> <script language="JavaScript">
<!--
self.onError=null;
currentX = currentY = 0;
whichIt = null;
lastScrollX = 0; lastScrollY = 0;
NS = (document.layers) ? 1 : 0;
IE = (document.all) ? 1: 0;
<!-- STALKER CODE -->
function heartBeat() {
if(IE) {
diffY = document.body.scrollTop;
diffX = 0;
}
if(NS) { diffY = self.pageYOffset; diffX = self.pageXOffset; }
if(diffY != lastScrollY) {
percent = .1 * (diffY - lastScrollY);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE) document.all.floater.style.pixelTop += percent;
if(NS) document.floater.top += percent;
lastScrollY = lastScrollY + percent;
}
if(diffX != lastScrollX) {
percent = .1 * (diffX - lastScrollX);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE) document.all.floater.style.pixelLeft += percent;
if(NS) document.floater.top += percent;
lastScrollY = lastScrollY + percent;
}
}
if(NS || IE) action = window.setInterval("heartBeat()",1);
//-->
</script> ---------------------------------------------------------------------------------------- 2. </body>의 바로 앞, 즉 본문의 맨 끝에 아래 소스를 넣습니다. ---------------------------------------------------------------------------------------- <div id=floater style="left:0; top:150; width:119; height:53; z-index:10">내용</div> ---------------------------------------------------------------------------------------- left:0; top150 은 레이어의 위치입니다. left:0 은 왼쪽0, 위 150의 위치에 레이어가 위치하게 합니다. 따라서 왼쪽에 딱 달라붙고 위로부터 150만큼 떨어진 곳에서 레이어가 스크롤바를 따라다니게 된거죠. 만약 left값과 top값을 모두 0으로 한다면 왼쪽 맨 위 구석에서 따라다니게 되고, right값과 top값을 모두 0으로 한다면, 오른쪽 맨 위 구석에서 따라다니게 됩니다. width:119, height:53은 레이어의 사이즈입니다. 레이어 안에 들어가는 내용에 맞춰 사이즈를 조절해주시면 됩니다. 119은 레이어의 폭(가로사이즈), 53은 레이어의 높이(세로사이즈)입니다. 예제에 사용된 레이어는 가로 119, 세로 53짜리의 이미지 하나만 레이어 안에 들어갔으므로 width:119, height:53 이 됐습니다. 레이어 안에 들어가는 내용 부분에는 간단한 이미지 하나만 넣으셔도 되고, 텍스트만 넣어도 됩니다. 테이블을 넣어도 되구요.
by Anna 안나 2008. 2. 26. 14:35
JAVA Script Source 레이어의 내용이 화면이 스크롤되는것에따라 이동이 됩니다. 위치는 임의로 지정이 가능합니다. 레이어 안에는 텍스트 뿐 아니라, 이미지, 테이블 등도 넣어서 꾸밀 수 있기 때문에, 간이메뉴로 사용하기 좋습니다. 1. <head>와 </head>사이에 아래의 소스를 넣습니다. ---------------------------------------------------------------------------------------- <style type="text/css">
<!--
#watermark {position:absolute}
-->
</style> ---------------------------------------------------------------------------------------- 2. <body>와 </body>사이에 스크롤바를 따라다니게할 부분을 <div>태그로 감싸줍니다. ---------------------------------------------------------------------------------------- <div id="waterMark" style="z-index:10">내용</div> ---------------------------------------------------------------------------------------- 이 부분이 스크롤바를 따라다니는 레이어입니다. 내용은 텍스트, 이미지, 테이블 등으로 이용해 취향에 맞게 꾸밀 수 있습니다. 3. </body>의 바로 앞(본문의 맨 끝)에 아래 소스를 넣습니다. ---------------------------------------------------------------------------------------- <script language="JavaScript1.2">
<!-- markW = 62;
markH = 47;
markX = 100;
markY = 100;
markRefresh = 10; if (!document.all) document.all = document;
if (!document.all.waterMark.style) document.all.waterMark.style = document.all.waterMark; wMark = document.all.waterMark.style;
wMark.width = markW;
wMark.height = markH;
navDOM = window.innerHeight; function setVals() {
barW = 0;
barH = 0;
if (navDOM) {
if (document.height > innerHeight) barW = 20;
if (document.width > innerWidth) barH = 20;
} else {
innerWidth = document.body.clientWidth;
innerHeight = document.body.clientHeight;
}
posX = ((innerWidth - markW)-barW) * (markX/100);
posY = ((innerHeight - markH)-barH) * (markY/100);
} function wRefresh() {
wMark.left = posX + (navDOM?pageXOffset:document.body.scrollLeft);
wMark.top = posY + (navDOM?pageYOffset:document.body.scrollTop);
} function markMe() {
setVals();
window.onresize=setVals;
markID = setInterval ("wRefresh()",markRefresh);
} window.onload=markMe; //-->
</script> ---------------------------------------------------------------------------------------- markW = 62; 에서 62 는 레이어의 폭
markH = 47; 에서 47 은 레이어의 높이
markX = 100; 에서 100 은 레이어의 X축 좌표 (퍼센트값입니다. 따라서 가로 100%를 의미하므로 오른쪽 끝)
markY = 100; 에서 100 은 레이어의 Y축 좌표 (퍼센트값입니다. 따라서 세로 100%를 의미하므로 맨 아래) ((-------IMAGE-------)) * 출처 : 신의키스(http://www.kissofgod.net) * 개인참고용으로 가져온 관계로 일부 수정된 내용이 있습니다. * 정확한 정보를 얻고자 하시는분은 출처인 신의키스님 사이트를 방문바랍니다.
by Anna 안나 2008. 2. 26. 14:34
------------------------------------------------------------ 제작자에게 문의없이 소스 공개 합니다. 문제될시 삭제 토록 하겠습니다. 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
오늘은 메뉴를 설정하고 활용하는 방법에 대해 올립니다.
미리 말씀드리는데 많이 빈약합니다;


들어가기 전에.. ( if 문을 아시면 건너뛰세요 )
내용 보기... 닫기
혹시나 해서 if문에 대한 간단한 예제 하나 들어보고 가겠습니다.


<!--@if($layout_info->title)-->홈타이틀이 등록 되어 있습니다.<!--@end-->

무슨 뜻일까요. $layout_info->title 의 내용이 있으면 "홈타이틀이 등록 되어 있습니다." 라는 문구가 출력됩니다.


<!--@if(!$layout_info->title)-->홈타이틀이 등록 되어 있지 않습니다.<!--@end-->

$layout_info->title 의 내용이 없으면 "홈타이틀이 등록 되어 있지 않습니다." 라는 문구가 출력됩니다.


하나로 합쳐 볼까요?

<!--@if($layout_info->title)-->
홈타이틀이 등록 되어 있습니다.
홈타이틀은 "{$layout_info->title}" 입니다.
<!--@else-->
홈타이틀이 등록 되어 있지 않습니다.
<!--@end-->


하나 더 예를 들겠습니다.

{@ $a = "10" }
{@ $b = "5" }

$a = {$a}
$b = {$b}

$a + $b = {$a + $b}
$a - $b = {$a - $b}
$a * $b = {$a * $b}
$a / $b = {$a / $b}

<!--@if($a > $b)-->
{@ $c = $a - $b }
$a가 $b보다 {$c} 만큼 큽니다.
<!--@elseif($a == $b)-->
$a와 $b는 같습니다.
<!--@else-->
{@ $c = $b - $a }
$b가 $a보다 {$c} 만큼 큽니다.
<!--@end-->


여기까지 하고 이제 메뉴를 다뤄 보도록 하겠습니다. 직접 작성해 보시면 쉽습니다.


zbxe 레이아웃에서 메뉴 사용 절차.

(1) chochobo 레이아웃의 info.xml 에서 사용할 메뉴의 정보을 작성.

(2) chochobo 레이아웃관리페이지에서 미리 구성된 메뉴를 연결.

(3) layout.html 에서 등록한 메뉴를 불러온 후, 입맛(?)에 맞게 수정하여 사용.



위 세 단계만 거치면 됩니다. 차례대로 자세히 알아보죠.

(1) chochobo 레이아웃의 info.xml 에서 사용할 메뉴의 정보을 작성합니다.

zbxe/chochobo/conf/info.xml 파일을 열어 밑 부분을 보시면,
<menus>
<menu name="main_menu" default="true">
<title xml:lang="ko">메인 메뉴</title>
<maxdepth>3</maxdepth>
</menu>
</menus>

위 부분이 있습니다. <extra_vars>와 </extra_vars> 사이에 내용물 리스트 추가 했던거 기억 나시죠?
메뉴도 <menus>와 </menus> 사이에 비슷한 방식으로 추가 작성하면 됩니다.
대충 살펴 볼까요?

name은 영문으로 작성하시되 다른 <menu>의 name과 중복되면 안됩니다. 이 name을 이용해 메뉴를 불러와야 하니까요.
default=true 는 레이아웃에 사용할 기본메뉴라는 것을 말하는 것이고요, 기본메뉴는 하나면 되겠죠?
maxdepth 는 레이아웃에서 지원하는 메뉴의 최대 단계(depth)를 말합니다.

홈 (1단계메뉴)
커뮤니티 (2단계뉴)
자유게시판 (3단계메뉴)
질답게시판 (3단계메뉴)

이런 메뉴가 있다면 depth가 3 입니다.

가령, depth가 1인 하단 메뉴(name: bottom_menu)를 추가한다면 아래와 같이 작성 하시면 됩니다.

<menus>
<menu name="main_menu" default="true">
<title xml:lang="ko">메인 메뉴</title>
<maxdepth>3</maxdepth>
</menu>
<menu name="bottom_menu">
<title xml:lang="ko">하단 메뉴</title>
<maxdepth>1</maxdepth>
</menu>
</menus>


이렇듯 메뉴의 수가 많으면 레이아웃 작성하는데 손은 고생하겠지만 레이아웃에서 사용할 수 있는 메뉴의 수는 제한이 없다고 할 수 있습니다.


(2) chochobo 레이아웃관리페이지에서 미리 구성된 메뉴를 연결.

info.xml에서 지정한 name 을 가진 메뉴에 연결할 메뉴를 선택하시고 저장 하세요.
여기까지면 기본적인 설정은 끝이고 layout.html에서 불러와서 사용하는 것만 남았습니다.


(3) layout.html 에서 등록한 메뉴를 불러온 후, 입맛(?)에 맞게 수정하여 사용.

메뉴를 구성하는 부분에 대한 설명 부분인데 내용이 많이 빈약합니다.
(4)로 바로 가셔서 몇 개의 메뉴 타입 중 필요한 것만 복사-붙이기 신공으로 이용하셔도 되겠습니다.

먼저 우리가 info.xml 에서 등록한 main_menu 라는 name 을 가진 메뉴를 불러오도록 하겠습니다.
우선 가장 기본적인 형태의 1단계 메뉴를 불러오는 공식입니다.

<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
<a href="{$val['href']}">{$val['text']}</a>
<!--@end--><!--@end-->
일단, foreach 문은 배열값을 가진 변수를 이용한 반복문인데요(정확할라나;;;;) 가장 중요한 것은 빨간 글씨 부분입니다. info.xml에서 지정해줬던 name 값을 그대로 적어 주셔야 합니다. 그리고 foreach도 if와 같이, 쓸 때는 꼭 <!--@end-->로 끝을 알려줘야 합니다. 두 사항만 조심하시고
나머지 메뉴의 사용과 관련해 여러분들이 주로 이용할 부분은 흰색 바탕의 많이 보던 태그 부분 입니다.

위 공식 3 줄만 작성하면
예전에는 아래처럼 손수 작성해야할
메인메뉴를 구성하는 모든 메뉴의 정보와 링크가 자동으로 생성 됩니다.

<a href="http://chochobo.com/zbxe/">홈</a>
<a href="http://chochobo.com/zbxe/notice">공지사항</a>
<a href="http://chochobo.com/zbxe/freeboard">자유게시판</a>

편리하죠? 메뉴의 수가 많아질수록 그 위력을 발휘할 것입니다.

공식에서 info.xml 에서 작성한 다른 name 으로만 바꾼다면 해당되는 메뉴의 리스트가 출력됩니다.

메뉴를 다루는데 있어 여러분이 알아두면 유용한 변수가 몇 가지 있습니다.
$val['node_srl'] : 메뉴의 노드 시리얼 (자신이 속한 상위메뉴를 지정할 때 사용할 수 있다. 트리메뉴 응용 및 적용시 유용하다.)
$val['text'] : 메뉴의 이름 (ex. 자유게시판)
$val['href'] : 메뉴의 경로 (ex. http://chochobo.com/zbxe/mid=freeboard)
$val['url'] : 메뉴의 mid 값 (ex. freeboard)
$val['seleted'] : 사용자에 의해 선택된(클릭된) 메뉴인가를 알수 있게 해준다.
$val['expand'] : 메뉴 "펼침" 옵션이 체크된 상태인가. 펼침 체크 됐으면 Y , 아니면 N 값을 갖으며 N 가 기본값.
$val['open_window'] : 메뉴 "새창 열기" 옵션이 체크된 상태인가. 새창 열기 체크 됐으면 Y , 아니면 N 값을 갖으며 N 가 기본값.
$val['normal_btn'] : 해당 메뉴의 일반 이미지 경로.
$val['hover_btn'] : 해당 메뉴의 마우스오버 이미지 경로.
$val['active_btn'] : 해당 메뉴의 선택시 이미지 경로.
참고. 현재 zbxe는 아직 자체적으로 이미지메뉴기능을 제공하고 있지는 않습니다. 하지만 레이아웃 제작자가 지원할 수는 있습니다. 시간이 된다면 이미지메뉴 지원하는 메뉴 부분을 구성해보도록 하겠습니다.


이 정도만 둘러보기로 하구요, 메뉴를 좀 더 알아보고 싶은 분은 아래 내용보기을 클릭하고 보세요. 초초보님들 천천히 읽어보시고 이해안되면 그냥 스킵하세요. 어차피 메뉴 부분은 css 조금만 알면 복사-붙이기 신공으로 얼마든지 커버 가능합니다.

더 보기... 닫기
<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
<a href="{$val['href']}">{$val['text']}</a>
<!--@end--><!--@end-->

1) 위 기본 공식에 앞 시간에 링크를 통해 소개했던 리스트를 표현하는 태그인 <ul>, <li> 태그만 추가하면

<ul>
<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
<li><a href="{$val['href']}">{$val['text']}</a></li>
<!--@end--><!--@end-->
</ul>

위와 같이 변형됩니다. 메뉴도 일종의 리스트니 ul li 태그를 이용해서 묶습니다. 각각의 li 에 background 나 a 속성을 지정해줄 수 있어 얼마든지 변화무쌍한 활용이 가능합니다.

2) <!--@if($val['selected'])-->class="on"<!--@end--> 무슨 뜻일까요? 만약 이 메뉴를 선택한다면(클릭한다면) class 이름이 on 인 스타일을 적용하라는 뜻입니다. chobo.css 파일에서 on 클래스의 스타일을 지정 해주면 됩니다. 그래서

<ul>
<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
<li <!--@if($val['selected'])-->class="on"<!--@end-->><a href="{$val['href']}">{$val['text']}</a></li>
<!--@end--><!--@end-->
</ul>

이렇게 바뀝니다. 메뉴를 선택해도 메뉴 모양을 바꾸고 싶지 않을 때는 사용하지 않는 부분 입니다.

3) <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end--> 무슨 뜻일까요? 만약 새창 열기 값이 Y (freeboard 메뉴 작성시 새창 열기에 체크 했으면) 이면 새창으로 여는 스크립트를 출력하라는 것입니다. 이것도 적용해보면,

<ul>
<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
<li <!--@if($val['selected'])-->class="on"<!--@end-->><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a></li>
<!--@end--><!--@end-->
</ul>

4) 지금 메인메뉴는 1단계 밖에 없는데, 2단계, 3단계 메뉴를 추가로 넣으면 어떻게 불러 오나요?
일단, 단순화 시켜서 예를 들겠습니다.

1차메뉴 :

<ul>
<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
{@ $menu_1st = $val }
<li><a href="{$val['href']}">{$val['text']}</a></li>
<!--@end--><!--@end-->
</ul>

2차 메뉴 :

<ul>
<!--@foreach($menu_1st['list'] as $key => $val)--><!--@if($val['text'])-->
{@ $menu_2nd = $val }
<li><a href="{$val['href']}">{$val['text']}</a></li>
<!--@end--><!--@end-->
</ul>

3차 메뉴 :

<ul>
<!--@foreach($menu_2nd['list'] as $key => $val)--><!--@if($val['text'])-->
{@ $menu_3rd = $val }
<li><a href="{$val['href']}">{$val['text']}</a></li>
<!--@end--><!--@end-->
</ul>

이제 공식이 보이죠? 여기까지 해서 메뉴가 출력되는 부분에 대해서 대충 이해하도록 하구요, 아래 여러가지 메뉴 타입을 참고로 잘 활용하시기 바랍니다.

(4) 여러 가지 메뉴 타입 제시.

info.xml 에 name 이 "main_menu" 인 3단계로 구성된 메뉴를 기준으로 작성합니다.


1) 1단계 타입 : 제로보드 홈페이지의 하단 메뉴처럼 1단계 메뉴만 사용하실 때 쓰시면 됩니다.


<ul>
<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
<li><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a></li>
<!--@end--><!--@end-->
</ul>


2) 1단계 - 2,3 단계 타입1 : 제로보드의 메인메뉴에 쓰이는 메뉴 형태 입니다. 2차 메뉴를 선택해야 3차 메뉴가 나오죠.

<!-- main_menu 1차 시작 -->
<ul>
<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
<!--@if($val['selected'])-->{@ $menu_1st = $val }<!--@end-->
<li><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a></li>
<!--@end--><!--@end-->
</ul>
<!-- main_menu 2차 시작 -->
<!--@if($menu_1st)-->
<ul>
<!--@foreach($menu_1st['list'] as $key => $val)--><!--@if($val['text'])-->
<li><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a>

<!-- main_menu 3차 시작 -->
<!--@if($val['selected'])-->
<!--@foreach($val['list'] as $k => $v)--><!--@if($v['text'])-->
<li><a href="{$v['href']}" <!--@if($v['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$v['text']}</a></li>

<!--@end--><!--@end-->
<!--@end-->
</li>
<!--@end--><!--@end-->
</ul>
<!--@end-->


3) 1단계 - 2,3단계 타입2 : 제로보드의 메인메뉴에 쓰이는 메뉴 형태지만 2차 메뉴 선택에 상관 없이 3차 메뉴가 모두 출력됩니다.

<!-- main_menu 1차 시작 -->
<ul>
<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
<!--@if($val['selected'])-->{@ $menu_1st = $val }<!--@end-->
<li><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a></li>
<!--@end--><!--@end-->
</ul>
<!-- main_menu 2차 시작 -->
<!--@if($menu_1st)-->
<ul>
<!--@foreach($menu_1st['list'] as $key => $val)--><!--@if($val['text'])-->
<li><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a>

<!-- main_menu 3차 시작 -->
<!--@if($val['list'])-->
<!--@foreach($val['list'] as $k => $v)--><!--@if($v['text'])-->
<li><a href="{$v['href']}" <!--@if($v['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$v['text']}</a></li>
<!--@end--><!--@end-->
<!--@end-->
</li>
<!--@end--><!--@end-->
</ul>
<!--@end-->


4) 1,2 단계 - 3단계 타입 : 1,2단계는 먼저 보여주고, 2단계 메뉴를 선택하면 선택한 2단계 메뉴에 속한 3단계 메뉴를 따로 보여줍니다.

<!-- main_menu 1차 시작 -->
<ul>
<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
<li><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a>

<!-- main_menu 2차 시작 -->
<!--@if($val['list'])-->
<!--@foreach($val['list'] as $k => $v)--><!--@if($v['text'])-->
<!--@if($v['selected'])-->
{@ $menu_2nd = $v }
<!--@end-->
<li><a href="{$v['href']}" <!--@if($v['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$v['text']}</a></li>

<!--@end--><!--@end-->
<!--@end-->
</li>
<!--@end--><!--@end-->
</ul>
<!-- main_menu 3차 시작 -->
<!--@if($menu_2nd)-->
<ul>
<!--@foreach($menu_2nd['list'] as $key => $val)--><!--@if($val['text'])-->
<li><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a></li>
<!--@end--><!--@end-->
</ul>
<!--@end-->

5) 1,2,3 단계 타입 : 모든 메뉴리스트를 순서대로 출력합니다. 트리메뉴를 만드는데 유용한 타입 입니다.

<ul>
<!-- 1단계 메뉴 시작 -->
<!--@foreach($main_menu->list as $key => $val)--><!--@if($val['text'])-->
<li><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a>

<!-- 2단계 메뉴 시작 -->
<!--@foreach($val['list'] as $ke => $va)--><!--@if($va['text'])-->
<li><a href="{$va['href']}" <!--@if($va['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$va['text']}</a>

<!-- 3단계 메뉴 시작 -->
<!--@foreach($va['list'] as $k => $v)--><!--@if($v['text'])-->
<li><a href="{$v['href']}" <!--@if($v['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$v['text']}</a></li>

<!--@end--><!--@end-->
</li>
<!--@end--><!--@end-->
</li>
<!--@end--><!--@end-->
</ul>

또 어떤 형태가 더 있을까요? 올려주시면 작성해 넣도록 하겠습니다.

보기에 복잡하지만, 여러분들이 손댈 것은
1. 1단계 메뉴에 info.xml 에서 지정한 메뉴의 name 을 정확히 기재하는 것과
2. 각 타입의 회색 바탕의 3줄 정도의 내용을 활용하는 것입니다.

이번에는 조금이라도 쉽게 설명 드리기가 너무 어렵네요. ㅠㅠ

초초보레이아웃의 메뉴를 3단계까지 구성하시고 위의 몇가지 타입의 코드들을 layout.html에 복사-붙이기 하신 후 잘나오나 직접 확인해 보세요. 미리보기 클릭

다음 시간에는 본문 불러오는 방법과 가장 기본적인 레이아웃 하나 예시하고 팁 게시를 마치도록 하겠습니다.
기본적인 레이아웃을 보면 메뉴에 대해 감이 더 올거라 생각합니다.
by Anna 안나 2008. 1. 23. 17:14