表格table列宽度怎么设置都没用
2个回答
展开全部
在对设置表格设置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>
请看如下代码:
<!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>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询