2009-12-17 31 views
0

我有一個網站,我正在努力完善佈局。但是我現在面臨的問題是專欄不會一路走到最後。我已閱讀關於如何從另一個人獲得CSS列3佈局的教程http://www.ejeliot.com/blog/61幫助在CSS網站上創建高度相等的列

問題是我仍然迷路。任何人都可以看看這個簡單的模板(www.centuryautosd.com/help.asp)並製作CSS,這樣無論頁面有多高,列都會一路向下。數據是動態生成的,因此高度要求會隨着每個查看頁面的變化而不斷變化。 以下是真實網頁的鏈接:www.centuryautosd.com/help.asp

謝謝!

回答

0

在這裏你去:

<!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" /> 
<title>Untitled Document</title> 
<style type="text/css"> 
<!-- 
body { 
    font: 100% Verdana, Arial, Helvetica, sans-serif; 
    background: #666666; 
    margin: 0; /* it's good practice to zero the margin and padding of the body element to account for differing browser defaults */ 
    padding: 0; 
    text-align: center; /* this centers the container in IE 5 
browsers. The text is then set to the left aligned default in the #container selector */ 
    color: #000000; 
} 
.thrColFixHdr #container { 
    width: 780px; /* using 20px less than a full 800px width allows for browser chrome and avoids a horizontal scroll bar */ 
    background: #FFFFFF; 
    margin: 0 auto; /* the auto margins (in conjunction with a width) center the page */ 
    border: 1px solid #000000; 
    text-align: left; /* this overrides the text-align: center on the body element. */ 
} 
.thrColFixHdr #header { 
    background: #DDDDDD; 
    padding: 0 10px 0 20px; /* this padding matches the left alignment of the elements in the divs that appear beneath it. If an image is used in the #header instead of text, you may want to remove the padding. */ 
} 

#contentContainer 
{ 
    overflow: hidden; 
} 

.thrColFixHdr #header h1 { 
    margin: 0; /* zeroing the margin of the last element in the #header div will avoid margin collapse - an unexplainable space between divs. If the div has a border around it, this is not necessary as that also avoids the margin collapse */ 
    padding: 10px 0; /* using padding instead of margin will allow you to keep the element away from the edges of the div */ 
} 
.thrColFixHdr #sidebar1 { 
    float: left; /* since this element is floated, a width must be given */ 
    width: 150px; /* the actual width of this div, in standards-compliant browsers, or standards mode in Internet Explorer will include the padding and border in addition to the width */ 
    background: #EBEBEB; /* the background color will be displayed for the length of the content in the column, but no further */ 
    padding: 15px 10px 15px 20px; /* padding keeps the content of the div away from the edges */ 
    margin-bottom: -2000px; 
    padding-bottom: 2000px; 
} 
.thrColFixHdr #sidebar2 { 
    float: right; /* since this element is floated, a width must be given */ 
    width: 160px; /* the actual width of this div, in standards-compliant browsers, or standards mode in Internet Explorer will include the padding and border in addition to the width */ 
    background: #EBEBEB; /* the background color will be displayed for the length of the content in the column, but no further */ 
    padding: 15px 10px 15px 20px; /* padding keeps the content of the div away from the edges */ 
    margin-bottom: -2000px; 
    padding-bottom: 2000px; 
} 
.thrColFixHdr #mainContent { 
    margin: 0 200px; /* the right and left margins on this div element creates the two outer columns on the sides of the page. No matter how much content the sidebar divs contain, the column space will remain. You can remove this margin if you want the #mainContent div's text to fill the sidebar spaces when the content in each sidebar ends. */ 
    padding: 0 10px; /* remember that padding is the space inside the div box and margin is the space outside the div box */ 
} 
.thrColFixHdr #footer { 
    padding: 0 10px 0 20px; /* this padding matches the left alignment of the elements in the divs that appear above it. */ 
    background:#DDDDDD; 
} 
.thrColFixHdr #footer p { 
    margin: 0; /* zeroing the margins of the first element in the footer will avoid the possibility of margin collapse - a space between divs */ 
    padding: 10px 0; /* padding on this element will create space, just as the the margin would have, without the margin collapse issue */ 
} 
.fltrt { /* this class can be used to float an element right in your page. The floated element must precede the element it should be next to on the page. */ 
    float: right; 
    margin-left: 8px; 
} 
.fltlft { /* this class can be used to float an element left in your page */ 
    float: left; 
    margin-right: 8px; 
} 
.clearfloat { /* this class should be placed on a div or break element and should be the final element before the close of a container that should fully contain a float */ 
    clear:both; 
    height:0; 
    font-size: 1px; 
    line-height: 0px; 
} 
--> 
</style><!--[if IE 5]> 
<style type="text/css"> 
/* place css box model fixes for IE 5* in this conditional comment */ 
.thrColFixHdr #sidebar1 { width: 180px; } 
.thrColFixHdr #sidebar2 { width: 190px; } 
</style> 
<![endif]--><!--[if IE]> 
<style type="text/css"> 
/* place css fixes for all versions of IE in this conditional comment */ 
.thrColFixHdr #sidebar2, .thrColFixHdr #sidebar1 { padding-top: 30px; } 
.thrColFixHdr #mainContent { zoom: 1; } 
/* the above proprietary zoom property gives IE the hasLayout it needs to avoid several bugs */ 
</style> 
<![endif]--></head> 

<body class="thrColFixHdr"> 

<div id="container"> 
    <div id="header"> 
    <h1>Header</h1> 
    <!-- end #header --></div> 
    <div id="contentContainer"> 
     <div id="sidebar1"> 
     <h3>Sidebar1 Content</h3> 
     <p>The background color on this div will only show for the length of the content. If you'd like a dividing line instead, place a border on the left side of the #mainContent div if it will always contain more content. </p> 
     <p>Donec eu mi sed turpis feugiat feugiat. Integer turpis arcu, pellentesque eget, cursus et, fermentum ut, sapien. </p> 
     <!-- end #sidebar1 --></div> 
     <div id="sidebar2"> 
     <h3>Sidebar2 Content</h3> 
     <p>The background color on this div will only show for the length of the content. If you'd like a dividing line instead, place a border on the right side of the #mainContent div if it will always contain more content. </p> 
     <p>Donec eu mi sed turpis feugiat feugiat. Integer turpis arcu, pellentesque eget, cursus et, fermentum ut, sapien. </p> 
     <!-- end #sidebar2 --></div> 
     <div id="mainContent"> 
     <h1> Main Content </h1> 
     <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis. Nam blandit quam ut lacus. Quisque ornare risus quis ligula. Phasellus tristique purus a augue condimentum adipiscing. Aenean sagittis. Etiam leo pede, rhoncus venenatis, tristique in, vulputate at, odio. Donec et ipsum et sapien vehicula nonummy. Suspendisse potenti. </p> 
     <h2>H2 level heading </h2> 
     <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis. Nam blandit quam ut lacus. Quisque ornare risus quis ligula. Phasellus tristique purus a augue condimentum adipiscing. Aenean sagittis. Etiam leo pede, rhoncus venenatis, tristique in, vulputate at, odio.</p> 
     <!-- end #mainContent --></div> 
     <!-- This clearing element should immediately follow the #mainContent div in order to force the #container div to contain all child floats --><br class="clearfloat" /> 
    </div> 
    <div id="footer"> 
    <p>Footer</p> 
    <!-- end #footer --></div> 
<!-- end #container --></div> 
</body> 
</html> 

它使用在你的鏈接頁面,其中有用於每個列的負面底部邊緣,然後用溢出的容器藏,以中http://www.ejeliot.com/samples/equal-height-columns/example-4.html描述的技術隱藏粗糙的邊緣。我沒有將這項技術應用到中間欄,因爲它顯示欄總是最長的,但如果最終出現在中間欄不是最長的情況並導致佈局問題的情況下,您可以應用相同的技術,方法是將

margin-bottom: -2000px; 
padding-bottom: 2000px; 

在它的風格。

總而言之,我所做的是添加一個容器div,它包含佈局中的三列。然後,我爲容器添加了一個隱藏的溢出,並將上面顯示的邊距&填充到列中。

+0

這工作!非常感謝。對於某些頁面而言,這還不夠長,但是我將記錄集顯示器一次只顯示10輛汽車並解決了這個問題。 謝謝 如此多! – Drea 2009-12-17 19:42:26

+0

要延長它,只需將-2000像素和2000像素的邊距和填充設置更改爲3000或4000或任何需要的設置即可。 – 2009-12-17 19:54:14

+0

好的,謝謝布賴恩 – Drea 2009-12-17 20:06:49

0

你不會用standardistas得到任何書呆子分數,但表格可以工作。

+0

是的,現在只是所有的改造......但我認爲這是我唯一的選擇。 – Drea 2009-12-17 18:04:22