IE6,7 목록에서 사이드뷰 겹침 문제 대응 > 그누보드5 팁자료실

그누보드5 팁자료실

IE6,7 목록에서 사이드뷰 겹침 문제 대응 정보

마크업 IE6,7 목록에서 사이드뷰 겹침 문제 대응

본문

목차

  1. 문제인식
  2. 해결방안
  3. 관련코드
  4. 알려진 문제점

문제인식

윗 행의 사이드뷰를 클릭하면 일반적으로 사이드뷰의 항목이 일정수 이상이어서 아래 행까지 늘어지는 경우가 많습니다.
최근의 브라우저는 이 경우 윗 행에서 생성된 사이드뷰가 아래 행의 내용에 가려지지 않도록 출력해주는데, IE6,7 은 가려지는 현상이 발생하고 있습니다.
이렇게 아래 행의 내용에 사이드뷰가 가려지면 해당 영역을 클릭할 수도 없고, 글자도 겹쳐서 정확한 의미를 파악하기 어려워지기도 합니다.

해결방안

일단 문제 해결을 위해 왜 이런 현상이 나타나는지 가설을 세워보기로 합니다.
아마도 IE6,7 에서 tabletd는 다음과 같은 방법으로 랜더링(?) 되는 것으로 여겨집니다.

  1. table에서 각 행의 td는 나중에 랜더링될 수록 높은 z-index 값을 갖을 것이다.
  2. 시각적으로 윗 행의 td는 아래 행에 위치한 td 보다 z-index 값이 작을 것이다.
  3. 그래서 윗 행의 td 에 포함된 사이드뷰sv 역시 아래 행에 위치한 td 보다 z-index 값이 작을 것이다.

그렇다면, 윗 행에서 사이드뷰를 포함한 tdz-index 값을 아래 행에서 사이드뷰를 포함한 td 보다 크게 만들어주면 되지 않을까요?

관련코드

게시판 basic 스킨을 예로 들면,
/skin/board/basic/list.skin.php 에서 이름 출력 부분 tdclass="td_name"을 지정하기만 하면 됩니다.

<td class="td_name"><?=$list[$i]['name']?></td>

이때, class를 다르게 지정하고 싶다면, 지정한 class에 맞춰, /tail.sub.php 의 다음 부분도 수정을 해주셔야 합니다.

<!-- ie6,7에서 사이드뷰가 게시판 목록에서 아래 사이드뷰에 가려지는 현상 수정 -->
<!--[if lte IE 7]>
<script>
$(function() {
    var $td_name = $(".td_name"); // 이 부분의 $(".td_name"); 을 지정한 class 로 수정
    var count = $td_name.length;

    $td_name.each(function() {
        $(this).css("z-index", count);
        $(this).css("position", "relative");
        count = count - 1;
    });
});
</script>
<![endif]-->

게시판 목록과 동일한 유형으로 사이드뷰가 포함되는 부분에서는 모두 위의 방법을 따라 마크업하시면 됩니다.

알려진 문제점

  1. IE6 에서 border-collapse:collapse 스타일을 가진 tableposition:relative 스타일을 가진 td 가 포함될 경우 일부 스타일이 깨지는 문제점이 보고되었습니다. IE6 버그리포트
    이 문제점을 해결하시려면 tableborder-collapse:collapseborder-collapse:separate로 변경하시면 됩니다.
추천
0

댓글 2개

전체 2,431 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT