2013-03-12 83 views
31

Fiddle使顯示錶格使用百分比寬度

我已經有了這種表感覺,使用無序列表。但我不知道如何讓表格單元具有50%的寬度(我希望每行都是100%的寬度)。我使用display: table-row;display: table-cell;的原因是,如果參數文本不止一行,我可以垂直對齊數據。我不想在寬度上使用實際的像素或em值,因爲,如果可能的話,我只是希望它以百分比表示。我寧願放棄垂直對齊。請不要JavaScript。謝謝!

HTML:

<div class="group group2"> 
    <h2>Health Indicies</h2> 
    <ul> 
     <li><p class="parameter">GGP</p><p class="data">265</p></li> 
     <li><p class="parameter">Comfort</p><p class="data">blah</p></li> 
     <li><p class="parameter">Energy</p><p class="data">gooo</p></li> 
    </ul> 
</div> 

CSS:

ul { 
    margin: 0; 
    padding: 0; 
    list-style: none; 
} 
.group { 
    width: 50%; 
    margin-bottom: 20px; 
    outline: 1px solid black; 
    background: white; 
    box-shadow: 1px 1px 5px 0px gray; 
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 
} 
.group h2 { 
    display: block; 
    font-size: 14px; 
    background: gray; 
    text-align: center; 
    padding: 5px; 
} 
.group li { 
    clear: both; 
} 
.group p { 
    padding: 3%; 
    text-align: center; 
    font-size: 14px; 
} 
.group2 li { 
    display: table-row; 
} 
.group2 p { 
    display: table-cell; 
    vertical-align: middle; 
    width: 46%; 
    border-bottom: 2px solid gray; 
} 
.group li:last-child p { 
    border-bottom: 0; 
} 
+0

不能使用'顯示:表cell'不使用'顯示父元素:表row'和'表row'反過來需要生活在'display:table'上下文中。 – 2016-04-13 21:42:23

回答

42

你幾乎沒有。您只需將display: tablewidth: 100%添加到您的ul.group2。你可能也可以逃脫不要在你的.group2 p元素上提供width

這應該工作:http://jsfiddle.net/6Kn88/2/

9

設置uldisplay: table按照你的CSS的休息,並給它100%的寬度,以填補父DIV。現在你的寬度應該佔據你的「行」和「單元格」。

編輯:按照上面的kpeatt,誰更快地脫穎而出!

0

我發現從引導源代碼中設置table-cell div 100%寬度的最佳方法。

設置爲width:10000px,它呈現爲100%的寬度。

https://jsfiddle.net/y3qsxb9m/

+0

嗨!歡迎來到StackOverflow!答案應該是解釋性的,所以請添加一些解釋,說明爲什麼它解決了提問者陳述的問題。 – jkalden 2016-01-13 09:55:35

-7

對於

display: table-cell; 

設置

width:10000px; 

充當

width:100%; 

所以,如果你想寬度的50%只使用

width: 5000px; 
+0

這是一個非常糟糕的建議。 – schlingel 2016-04-21 15:08:04

+0

哈哈!爲什麼這是低調的,它的好評 – Leathan 2017-08-10 00:24:54