如何将列表显示为表格?

时间:2013-04-03 10:17:14

标签: javascript jquery html css position

我有一个项目清单,左边有不同的内容,我需要将它们显示为一行。

<ul>
<li>small content..</li>
<li>medium Content..</li>
<li>large content..</li>
..
<!-- many item random contnet -->
</ul>

我想连续显示列表项 行高取决于行中的最大高度项, 如何获得它?

Demo

6 个答案:

答案 0 :(得分:4)

添加display:table-cell,使其充当表格列。同时删除float:left

#contentpane{}
#contentpane li{
    padding:10px;
    width:80px;
    border:1px solid #000;
    display:table-cell
}

<强> DEMO


案例2

如果您需要自动高度,请使用以下white-space:nowrap;方法

ul#contentpane{
    width:100%;  
    white-space:nowrap;

}
#contentpane li{
    padding:10px;
    width:80px;
    border:1px solid #000;
    height:auto;
    display:inline-block;
    white-space:normal !important;
}

DEMO 2 ||的 DEMO (Vertically aligned to the top)

答案 1 :(得分:2)

你应该使用javascript设置清除:两者都是行溢出元素。

 var ch=$("#container").width();

    var itemsPerRow=Math.floor(ch/102);

    var itemsCount=$("#contentpane li").length;
    var loopRound=Math.floor(itemsCount/itemsPerRow);

    for(var i=1;i<loopRound+1;i++)
    {
        var nextFirstItem=i*itemsPerRow+1;

        $("#contentpane li:nth-child("+ nextFirstItem  +")").css({"clear":"both"});
    }

demo

答案 2 :(得分:1)

ul {
    display: table-row;
}

ul  > li {
    display: table-cell;
}

请注意,您应该有一个包含display: table的包装器,以便构建完整的表格表示。

答案 3 :(得分:0)

试试这个

var maxHeight = 0;
 $("#contentpane li").each(function( index ) {
     var height = $(this).height();
     if(height  > maxHeight){
         maxHeight =height;
      }
 });

$("#contentpane li").css("height",maxHeight);

Fiddle Demo

答案 4 :(得分:0)

将高度设置为li。

#contentpane{

}
#contentpane li{
    float:left;
    padding:10px;
    width:80px;
    height:180px;
    overflow:auto;
    display:table-cell;
    border:1px solid #000;
}

<强> FIDDLE

答案 5 :(得分:0)

删除浮动并改为使用内联块:

http://jsfiddle.net/CmkSb/10/

#contentpane li{
    padding:10px;
    width:80px;
    display:inline-block;
    vertical-align: text-top;
    border:1px solid #000;
}