问题
I have a simple table with two columns, I would like the to set the width of each of these columns, for example left column 30% right column 70%. Eventually I will have hundreds of rows so If I can apply a global css class I guess that would be best?
Currently the left column is compressed and doesn't look good.
I have created a jsfiddle if somebody could lend some assistance.
<div class="container">
<div class="row col-md-8">
<table class="table table-striped">
<tr>
<td>row name here</td>
<td>sed auctor diam sollicitudin ut. Donec et sodales quam, eu vehicula urna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer eget</td>
</tr>
<tr>
<td>another row name here</td>
<td>sed auctor diam sollicitudin ut. Donec et sodales quam, eu vehicula urna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer egetsdsdfsdf fsdfsdf</td>></tr>
</table>
</div>
</div>
回答1:
Here is my take on it. I've added an id to the table for easier access.
The Markup
<div class="container">
<div class="row col-md-8">
<table class="table table-striped" id="someid">
<tr>
<td>row name here</td>
<td>sed auctor diam sollicitudin ut. Donec et sodales quam, eu vehicula urna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer eget</td>
</tr>
<tr>
<td>another row name here</td>
<td>sed auctor diam sollicitudin ut. Donec et sodales quam, eu vehicula urna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer egetsdsdfsdf fsdfsdf</td>></tr>
</table>
</div>
</div>
The CSS
#someid tr td:nth-child(1){
width:30%;
}
Fiddle
回答2:
You can use the css property table-layout: fixed
This will force the given width on the columns:
table {
table-layout: fixed;
}
td:first-child {
width: 30%;
}
td:last-child {
width: 70%;
}
Updated fiddle
Normally you would give every cell in the column the same width but with table-layout: fixed
you can set it only on the header cell of the column:
<thead>
<tr>
<th class="first">Column A</th>
<th class="second">Column B</th>
</tr>
</thead>
As shown in this fiddle
回答3:
when I tried with width
property on first td
of tr
it works fine for me
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<div class="row col-md-8">
<table class="table table-striped">
<tr>
<td width="30%">row name here</td>
<td width="70%">sed auctor diam sollicitudin ut. Donec et sodales quam, eu vehicula urna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer eget</td>
</tr>
<tr>
<td>another row name here</td>
<td>sed auctor diam sollicitudin ut. Donec et sodales quam, eu vehicula urna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer egetsdsdfsdf fsdfsdf</td></tr>
</table>
</div>
</div>
As per latest update, width attribute in td
will no longer supported, so you should set width through css.
#someid tr td{
width:30%;
}
using psudo code:
#someid tr td:nth-child(1){
width:30%;
}
whats the issue you faced?
回答4:
Define a min-width property for your with the class nowrap, like so:
td.nowrap {
min-width: 129px;
}
Updated your fiddle
回答5:
Add this CSS:
table.table.table-striped tr > td:first-child {
width:30%;
}
回答6:
<style>
td{
max-width: 100px;
overflow: hidden;
text-overflow: ellipsis;
word-wrap: break-word;
}
#someid tr td:nth-child(1){
width:10%;
}
</style>
add id "somdeid" in table
<table id="someid">
<tbody>
<tr>
<td>some text here</td>
<td>some long text here</td>
</tr>
</tbody>
</table>
来源:https://stackoverflow.com/questions/31318467/table-cell-width-with-bootstrap