2012-09-07 133 views
10

列表項目我已經創建了一個小提琴: http://jsfiddle.net/pQZ8f/具有相同高度

我想有兩個列表項是相同的高度,而無需手動設置高度。我希望它能夠自動增長。我不想使用JavaScript。它可以通過CSS來完成嗎?

+0

你是說,沒有設定固定高度? –

+0

是的,沒有設置固定的高度。對不起,我錯過了這個問題 – emphaticsunshine

回答

9

啊,老一樣的高度欄問題。

一個解決方案是放屁與底部邊距/填充。

作品在IE7 +(甚至可能使用IE6的工作,我沒有它安裝)

ul { 
    overflow: hidden; 
    border: 1px solid black; 
    float: left; 
} 
li { 
    float:left; 
    width:100px; 
    background: red; 
    padding-bottom: 10000px; 
    margin-bottom: -10000px; 
} 
li + li { 
    border-left: 1px solid black; 
} 

JSfiddle Demo

+0

它是一個很好的修復背景顏色,但邊界。 – emphaticsunshine

+0

邊界有什麼問題? – Matthew

+0

它們並不是一樣的高度......這種錯覺很可能讓尋求真正同樣高度解決方案的人失望。 – vsync

20

看來你正在尋找表格佈局,所以也許最好的辦法是使用<table>而不是浮動<li>元素。

這就是說,你也可以在你的元素指定表格樣式:

ul { 
    display: table-row; 
} 

li { 
    width: 100px; 
    border: 1px solid black; 
    display: table-cell; 
} 

這應該在最現代的瀏覽器。你會發現更新的小提琴here

+0

這將工作在IE8及以上,加上所有現代瀏覽器。 – Mark

+2

我會在這種情況下使用表格。 – emphaticsunshine

+0

@emphaticsunshine,如果你的內容是固有的表格,你應該。過去,表格被濫用於佈局,當你需要時,仍然沒有使用它們的恥辱。 –

0

這取決於爲什麼你希望他們同樣的高度:什麼你試圖達到的整體效果?

一個選擇:如果你只是想匹配的背景什麼的,你可以把背景上<ul>,而不是<li>的和<ul>將自動擴展到任何的最大高度爲它的子元素。

此外,如果你想使它們具有相同的高度,因此您可以對齊文本的底部,你可以結合display: inline-block,而不是floathorizontal-align: bottom;。在這Fiddle的結果讓你至少有看起來像<li>的是一樣的高度,但不會爲邊界工作。

+1

我需要一個分隔邊界。因此,如果我將邊界列入其中一個列表項並且它的長度較短,那麼分隔將不會達到底部 – emphaticsunshine

+0

在這種情況下,我認爲您一定會想要與Matthew或FrédéricHamidi的建議結合使用,這些建議更加重要比我的複雜。 :-) – XML

1

您可以使用:顯示:內聯表您LI元素

li { 
    width:100px; 
    background: red; 
    display: inline-table 
} 

這裏是JSFiddle

+0

哇,這確實在伎倆。最簡單的一個。 – Emerald

0

我用jquery.matchHeight.js庫用於這一目的。添加類=「幀高度」所有元件,使所有元件相同的高度爲最高元件。

0

列表設置爲表格,它將包含表格屬性。 設置表格單元格時,它們將獲得表格單元格屬性,默認情況下,所有表格單元格將獲得相同的高度。

<!--SCSS--> 
.list { 
    display: table; 

    .list-item { 
     display: table-cell; 
    } 
} 



<!--html--> 
<ul class="list"> 
    <li class="list-iteam"> 
     <h1>Heading</h1> 
     <p>Details in text</p> 
    </li> 
    <li class="list-iteam"> 
     <h1>Heading 2</h1> 
    </li> 
    <li class="list-iteam"> 
     <h1>Heading 2</h1> 
     <p>this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text this is text </p> 
    </li> 
</ul> 
+0

請編輯您的答案並向您的代碼發佈一些解釋。不鼓勵使用僅有代碼的答案。 – WebDevBooster