Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

css display:table first column too wide

I have a css table setup like this:

<div class='table'>
 <div>
  <span>name</span>
  <span>details</span>
 </div>
</div>

The css for the table is:

.table{
 display:table;
 width:100%;
}
.table div{
 text-align:right;
 display:table-row;
 border-collapse: separate;
 border-spacing: 0px;
}
.table div span:first-child {
 text-align:right;
}
.table div span {
 vertical-align:top;
 text-align:left;
 display:table-cell;
 padding:2px 10px;
}

As it stands the two columns are split evenly between the space occupied by the width of the table. I'm trying to get the first column only to be as wide as is needed by the text occupying it's cells

The table is an unknown width, as are the columns/cells.

like image 955
Mestore Avatar asked Apr 27 '10 09:04

Mestore


4 Answers

Try -> table-layout: fixed

like image 68
Fortisimo Avatar answered Nov 17 '22 06:11

Fortisimo


Just give it a any small width like 1px. Table cells always expands to the smallest possible size to fit its content.

like image 24
RoToRa Avatar answered Nov 17 '22 07:11

RoToRa


You could use the first-child selector to find the first div within the table and give it a seperate with.

.table div:first-child
{
    width:30%;
}
like image 2
Rob Avatar answered Nov 17 '22 05:11

Rob


I don't know that you can get it to be the size of the text if that differs by row but you can try setting a width ="auto" or a percentage width for the columns.

like image 1
Steve Robillard Avatar answered Nov 17 '22 07:11

Steve Robillard