웹마스터 팁

제로보드 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