웹마스터 팁

http://www.zeroboard.com/?mid=zbxe_user_tip&search_target=content&search_keyword=%2F%2F+%EB%A1%A4%EC%98%A4%EB%B2%84+2%EC%B0%A8%EB%A9%94%EB%89%B4+%EB%A7%8C%EB%93%A4%EA%B8%B0&document_srl=16790587
기존에 우야노님의 팁을 보안한것입니다.

상단 메뉴에 따라 다니는 레이어 메뉴가 기존에는
그 위치가 왼쪽에만 있었고 그외에 팁에서도 그 위치를 조정해 주는 팁이 있었지만
디테일하게 조정할수가 없었습니다. 그래서 제로보드로는 사이트 제작을 잘하지 않고 있었는데 이번 클라이언트께서 제로보드XE로 사이트를 기존에 운영중인데 디자인을 사이트 전체적으로 바꾸고 싶다고 의뢰가 들어와서 처음으로 ㅋ XE를 접하게 되었네요.
제로보드4때는 정감있고 사용자들이 많아 저도 많이 쓰곤 했는데 ^^

아래소스는 이번에 프로젝트를 진행하며 만들어본 상단 레이어 위치 조정 응용법입니다.
미력하나마 많은 XE사용자분들께 도움이 되셨으면 합니다.

CSS는 레이아웃 스타일시트에 기존GNB부분에 덮어씌워 주시면 되고요.
HTML부분은 레이아웃에 기존GNB부분에 덮어씌우시면 됩니다.

적용예 : http://www.babodream.co.kr/   


CSS

#top_menu {position:relative; width:882px; top:0px; margin-left:38px; z-index:99;}
#gnb {position:absolute; top:63px; left:0px; height:40px; overflow:hidden; white-space:nowrap; margin-bottom:0px;}
#gnb li {float:left; list-style:none; position:relative; white-space:nowrap; }
.gnb_sub0 {position:absolute; top:103px; left:-20px; height:24px; overflow:hidden; white-space:nowrap;}
.gnb_sub0 li {float:left; list-style:none; padding-left:2px; position:relative; left:-2px; white-space:nowrap;}
.gnb_sub0 li a {display:block; float:left; padding:6px 3px 0 3px; height:24px; white-space:nowrap; text-decoration:none; font:11px 돋움; color:#565759; letter-spacing:-0.1em;}
.gnb_sub0 li a:hover, 
.gnb_sub0 li a:focus {color:#F72E00;}
.gnb_sub0 li.on a, .gnbin li.on a:hover {color:#F72E00;}
.gnb_sub1 {position:absolute; top:103px; left:-20px; height:24px; overflow:hidden; white-space:nowrap;}
.gnb_sub1 li {float:left; list-style:none; padding-left:2px; position:relative; left:-2px; white-space:nowrap;}
.gnb_sub1 li a {display:block; float:left; padding:6px 3px 0 3px; height:24px; white-space:nowrap; text-decoration:none; font:11px 돋움; color:#565759; letter-spacing:-0.1em;}
.gnb_sub1 li a:hover, 
.gnb_sub1 li a:focus {color:#F72E00;}
.gnb_sub1 li.on a, .gnbin li.on a:hover {color:#F72E00;}
.gnb_sub2 {position:absolute; top:103px; left:-40px; height:24px; overflow:hidden; white-space:nowrap;}
.gnb_sub2 li {float:left; list-style:none; padding-left:2px; position:relative; left:-2px; white-space:nowrap;}
.gnb_sub2 li a {display:block; float:left; padding:6px 3px 0 3px; height:24px; white-space:nowrap; text-decoration:none; font:11px 돋움; color:#565759; letter-spacing:-0.1em;}
.gnb_sub2 li a:hover, 
.gnb_sub2 li a:focus {color:#F72E00;}
.gnb_sub2 li.on a, .gnbin li.on a:hover {color:#F72E00;}
.gnb_sub3 {position:absolute; top:103px; left:-15px; height:24px; overflow:hidden; white-space:nowrap;}
.gnb_sub3 li {float:left; list-style:none; padding-left:2px; position:relative; left:-2px; white-space:nowrap;}
.gnb_sub3 li a {display:block; float:left; padding:6px 3px 0 3px; height:24px; white-space:nowrap; text-decoration:none; font:11px 돋움; color:#565759; letter-spacing:-0.1em;}
.gnb_sub3 li a:hover, 
.gnb_sub3 li a:focus {color:#F72E00;}
.gnb_sub3 li.on a, .gnbin li.on a:hover {color:#F72E00;}
.gnb_sub4 {position:absolute; top:103px; left:-20px; height:24px; overflow:hidden; white-space:nowrap;}
.gnb_sub4 li {float:left; list-style:none; padding-left:2px; position:relative; left:-2px; white-space:nowrap;}
.gnb_sub4 li a {display:block; float:left; padding:6px 3px 0 3px; height:24px; white-space:nowrap; text-decoration:none; font:11px 돋움; color:#565759; letter-spacing:-0.1em;}
.gnb_sub4 li a:hover, 
.gnb_sub4 li a:focus {color:#F72E00;}
.gnb_sub4 li.on a, .gnbin li.on a:hover {color:#F72E00;}
.gnb_sub5 {position:absolute; top:103px; left:-14px; height:24px; overflow:hidden; white-space:nowrap;}
.gnb_sub5 li {float:left; list-style:none; padding-left:2px; position:relative; left:-2px; white-space:nowrap;}
.gnb_sub5 li a {display:block; float:left; padding:6px 3px 0 3px; height:24px; white-space:nowrap; text-decoration:none; font:11px 돋움; color:#565759; letter-spacing:-0.1em;}
.gnb_sub5 li a:hover, 
.gnb_sub5 li a:focus {color:#F72E00;}
.gnb_sub5 li.on a, .gnbin li.on a:hover {color:#F72E00;}
.gnb_sub6 {position:absolute; top:103px; right:-20px; height:24px; overflow:hidden; white-space:nowrap;}
.gnb_sub6 li {float:left; list-style:none; padding-left:2px; position:relative; left:-2px; white-space:nowrap;}
.gnb_sub6 li a {display:block; float:left; padding:6px 3px 0 3px; height:24px; white-space:nowrap; text-decoration:none; font:11px 돋움; color:#565759; letter-spacing:-0.1em;}
.gnb_sub6 li a:hover, 
.gnb_sub6 li a:focus {color:#F72E00;}
.gnb_sub6 li.on a, .gnbin li.on a:hover {color:#F72E00;}
.gnb_sub7 {position:absolute; top:103px; left:60px; height:24px; overflow:hidden; white-space:nowrap;}
.gnb_sub7 li {float:left; list-style:none; padding-left:2px; position:relative; left:-2px; white-space:nowrap;}
.gnb_sub7 li a {display:block; float:left; padding:6px 3px 0 3px; height:24px; white-space:nowrap; text-decoration:none; font:11px 돋움; color:#565759; letter-spacing:-0.1em;}
.gnb_sub7 li a:hover, 
.gnb_sub7 li a:focus {color:#F72E00;}
.gnb_sub7 li.on a, .gnbin li.on a:hover {color:#F72E00;}
.gnb_sub8 {position:absolute; top:103px; left:-68px; height:24px; overflow:hidden; white-space:nowrap;}
.gnb_sub8 li {float:left; list-style:none; padding-left:2px; position:relative; left:-2px; white-space:nowrap;}
.gnb_sub8 li a {display:block; float:left; padding:6px 3px 0 3px; height:24px; white-space:nowrap; text-decoration:none; font:11px 돋움; color:#565759; letter-spacing:-0.1em;}
.gnb_sub8 li a:hover, 
.gnb_sub8 li a:focus {color:#F72E00;}
.gnb_sub8 li.on a, .gnbin li.on a:hover {color:#F72E00;}




HTML

    <div id="top_menu">
     <!--GNB-->
     <ul id="gnb">
      <!-- main_menu 1차 시작 -->
      {@$gnb_count = 0;}
      <!--@foreach($main_menu->list as $key => $val)--><!--@if($val['link'])-->
       <!--@if($val['selected'])-->
        {@ $menu_1st = $val }
       <!--@end-->
       <li id="gnbli{$gnb_count}" <!--@if($val['selected'])-->class="on"<!--@end--> onmouseover="gnbinToggle({$gnb_count}, this)" ><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['link']}</a></li>{@$gnb_count++;}<!--@end--><!--@end-->
      <!-- main_menu 1차 끝 -->
     </ul>
     <!--//GNB-->
     <script type="text/javascript">
     var gnb_count = {$gnb_count};
     </script>
     <!-- 2차 메뉴 -->
      {@$gnb_count = 0;}
      <!--@foreach($main_menu->list as $mkey => $mval)-->
     <!--@if($mval['text'])-->
       <!-- 왼쪽 2차 메뉴 -->
       <!--@if($mval['selected'])-->
       <ol id="gnb{$gnb_count}" class="gnb_sub{$gnb_count}" style="display:block;">
      <!--@if(!$mval['list'])--><li></li><!--@end-->
       <!--@foreach($mval['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-->><img src="/zbxe/layouts/homebox/images/default/arrow.gif">{$val['text']}</a></li>
       <!--@end--><!--@end-->
       </ol>
     <script type="text/javascript">
     var gnb_count_now = {$gnb_count};
     reset_menu();
     </script>
      <!--@else-->
       <ol id="gnb{$gnb_count}" class="gnb_sub{$gnb_count}" style="display:none;">
      <!--@if(!$mval['list'])--><li></li><!--@end-->
       <!--@foreach($mval['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-->><img src="/zbxe/layouts/homebox/images/default/arrow.gif">{$val['text']}</a></li>
       <!--@end--><!--@end-->
       </ol>
      <!--@end-->
      {@$gnb_count++;}
      <!--@end-->
     <!--@end-->
    </div>


javascript

// Hide And Show Toggle
var cc=0
function hideShow(id) {
    if (cc==0) {
        cc=1
        document.getElementById(id).style.display="none";
    } else {
        cc=0
        document.getElementById(id).style.display="block";
    }
}
// Show And Hide Toggle
var cc=0
function showHide(id) {
    if (cc==0) {
        cc=1
        document.getElementById(id).style.display="block";
    } else {
        cc=0
        document.getElementById(id).style.display="none";
    }
}
// Local Navigation Toggle
function lnbToggle(id) {
 for(num=1; num<=3; num++) document.getElementById('D3MG'+num).style.display='none'; //D4MG1~D4MG3 까지 숨긴 다음
 document.getElementById(id).style.display='block'; //해당 ID만 보임
}
// IS
function chkIsKind(key, value) {
    showHide('selectOrder');
    xGetElementById('search_target'+key).checked = true;
    xInnerHtml('search_target_label', value);
}
// 롤오버 2차메뉴 만들기
// Brower
var browserType=''; 
if(navigator.userAgent.indexOf("MSIE") >-1) {
   browserType = 'IE'; 
} else if(navigator.userAgent.indexOf("Firefox") >-1) {
   browserType = 'FF'; 
} else {
   browserType = 'OTHER'; 
}
function gnbinToggle(id, gnbblock) {
 if(browserType == 'FF') {
  gnbinToggleFF(id, gnbblock);
 } else {
  gnbinToggleIE(id, gnbblock);
 }
}
// Local Navigation Toggle
function gnbinToggleIE(id, gnbblock) {
 for(num=0; num<gnb_count; num++) {
  document.getElementById('gnb'+num).style.display='+
 'none';              // 2차 메뉴
  document.getElementById('gnbli'+num).setAttribute('className', 'off');  // 1차 메뉴
 }
 var sub_1 = document.getElementById('gnbli'+id);     // 1 차메뉴 
 var sub_2 = document.getElementById('gnb'+id);     // 2 차메뉴
 document.getElementById('gnb'+id).style.display = 'block';
 gnbblock.className = "on";
 var sub_2_left =sub_1.offsetWidth * (id+0.5) - sub_2.offsetWidth /2;
 // 2차메뉴 크기에 따른 위치 조절
 if (sub_2_left < 0)
  sub_2_left = 0;
 else if( (sub_2_left + sub_2.offsetWidth) > 950 )
  sub_2_left=(950 - sub_2.offsetWidth);
  sub_2.style.marginLeft = sub_2_left + 'px';     
}
// Local Navigation Toggle
function gnbinToggleFF(id, gnbblock) {
 for(var num=0; num<gnb_count; num++) {
  document.getElementById('gnb'+num).style.display='none'; // 2차 메뉴
  document.getElementById('gnbli'+num).className = null;  // 1차 메뉴
 }
 var sub_1 = document.getElementById('+
 'gnbli'+id);     // 1 차메뉴 
 var sub_2 = document.getElementById('gnb'+id);     // 2 차메뉴
 document.getElementById('gnb'+id).style.display = '';
 gnbblock.className = "on";
 var sub_2_left =sub_1.offsetWidth * (id+0.5) - sub_2.offsetWidth /2;
 // 2차메뉴 크기에 따른 위치 조절
 if (sub_2_left < 0)
  sub_2_left = 0;
 else if( (sub_2_left + sub_2.offsetWidth) > 950 )
  sub_2_left=(950 - sub_2.offsetWidth);
  sub_2.style.marginLeft = sub_2_left + '+
 'px';     
}
function reset_menu()
{
   
     var sub_1 = document.getElementById('gnbli'+gnb_count_now);     // 1 차메뉴 
  var sub_2 = document.getElementById('gnb'+gnb_count_now);     // 2 차메뉴
  var sub_2_left =sub_1.offsetWidth * (gnb_count_now+0.5) - sub_2.offsetWidth /2;
 // 넓이가 0미만일경우 0
 if (sub_2_left < 0)
  sub_2_left = 0;
 else if( (sub_2_left + sub_2.offsetWidth) > 950 )
  sub_2_left=(950 - sub_2.offsetWidth);
  sub_2.style.marginLeft = sub_2_left + 'px'+
 ';     
}

제목 글쓴이 날짜
|웹폰트(네이버 맑은 고딕, 나눔고딕) 적용하기 [1] 다큰왕자 2014.03.18
호환성보기 명령어 모음 다큰왕자 2014.03.17
아이피, 도메인 차단하는 방법 ByteCMC 2014.03.16
모바일 웹 팁 natureweb 2014.03.13
css3를 이용한 button 입니다. Ansi™ 2014.03.13
XE 업로드 먹통시 1.7.8 버전 - 추가로 질문포함. [1] artsmi.myid.net 2014.03.12
관리자 비밀번호 분실시 phpmyadmin을 이용하여 재설정하는 방법 [6] elancer 2014.03.11
폰갭 처리시 뒤로가기 종료 처리 방법 웹빌드 2014.03.11
XE 어플 개발시 키보드위에 입력창 올리기 [4] 웹빌드 2014.03.11
사이트접속시 모바일기기 접속이면 설정한 페이지로 이동시키기 홈피닥터 2014.03.09
홈페이지 주소창 상세 링크 안보이게 설정 헤이즈디자인 2014.03.09
xp어플 개발시 사진 회원 바로잡아 주는 함수 웹빌드 2014.03.09
게시판에 대해 닉네임,이름 등의 정렬을 추가하는 방법 [1] sejin7940 2014.03.09
게시판 접속시에 첫(제일 최근) 게시물이 보여지게 하기 [16] foret 2014.03.08
날짜를 출력하는 간단한 소스입니다 낮은자 2014.03.07
[jQuery] 클릭하면 내용이 사라지는 방법 낮은자 2014.03.07
[초보]자신의 컴퓨터에 서버설치 [2] file 낮은자 2014.03.07
중국대륙 IP 차단방법 [5] 낮은자 2014.03.07
한글, 영문, 숫자, 특수문자 체크하는 함수 ByteCMC 2014.03.07
자주 쓰이는 정규표현식 모음 투니페이퍼 2014.03.06