2014-09-06 31 views
0

我很高興地使用3 column layout,詳見alistapart.com。它工作完美,除非有哈希網址。所以我的中心專欄內容完美地顯示爲http://www.jahajee.com/CDC-Renewal-Procedure/7890/1.html,但當URL更改爲http://www.jahajee.com/CDC-Renewal-Procedure/7890/1.html#24873時內容丟失。將內容推到視口上方,並使用網址中的散列值

我發現CSS #container .column{padding-bottom:10010px;margin-bottom:-10000px;}是問題所在!所述CSS規則需要使相等的高度的所有3 column與定義包裹3列container。當我移除這種情況時,內容會保留在視口中,但列的高度不等!

相關CSS

#container{padding-left:200px;padding-right:240px;overflow:hidden;} 
#container .column{position:relative;float:left;padding-bottom:10010px;margin-bottom:-10000px;} 
#centre{width:100%;padding:10px 20px;} 
#left{width:180px;padding:0 10px;right:240px;margin-left:-100%;background:#dfebfd;} 
#right{width:180px;padding:0 10px;margin-right:-240px;} 

的內容也顯示了當container overflow:hidden被刪除,但隨後的頁面需要10000px全長!

我還試圖製作containerdisplay:tableCSS 3 Column Liquid Layout Dynamic Same Height Column中推薦的列display:table-cell,但是這些列的高度並不相同!

可有人請引導其參數進行修改。

回答

0

這種行爲似乎是這種解決方案的默認行爲。請參閱:http://jsfiddle.net/qm3z9p2q/這是alistapart提供的填充底邊緣底解決方案的解決方案,使柱子的高度相等。

要使用顯示:表並顯示:表小區是一個完整的不同的解決方案。請參閱:http://jsfiddle.net/qm3z9p2q/1/

有使用邊框顏色作爲背景色爲左,右列人造列第三解決方案。請參閱:http://jsfiddle.net/qm3z9p2q/3/ 這隻會工作,如果中心柱曾經是最高的列。並且它需要列之後的清除元素,請參閱HTML。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>Faux columns with border-color</title> 
    <style type="text/css"> 

     /*** The Essential Code ***/ 

     body { 
      min-width: 550px;   /* 2 x LC width + RC width */ 
     } 

     #container { 
      border-left: 200px solid #66F;  /* LC width */ 
      border-right: 150px solid #F66;  /* RC width */ 
     } 

     #container .column { 
      position: relative; 
      float: left; 
     } 

     #center { 
      width: 100%; 
     } 

     #left { 
      width: 200px;    /* LC width */ 
      right: 200px;    /* LC width */ 
      margin-left: -100%; 
     } 

     #right { 
      width: 150px;    /* RC width */ 
      margin-right: -100%; 
     } 

     #footer { 
      clear: both; 
     } 

     /*** IE6 Fix ***/ 
     * html #left { 
      left: 150px;    /* RC width */ 
     } 

     /*** Just for Looks ***/ 

     body { 
      margin: 0; 
      padding: 0; 
      background: #FFF; 
     } 

     #header, #footer { 
      font-size: large; 
      text-align: center; 
      padding: 0.3em 0; 
      background: #999; 
     } 

     #left { 
     } 

     #center { 
      background: #DDD; 

     } 

     #right { 
     } 

     #container .column { 
      padding-top: 1em; 
      text-align: justify; 
     } 

     p#i12345 { 
         margin-top:50em; 
     } 
    </style> 
</head> 

<body> 

    <div id="header">This is the header.</div> 

    <div id="container"> 

     <div id="center" class="column"> 
      <h1>This is the main content.</h1> 

<p><a href="#i12345">jump to ID i12345</a></p> 

      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla.</p> 
      <p id="i12345">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla.</p> 
     </div> 

     <div id="left" class="column"> 
      <h2>This is the left sidebar.</h2> 
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla.</p> 
     </div> 

     <div id="right" class="column"> 
      <h2>This is the right sidebar.</h2> 
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla.</p> 
     </div> 

<div style="clear:both;"></div> 

    </div> 

    <div id="footer">This is the footer.</div> 

</body> 

</html> 

問候

阿克塞爾

+0

感謝您的答覆,我結束了使用仿列,但與背景圖像,並將其完美地工作。 – 2014-09-08 12:59:54