我目前正在尝试创建一个带有斑马条纹的表格,其中条纹的背景颜色延伸到屏幕的整个长度,但行的实际内容保留在表格的边界内。
更具体地说,我正在使用 Bootstrap,所以我想要的是表行的内容就像它们位于.container
.
本质上,我正在尝试创建一个如下所示的表:
<table class="table">
<tr>
<div class="container">
<td>Testing</td>
<td>Testing</td>
</div>
</tr>
<tr>
<div class="container">
<td>Testing</td>
<td>Testing</td>
</div>
</tr>
</table>
...
table, tr {
width: 100%;
}
tr:nth-child(odd) {
background-color: #f4f4b4;
}
理想情况下,背景颜色应延伸浏览器窗口的整个长度,但表格的内容应具有居中且固定(尽管会响应变化)的宽度。
然而,这实际上不起作用,因为它是不可能 http://css-tricks.com/using-divs-inside-tables/放置一个div
里面一个tr
元素。
这是我解决问题的最佳尝试:http://jsfiddle.net/4L4tatk5/3/ http://jsfiddle.net/4L4tatk5/3/
它很接近,但不太有效,因为表中的单元格(以蓝色概述)没有对齐到整齐的列中。我尝试尝试修补不同的display
选项tr
元素,但除此之外的任何东西display: block
会导致.container
类实际上被忽略。
解决这个问题的最佳方法是什么?
该代码可在jsfiddle http://jsfiddle.net/4L4tatk5/3/,但作为参考,这是我的 HTML 和 CSS:
HTML
<div class="container control">
<p>
This is an example container (outlined in red) to show where the
contents of the table should be aligned to. Individual cells are
outlined in blue.
</p>
<p>
Lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem
ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem
ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem
ipsum lorem ipsum lorem ipsum
</p>
</div>
<table class="table test">
<thead>
<tr class="container">
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
<tr class="container">
<td>abcdefghijklmnop</td>
<td>123456789</td>
<td>foo</td>
</tr>
</tbody>
<tbody>
<tr class="container">
<td>kidke,fjgisklmpi</td>
<td>11</td>
<td>bar</td>
</tr>
</tbody>
<tbody>
<tr class="container">
<td>abcd</td>
<td>2321</td>
<td>hello</td>
</tr>
</tbody>
<tbody>
<tr class="container">
<td>adsfaldfalke</td>
<td>0</td>
<td>world</td>
</tr>
</tbody>
</table>
CSS
@import url('http://getbootstrap.com/dist/css/bootstrap.css');
.control {
border: 1px solid red;
margin-bottom: 2em;
}
.test {
overflow-x: auto;
margin-bottom: 1em;
}
.test thead {
white-space: nowrap;
background-color: #e2e7e8;
}
.test table {
width: 100%;
}
.test thead,
.test tbody,
.test tfoot {
width: 100%;
}
.test tbody:nth-child(odd) {
background-color: #f4f4b4;
}
.test tr {
display: block;
border: 1px solid red;
}
.test th,
.test td {
border: 1px solid blue;
}