表格table列宽度怎么设置都没用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表格table列宽度怎么设置都没用相关的知识,希望对你有一定的参考价值。

在对设置表格设置table-layer:fixed样式后,发现表格中有一行合并过,其它没有合并的行的列宽会平均化,对列宽的设置会失效。
请看如下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>test</title>
</head>
<body style="width:98%; height:100%; margin-left:0px; margin-top:0px">
<table style="border:1px solid #0000FF; table-layout:fixed; width:100%; height:90%;" border="1">
<tbody>
<tr>
<td colspan="3">dd</td>
</tr>
<tr>
<td style="width:60%">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td>
<td style="width:20%">ddddd</td>
<td style="width:20%">CCCCCCCC</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
</body>
</html>
如果把表格的合并行去掉,又能正常显示。
原因:
table-layout: fixed 的表格,各列宽度由第一行决定,后面指定的宽度会被忽略。
你第一行合并了,所以各列宽度均分了。
解决方法:
在tbody前加
<col style="width: 60%" />
<col style="width: 20%" />
<col style="width: 20%" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>test</title>
</head>
<body style="width:98%; height:100%; margin-left:0px; margin-top:0px">
<table style="border:1px solid #0000FF; table-layout:fixed; width:100%; height:90%;" border="1">
<col style="width: 60%" />
<col style="width: 20%" />
<col style="width: 20%" />
<tbody>
<tr>
<td colspan="3">dd</td>
</tr>
<tr>
<td style="width:60%">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td>
<td style="width:20%">ddddd</td>
<td style="width:20%">CCCCCCCC</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
</body>
</html>
参考技术A 在对设置表格设置table-layer:fixed样式后,发现表格中有一行合并过,其它没有合并的行的列宽会平均化,对列宽的设置会失效。
请看如下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>test</title>
</head>
<body style="width:98%; height:100%; margin-left:0px; margin-top:0px">
<table style="border:1px solid #0000FF; table-layout:fixed; width:100%; height:90%;" border="1">
<tbody>
<tr>
<td colspan="3">dd</td>
</tr>
<tr>
<td style="width:60%">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td>
<td style="width:20%">ddddd</td>
<td style="width:20%">CCCCCCCC</td>
</tr>

<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
</body>
</html>
如果把表格的合并行去掉,又能正常显示。

原因:
table-layout: fixed 的表格,各列宽度由第一行决定,后面指定的宽度会被忽略。
你第一行合并了,所以各列宽度均分了。

解决方法:
在tbody前加
<col style="width: 60%" />
<col style="width: 20%" />
<col style="width: 20%" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>test</title>
</head>
<body style="width:98%; height:100%; margin-left:0px; margin-top:0px">
<table style="border:1px solid #0000FF; table-layout:fixed; width:100%; height:90%;" border="1">
<col style="width: 60%" />
<col style="width: 20%" />
<col style="width: 20%" />
<tbody>
<tr>
<td colspan="3">dd</td>
</tr>
<tr>
<td style="width:60%">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td>
<td style="width:20%">ddddd</td>
<td style="width:20%">CCCCCCCC</td>
</tr>

<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
</body>
</html>本回答被提问者采纳
参考技术B   bootstrap的table只是样式,目前并没有整合功能,如排序、查询、分页等组件。
  推荐一个表格插件"DataTables",和另一个编辑编辑单行信息的插件"Editor"。

以上是关于表格table列宽度怎么设置都没用的主要内容,如果未能解决你的问题,请参考以下文章

bootstrap table 表格太宽,设置的width属性不起作用怎么办

bootstrap table 表格太宽,设置的width属性不起作用怎么办

itext的单元格怎么设置宽度

在html中怎样控制表格的宽度

html table 列宽

html 中表格的宽度 怎么控制