웹마스터 팁

제로보드 XE를 사용하면서 이상한 버그(?)가 있다고 생각했다. 로그인 위젯 아래 2차 메뉴 있는 자리에 지맘대로 여백이 생겼다 말았다 하는 것이 바로 그것이다. 그러나 이제 알고보니, 이것은 1차 메뉴 아래에 2차 메뉴가 정해지지 않았을때 생기는 현상으로서 제로보드 자체의 버그라고 할 수는 없을 것 같다. 특히 이러한 현상은 익스플로러에서만 일어나고 파이어폭스에서는 일어나지 않는다.

이렇게 1차 메뉴 아래에 2차 메뉴가 정해지지 않았을때 익스플로러에서 원치 않는 여백이 생기는 현상은 비록 제로보드 자체의 버그라 할 수는 없지만, 그래도 사이트를 제작하는 사람에게는 매우 당혹스러운 일이 아닐 수 없다. 그러면 어떻게 이 문제를 해결할 수 있을까?  나는 컴퓨터나 웹 관련 전공자는 아니기에 세련된 방법은 모른다. 그러나 제로보드 XE 고수분들이 이 문제에 대한 더욱 세련된 방법이 있으면 소개해 주기를 기대하면서, 여기서는 이 문제를 해결한 나의 방법을 공개하고자 한다.

레이아웃 파일(layouts.html)을 보면 다음과 같은 구절이 있다. 이것은 1차 메뉴가 정해지고 나서 하위 메뉴(2차 이하의 메뉴)가 있을때 그것을 불러오는 소스이다.

   <!--@if($menu_1st)-->
   <ol id="lnb">
                {@ $idx = 1 }
                <!--@foreach($menu_1st['+
 '+
 'list'] as $key => $val)--><!--@if($val['link'])-->
    <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['link']}</a>
                    <!-- main_menu 3차 시작 -->
                    <!--@if($val['list'] && ($val['expand']=='Y'||$val['selected']) )-->
     <ul>
                    <!--@foreach($val['list'] as $k => $v)--><!--@if($v['link'])-->
      <li <!--@if($v['selected'])-->class="on"<!--@end-->><a href="{$v['href']}" <!--@if($v['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$v['link']}</a></li>
                    <!--@end--><!--@end-->
     </ul>
                    <!--@end-->
    </li>
                {@$idx++}
                <!--@end--><!--@end-->
   </ol>
   <!--@end-->

그런데 문제는 1차 메뉴 아래에 하위 메뉴(2차 이하의 메뉴)가 없을때 생기는 것이므로,  바로 이 if조건문 안에 '하위 메뉴(2차 이하의 메뉴)가 없는 1차 메뉴'가 아닐 경우에만 조건문을 실행하도록 함으로써 문제를 해결 할 수 있다.

여기서 내가 사용한 방법은 단순히 하위 메뉴를 가지지 않은 1차 메뉴의 미드(mid)를 if조건문 안에 직접 적는 것이었다. (매우 무식한 방법일지 모르나, 사실 하위 메뉴를 가지지 않는 1차 메뉴는 몇개 되지 않을 것이다.) 예를 들면, 내 홈페이지의 경우 상단에 나타난 1차 메뉴 중에서 '메인($mid는 zeroceo)'과 '프롤로그($mid는 prologue)'는 하위 메뉴를 가지고 있지 않다. 이 경우 다음과 같이 제일 위에 있는 if조건문 안에 '미드가 제로시오와 프롤로그가 아닐 경우라는 조건'을 삽입함으로써 문제를 해결 할 수 있었다.

 <!--@if($menu_1st)-->
 <!--@if($menu_1st && $mid != 'zeroceo' && $mid != 'prologue' )--> 

ps) 제 홈페이지에 있는 글을 그대로 퍼온 것이라 경어를 쓰지 않았습니다. 이해해 주세요 ^^

태그 연관 글
  1. [2018/02/12] 묻고답하기 레이아웃 테이블 여백(공백) 문제 by 개구리
  2. [2015/05/02] 묻고답하기 CKEditor에서 "소스보기"에서

    사이에 여백을 어떻게 없애나요? by Paul *11

  3. [2010/09/04] 묻고답하기 외부페이지 등록 시 페이지 상단/하단에 여백이 생깁니다... ㅜㅜ by 인텔리지 *3
  4. [2010/03/13] 웹마스터 팁 padding, margin, font, border by 된장맛껌 *2
  5. [2009/07/14] 묻고답하기 페이지 젤 위에 빈틈없앨려면(스크롤)... by Jiyoung540
제목 글쓴이 날짜
나만의 미니홈 만들기 ㅡ list.php , 디비 테이블 생성 [6] file 예뜨락 2004.11.26
나만의 미니홈 만들기 ㅡ 미니홈 생성 페이지 [3] file 예뜨락 2004.11.20
나만의 미니홈 만들기 ㅡ 기초적인 관리 페이지 [3] file 예뜨락 2004.11.20
나만의 미니홈 만들기 ㅡ 메인 기초 설계3 .레이아웃 [2] file 예뜨락 2004.11.19
나만의 미니홈 만들기 ㅡ 메인 기초 설계 .home.php [12] file 예뜨락 2004.11.17
나만의 미니홈 만들기 ㅡ 글쓰기에 앞서... [1] 예뜨락 2004.11.17
PHP프로그램에 간단한 인증(로그인) 걸기. [15] Lepas 2004.08.09
히어닥 문법 활용 [14] ☺심심 2004.07.13
해당 ftp 파일 서버에서 다른곳의 ftp 파일 서버로 백업용도 및 전송하기.. [9] 김동욱 2004.05.30
제로카운터 쉽게 설치하기 [26] file 대류 2004.01.17
세션을 이용한 관리자 모드 구축하기 3강 [6] 박정호 2003.12.09
세션을 이용한 관리자 모드 구축하기 2강 [6] 박정호 2003.12.09
세션을 이용한 관리자 모드 구축하기 1강(중복?) 박정호 2003.12.09
한꼬마의 제로보드 이용법 (sql로 테이블 호출) [2] 한꼬마 2003.11.26
[Lotto 6/45] 로또 추첨 구현하기~ [5] file 전원주 2003.11.21
한꼬마의 제로보드 활용방법 (로그인 값 알아 보기) [3] 한꼬마 2003.11.20
홈페이지 관리자 모드 구축하기 (HTTP 인증, 중복 맞음) [10] file 9000㎒ 2003.11.01
알기쉬운 웹용 MySQL 관리도구, phpMyAdmin 설치하기 [10] 허창원 2003.10.11
제로보드 + MSN 메신저 (작성글에 리플이나 코멘트가 달리면 MSN으로 알려준다?) [18] file HungryMania 2003.08.01
세션파일 크기/만들어진 시간체크해서 정해진 시간이후엔 파일 지우기?;; (라고 써야되낭? ;;) [6] 다오케이 2003.05.12