2009-08-16 4 views
5

IE7에 문제가 있습니다.IE7은 창 크기가 조정되거나 탭간에 전환 될 때까지 페이지의 일부분을 렌더링하지 않습니다.

"메인 콘텐츠"영역 스위치 만 남겨두고 페이지에 고정 된 머리글과 사이드 패널을 유지하기위한 고정 된 레이아웃을 가지고있어 행복하게 내용을 스크롤 할 수 있습니다.

layout on Twitpic http://twitpic.com/show/thumb/e32q7.png

이 레이아웃은 IE6과 IE8 완벽하게 잘 작동하지만, 때로는 한 페이지는 "주요 내용"영역에 표시해야 할 내용을 "숨어"시작할 수 있습니다.

페이지로드가 잘 끝납니다. 분할 초 IE7은 기본 콘텐츠를 잘 렌더링하고 다음보기에서 그것을 어딘가에 숨길 것입니다. 또한 "주요 콘텐츠"영역을 강제로 설정할 충분한 콘텐츠가있을 때만이 문제가 발생하는 것으로 보입니다. 스크롤.

창 크기를 조정하거나 열려있는 다른 탭으로 전환하고 다시 뒤로 이동하면 IE7이 원래 의도대로 페이지를 표시합니다.

호환성 모드에서 IE8과 동일한 문제가 발생하지만 IE8 모드에서는 페이지가 올바르게 렌더링됩니다.

필요한 경우 기본 CSS 스타일을 붙일 수 있지만이 문제가 IE7의 알려진 문제인지 확인하고 싶습니다.

IE7에 배치 된 레이아웃 및 오버플로 스크롤에 문제가있어 일부 창이 다시 렌더링하여 이벤트 렌더링을 완료 할 때까지 페이지 렌더링을 완료하지 못하는 경우가 종종 있습니까?

마스터 페이지에 설정되어 있으므로 사이트의 여러 페이지에 똑같은 레이아웃이 사용됩니다. 이 문제가 발생한 것은이 페이지의 한 페이지뿐입니다.

정확히 같은 레이아웃을 가진 다른 페이지가 올바르게 렌더링됩니다. 메인 컨텐츠가 충분히 스크롤 되어도 스크롤 할 수 있습니다.

업데이트 : A related question이 시점에서 답변을 찾을 수 없습니다.

LATE UPDATE : 예 masterpage와 CSS를 추가하면

이 같은 레이아웃을 유의하시기 바랍니다 응용 프로그램의 모든 페이지에 대해 동일합니다. IE7에서 내 문제는 한 페이지에서만 발생합니다. 다른 모든 페이지는 IE7에서 행복하게 올바르게 렌더링됩니다. 정확히 동일한 레이아웃을 사용하는 한 페이지 만 문제가됩니다. 가끔은 "작업 공간"div에 내용을 숨 깁니다.

마스터 페이지

<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="shared_templates_MasterPage" %> 
<!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"> 
<head runat="server"> 
    <title></title> 
    <link rel="Stylesheet" type="text/css" href="~/common/yui/2.7.0/build/reset-fonts/reset-fonts.css" runat="server" /> 
    <link rel="Stylesheet" type="text/css" href="~/shared/css/layout.css" runat="server" /> 
    <asp:ContentPlaceHolder ID="head" runat="server" /> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
    <div id="app-header"> 
    </div> 
    <div id="side-panel"> 
    </div> 
    <div id="work-space"> 
    <asp:ContentPlaceHolder ID="WorkSpaceContentPlaceHolder" runat="server" /> 
    </div> 
    <div id="status-bar"> 
    <asp:ContentPlaceHolder ID="StatusBarContentPlaceHolder" runat="server" /> 
    </div> 
    </form> 
</body> 
</html> 

layout.css

html { 
    overflow: hidden; 
} 

body { 
    overflow: hidden; 
    padding: 0; 
    margin: 0; 
    width: 100%; 
    height: 100%; 
    background-color: white; 
} 

body, table, td, th, select, textarea, input { 
    font-family: Tahoma, Arial, Sans-Serif; 
    font-size: 9pt; 
} 

p { 
    padding-left: 1em; 
    margin-bottom: 1em; 
} 

#app-header { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 80px; 
    background-color: #dcdcdc; 
    border-bottom: solid 4px #000; 
} 

#side-panel { 
    position: absolute; 
    top: 84px; 
    left: 0px; 
    bottom: 0px; 
    overflow: auto; 
    padding: 0; 
    margin: 0; 
    width: 227px; 
    background-color: #AABCCA; 
    border-right: solid 1px black; 
    background-repeat: repeat-x; 
    padding-top: 5px; 
} 

#work-space { 
    position: absolute; 
    top: 84px; 
    left: 232px; 
    right: 0px; 
    padding: 0; 
    margin: 0; 
    bottom: 22px; 
    overflow: auto; 
    background-color: White; 
} 

#status-bar { 
    position: absolute; 
    height: 20px; 
    left: 228px; 
    right: 0px; 
    padding: 0; 
    margin: 0; 
    bottom: 0px; 
    border-top: solid 1px #c0c0c0; 
    background-color: #f0f0f0; 
} 

기본.영문

<%@ Page Title="Test" Language="VB" MasterPageFile="~/shared/templates/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> 

<asp:Content ID="WorkspaceContent" ContentPlaceHolderID="WorkSpaceContentPlaceHolder" Runat="Server"> 
    Workspace 
    <asp:ListView ID="DemoListView" runat="server" 
       DataSourceID="DemoObjectDataSource" 
       ItemPlaceholderID="DemoPlaceHolder"> 
    <LayoutTemplate> 
     <table style="border: 1px solid #a0a0a0; width: 600px"> 
     <colgroup> 
      <col width="80" /> 
      <col /> 
      <col width="80" /> 
      <col width="120" /> 
     </colgroup> 
     <tbody> 
      <asp:PlaceHolder ID="DemoPlaceHolder" runat="server" /> 
     </tbody> 
     </table> 
    </LayoutTemplate> 
    <ItemTemplate> 
     <tr> 
     <th><%#Eval("ID")%></th> 
     <td><%#Eval("Name")%></td> 
     <td><%#Eval("Size")%></td> 
     <td><%#Eval("CreatedOn", "{0:yyyy-MM-dd HH:mm:ss}")%></td> 
     </tr> 
    </ItemTemplate> 
    </asp:ListView> 

    <asp:ObjectDataSource ID="DemoObjectDataSource" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="DemoLogic"> 
    <SelectParameters> 
     <asp:Parameter Name="path" Type="String" /> 
    </SelectParameters> 
    </asp:ObjectDataSource> 
</asp:Content> 

<asp:Content ID="StatusContent" ContentPlaceHolderID="StatusBarContentPlaceHolder" Runat="Server"> 
    Ready OK. 
</asp:Content> 
+0

내 컴퓨터에서 작동 중 ... (IE8 컴프레서보기 사용) 아마도 문제는 데이터입니까? –

+0

왜 데이터가 중요합니까? 같은 방법으로 두 개의 스크린을 만들었습니다. 하나는 IE7에 문제가있는 것 같습니다. 데이터가 다르다고 인정하지만 여전히 사물에 왜 영향을 미치는지 알 수 없습니다. IE7에서는 창 크기를 조정하거나 탭 사이를 전환하면 (페이지를 새로 고치지 않고) 페이지를 렌더링합니다. IE7은 처음로드 될 때 페이지 렌더링을 포기하고 일부 창 이벤트 만이 "oops,이 페이지의 렌더링을 완료하지 못했습니다. 지금 제대로 렌더링해야합니다"라고 생각하는 것과 같습니다. 가장 실망 스럽다. – BlackMael

+0

말은 아마도 데이터에는 긴 html 또는 재미있는 문자가있을 수 있습니다. 정확히 똑같은 페이지를 써 보시지 만 테이블에 기록이없는 것은 어떨까요? 또한 컴퓨터에서 IE7이 어떻게 보이는지 캡쳐 화면을 통해 문제를 더 잘 이해할 수 있습니다. –

답변

11

하나의 이론 :

귀하의 CSS는, 당신의 CSS에서 IE7의 버그가있다 (는 "스타일이 적용되지 않은 내용의 플래시"라고 어떤 원인) 주요 내용 영역 후에 선언

(수 peekaboo bug)을 사용하면 내용을 숨길 수 있습니다. 추가

보십시오 : 사라지고 내용에

 
position: relative; 
min-width: 0; 

.

+0

동일한 스타일 시트 선언이있는 다른 페이지는 같은 문제가 없습니다. 실제로 문제가있는 페이지는 크기를 조정하거나 탭을 전환 할 필요없이 가끔씩 잘 렌더링됩니다. 일단 페이지에 문제가 있으면 일반적으로 문제가 계속 발생합니다. 페이지가 제대로 렌더링되는지 일관되게 결정할 수 있는지 결정할 수있는 어렵고 빠른 규칙은 없습니다. – BlackMael

+0

어딘가에 예 (CSS 및 HTML)가 있습니까? – etoleb

+0

나는 오늘 저녁에 나에게 코드가 없다는 이유로 내일 css와 html을 추가 할 것이다. – BlackMael