tr的display属性设置为block后,发生错位的解决方法

本文介绍了一个在IE10浏览器中出现的表格布局问题,即第二个单元格的内容错位到了第一个单元格内的情况。文中提供了两种解决方案:一是将display属性设置为空值;二是设置为“table-row”。这两种方法均适用于IE10及其兼容性视图以及其他主流浏览器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<tr id="rpsw" runat="server" style="display: block">如图

原来在ie8上运行,没有问题的,升级到ie10后,就有了这个问题

第二个td 的内容跑到第一个td里面去了,我找到了两种解决方法:

1.设置display=“”,设为空值,(空值应该就是默认值,我上w3school上查了一下,缺省值是inline,可是用inline带进去,还是有这个问题,所以缺省值不是inline,我想的,我也不清楚是什么,待解决)

2.设置display=“table-row”  (这种也是可以的)

以上两种方法都以ie10、ie10兼容性视图、谷歌、火狐、360这些浏览器试过了,都能正常显示。

 

### HTML CSS 实现 Table Tbody 滚动时固定 Thead 表头 为了实现表格中的 `tbody` 部分可以滚动而 `thead` 固定的效果,可以通过CSS样式来控制。以下是具体方法: #### 方法一:推荐方式 通过设置特定的CSS属性使 `thead` 和 `tbody` 能够独立处理其展示特性。 ```css #tableid>thead>tr { display: table; width: 100%; table-layout: fixed; }[^1] #tableid>tbody { display: block; height: 271px; overflow-y: scroll; } #tableid>tbody>tr { display: table; width: 100%; table-layout: fixed; } ``` 此段代码的关键在于给定了 `tbody` 一个具体的高度并启用了溢出滚动功能;同时保持了每一行的数据按照表格的形式呈现出来,从而实现了表头固定的功能。 #### 方法二:调整宽度以适应滚动条的存在 考虑到浏览器默认情况下会为滚动区域增加额外的空间(即滚动条),这可能会导致列宽不对齐的问题。因此,在某些场景下可能还需要特别指定 `thead` 的宽度以便更好地匹配实际可见的内容区大小。 ```css /* 关键设置 tbody 出现滚动条 */ table tbody { display: block; height: 80px; overflow-y: scroll; overflow-x: hidden; } table thead, tbody tr { display: table; width: 100%; table-layout: fixed; } /* 关键设置:滚动条默认宽度是 16px 将 thead 的宽度减去这个值 */ table thead { width: calc(100% - 1em); } table thead th { background: #ccc; } ``` 这种方法不仅解决了基本的需求——让 `tbody` 可滚动的同时保持 `thead` 不变,而且还考虑到了由于引入滚动条所引起的潜在布局错位问题,确保即使存在滚动条的情况下也能维持良好的视觉效果和用户体验[^3]。 对于更复杂的交互逻辑或是动态数据加载的情况,则建议采用前端框架如 Vue.js 结合 Element UI 组件库来进行开发,这样可以获得更加灵活且易于维护的应用程序结构[^2]。