我正在使用twitter bootstrap进行响应式设计,其中包含一个包含四列的表。我希望表格列的宽度相等,所以我将td width
设置为25%。
我认为表行将从表中继承它们的大小,然后表格单元格将是其中的四分之一。当设备宽度为768px或更高时,这似乎有效。当设备宽度较小时,行的大小将根据最大单元格中的文本进行调整,而不是父表的大小。
我在下面添加了一些示例代码,在不同元素上使用背景着色来突出显示错误(通过水平调整窗口大小来显示)。错误以黄色突出显示(基础表颜色可见)。
实例:http://pastehtml.com/view/cqrwl31z2.html
我已在Chrome和Safari中测试过。
<!DOCTYPE html>
<html>
<head>
<title>Table Test</title>
<!-- Bootstrap -->
<link href="http://www.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="http://www.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
td, th { width: 25% !important; }
table { background-color: yellow; }
tr { background-color: gray; }
th { background-color: aqua; }
td:nth-child(1) { background-color: red; }
td:nth-child(2) { background-color: green; }
td:nth-child(3) { background-color: blue; }
td:nth-child(4) { background-color: purple; }
</style>
</head>
<body>
<div class="container">
<h1>Hello, world!</h1>
<div class="row">
<table class="span12">
<thead>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<tr>
</tbody>
</table>
</div>
<div class="row">
<table class="span12">
<thead>
<tr>
<th>Longer Table</th>
<th>Headers In</th>
<th>This</th>
<th>Table</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<tr>
</tbody>
</table>
</div>
</div>
</body>
</html>
答案 0 :(得分:6)
[class*="span"], .uneditable-input[class*="span"],
.row-fluid [class*="span"] {
display: table;
}
在桌面上使用网格类可能不是一个好主意。相反,在包装器div上使用.span12并将表设置为width: 100%
。
答案 1 :(得分:3)
答案 2 :(得分:1)
除了具有属性100%
或width="100%"
的表格之外,请确保所有父容器的宽度都设置为style="width:100%"
。
答案 3 :(得分:0)
当您缩放或设备宽度变得大于指定宽度时,它没有空间可扩展,因为宽度以%而不是px给出,因此克服此问题的最佳方法是使用
min-width:100px
对于td或th,即使设备宽度超过,它也将是最小宽度。