2010-04-22 8 views
1

내 CSS에 문제가있어서 2 열 레이아웃의 오른쪽 열이 바닥 글을 넘어서 확장됩니다. 나는 clear: both; 특성을 가지고 노는 시도했지만 나는 그것이 동작하지 않습니다CSS 플로트 열이 바닥 글 위로 확장됩니다.

.. alt text http://www.blazeware.net/examples/cssFloat/cssProblem.PNG

두 번째 열은 ID를 모두 열 클래스 column를 사용 column2 있습니다. 꼬리말 html에는 id가 있습니다 footerWrapper

두 열과 바닥 글은 모두 div 태그입니다.

내 CSS (요약 된) : 요약 된

.column { 
    width: 49%; 
} 

#column2 { 
    width: 50%; 
    position: absolute; 
    top: 0px; 
    margin-left: 50%; 
    float: left; 
} 

#footerWrapper { 
    background-color: #333333; 
    border-top: 2px #FF6600 solid; 
    color: #666; 
} 

HTML :

<!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> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <link href="style.css" rel="stylesheet" type="text/css" /> 
    </head> 
    <body> 
    <div id="mainColumns"> 
     <div id="mainContainer"><div class="mainWrapper"> 
     <h1>Title</h2> 
    </div> 
    <!-- start panels --> 
    <div class="panels"> 
     <div class="column"> 
     <h2><img src="../lib/icons/newspaper.png" width="16" height="16">Title</h2> 
     <div> 
      <p>content</p> 
     </div> 
     <p></p> 
     <h2><img src="../lib/icons/rainbow.png" width="16" height="16">Title</h2> 
     <div> 
      <p>content</p> 
     </div> 
     <p></p> 
     <h2><img src="../lib/icons/rainbow.png" width="16" height="16">Title</h2> 
     <div> 
      <p>content</p> 
     </div> 
     </div> 
     <div class="column" id="column2"> 
     <h2><img src="../lib/icons/newspaper.png" width="16" height="16">Title</h2> 
     <div> 
      <p>content</p> 
     </div> 
     <p></p> 
     <h2><img src="../lib/icons/rainbow.png" width="16" height="16">Title</h2> 
     <div> 
      <p>content</p> 
     </div> 
     <p></p> 
     <h2><img src="../lib/icons/rainbow.png" width="16" height="16">Title</h2> 
     <div> 
      <p>content</p> 
     </div> 
     </div> 
    </div> 
    <!-- end panels --> 
    <div class="mainWrapper"></p> 
     </div></div> 
     <div id="sideBar"> </div> 
    </div> 
    <div id="footerWrapper"> 
     <div id="footer"> 
     <h6></h6> 
     </div> 
    </div> 
    </body> 
</html> 
+3

일부 HTML도 필요합니다. – zneak

+0

http://css.find-info.ru/css/011/ch05lev1sec4.html –

답변

3
  • 플로트하는 스타일 시트에 clearfix CSS를 추가하는 것은
  • "clearfix"을 추가 패널에 클래스 div

Clearfix는 패널 div가 두 열을 모두 감싸도록 만듭니다. 가장 긴 기둥만큼 키가 크다.

2

이 컨테이너에 overflow: auto를 추가합니다.

+0

Thanks SLaks :이 작업을 수행하면 컨테이너의 오른쪽에 스크롤바가 추가되어 문제가 실제로 해결되지 않습니다. 스크롤 막대를 표시하지 않는 방법이 있습니까? – Darbio

2

#footerwrapperclear:both;을 추가하십시오.

또는 보이지 않는 요소를 수동으로 삽입하여 플로트를 지울 수 있습니다 (예 : 하여 div.panels의 맨 아래에 다음과 같은 :

  • 제거 위치, 상단과 # 2 열
  • 에서 마진 왼쪽 두 열

    <div style="clear:both;"></div> 
    
  • +0

    Tom에게 건배하지만 작동하지 않습니다. – Darbio

    0

    HTML을 편집하여 질문에 포함 시키면 오류가 발생할 수 있지만 일치하지 않는 <div> 태그가 몇 개 있습니다. 그게 원래의 모든 확인을 확인하십시오.

    1

    스크롤 막대의 경우 컨테이너에 overflow: hidden을 추가 할 수 있습니다. 중요한 정보를 숨기지 않는 것이 좋을지라도 이스케이프하는 콘텐츠는 숨겨져 있습니다.