我遇到这个问题是由于我第一行有个单元格占了多列,fixed导致被占的列总是平均分配列宽。看看下面的说法,终于搞清楚原因了。
网页上的表格如下图所示:
网页代码很如下:
<style type="text/css">
table{
border-collapse:collapse;
/*table-layout:fixed;*/
}
table,table td{
border-color:blue;
}
</style>
<table width="400" border="1" style="border-color:blue;border-collapse:collapse">
<tr>
<td width="50%">1</td><td colspan="2">2</td>
</tr>
<tr>
<td>3</td><td width="10%">4</td><td width="40%">5</td>
</tr>
<tr>
<td colspan="3">http://wallimn.iteye.com</td>
</tr>
</table>
如果把table-layout:fixed的注释去掉,表格就会变成如下样子(注意看,4与5变成等宽的了):
这是什么原因呢?需要了解一下fixed布局模型的工作步骤:
1.width属性值不是auto的所有列元素会根据width值设置该列的宽度.
2.如果一个列的宽度为auto---不过,表首行中位于该列的单元格width不是auto---则根据该单元格宽度设置此列的宽度.如果这个单元格跨多列,则宽度在这些列上平均分配.
3.在以上两步之后,如果列的宽度仍为auto,会自动确定其大小,使其宽度尽可能相等.此时,表的宽度设置为表的width值或列宽度之和(取其中较大者).如果表度度大于其列宽总和,将二者之差除以列数,再把得到的这个宽度增加到每一列上.
.........................................
这种方法的速度很快,因为所有列宽都由表的第一行定义.首行后所有行中的单元格都根据首行所定义的列宽确定大小.后面这些行中的单元格不会改变列宽.这意味着为这些单元格指定的width值都会被忽略.
2010-09-13
这个问题比较好解决,可以把表格的第一行行高设置为1px,专门用来分配列宽。
tr.first{
height:1px;
font-size:1px;
line-height:1px;
}
然后把第一行加上class="first"。
当然,也可以通过不使用fixed属性来解决。
- 大小: 17.2 KB
- 大小: 17.7 KB
分享到:
相关推荐
在实施解决方案时,还需注意一些细节问题,例如确保CSS中table-layout属性设置为fixed,并且表格宽度也被适当地指定,以便于固定布局的生效。同时,当使用col标签指定宽度时,也需要在相应的col标签中明确指定width...
"固定table宽度 table-layout: fixed" 是一个CSS属性,用于解决这个问题,确保表格在不同场景下保持一致的列宽。 首先,让我们了解一下表格布局的默认模式——"auto"布局。在默认情况下,表格的列宽会根据其内容的...
默认情况下,表格布局(`table-layout: auto`)会根据单元格内容的宽度自适应调整,这可能导致表格渲染较慢,因为浏览器需要等待所有内容加载完毕才能确定表格的最终宽度。而设置`table-layout: fixed`,则会让浏览器...
在使用table展示内容时,经常会出现内容过长超出了单元格(td)的宽度,导致无法完整展示全部内容的情况。传统的table布局常常会导致内容溢出,影响页面的整体美观性。本篇文章针对的就是这个常见的问题,即如何设置...
在Bootstrap框架中,当表格(table)中的内容过长时,可能会导致表格列(td)的宽度超出预设,影响整体布局。为了实现内容过长时以省略号表示的效果,我们可以采用CSS样式来控制表格的显示。以下是具体解决方法的...
解决这个问题的方法是使用`overflow`属性来控制单元格内部的滚动条或文本换行。 总结来说,`table-layout`属性是CSS中一个重要的优化工具,尤其对于包含大量数据或需要快速呈现的表格。通过明智地使用`fixed`布局,...
- **灵活性**:DataGrid允许程序员通过模板列进行高度自定义,包括列头样式、单元格样式等。 - **事件驱动**:它有丰富的事件模型,如ItemCreated、ItemCommand等,方便开发者在特定操作时执行自定义逻辑。 - **...
<table style="table-layout: fixed; word-break: break-all;"> <td style="background-color: #eeeeee;"> <!-- 这里放置大量的文本 --> document.write(new Array(100).join("d")); </table> ``` - *...
这里,`table-layout: fixed`属性让表格采用固定布局,即使内容超过设定宽度,单元格也不会自动扩展。`overflow: hidden`隐藏超出单元格的内容,`text-overflow: ellipsis`添加省略号表示内容被截断,`white-space: ...
table-layout:fixed; } ***本文关键词:table-layout属性值、定义和用法、固定表格布局、自动表格布局。 1定义和用法 tableLayout属性用来显示表格单元格、行、列的算法规则。 ①该属性指定了完成表布局时所用...
在表格布局方面,`table-layout:fixed` 与 `table-layout:auto` 也是控制表格布局的重要属性。`fixed` 模式下,表格的列宽在表格加载时就确定,不会根据单元格内容的宽度变化,这提供了更快的渲染速度。而 `auto` ...
这里的`nowrap`属性用于阻止文本在单元格内换行,`table-layout: fixed`属性确保表格的列宽是固定的,不受内容宽度的影响。同样,我们使用`overflow: hidden`和`text-overflow: ellipsis`来实现文本的省略。 值得...
在前端开发领域,尤其是网页布局设计中,自动换行是一个至关重要的功能,它能够确保文本在不同的屏幕尺寸或容器宽度下能够自适应地显示,避免文本溢出或排版错乱的问题。本文将深入探讨五种不同的自动换行策略,这些...
对于表格元素,可以设置`table-layout: fixed`,并为单元格指定宽度,这样可以防止内容撑大表格: ```css table { table-layout: fixed; width: 100%; } td { word-wrap: break-word; overflow: hidden; text-...
<table style="table-layout:fixed; word-break:break-all; word-wrap:break-word"> 这是一段很长的文字,它会被自动换行,即使其中包含英文单词thisisaverylongwordthatwillbebroken. </table> ``` 在这段...
4. **CSS控制图片自适应**:利用CSS的`max-width`和`width`属性以及`overflow:hidden`,确保图片在任何情况下不超过设定的最大宽度。例如,`img {max-width: 600px; width:expression(this.width > 600 ? "600px" : ...
- 固定表格布局:`table-layout:fixed`让表格宽度固定,不受内容影响。 - 边框处理: - 方法1:分别设置边框宽度,如`border-left`, `border-right`等。 - 方法2:`border-collapse:collapse`合并单元格边框,...