CSS生成空单元格';世界的边界出现了吗?
即使单元格为空,我应该使用什么CSS来显示单元格的边框CSS生成空单元格';世界的边界出现了吗?,css,Css,即使单元格为空,我应该使用什么CSS来显示单元格的边框 特别是IE 7。如果我记得的话,某些IE中不存在细胞,除非它充满了某种东西 如果你能放一个(不间断的空格)来填补空白,这通常会起作用。或者你需要一个纯CSS解决方案 显然,IE8默认显示单元格,您必须使用空单元格隐藏它:hide,但它在IE7中根本不起作用(默认情况下隐藏)。我想这是CSS无法做到的; 您需要在每个空单元格中添加一个,以便在IE中显示边框。我刚刚发现以下内容。它符合标准,但在IE中不起作用 empty-cells: show
特别是IE 7。如果我记得的话,某些IE中不存在细胞,除非它充满了某种东西 如果你能放一个
(不间断的空格)来填补空白,这通常会起作用。或者你需要一个纯CSS解决方案
显然,IE8默认显示单元格,您必须使用
空单元格隐藏它:hide
,但它在IE7中根本不起作用(默认情况下隐藏)。我想这是CSS无法做到的;
您需要在每个空单元格中添加一个,以便在IE中显示边框。我刚刚发现以下内容。它符合标准,但在IE中不起作用
empty-cells: show
理想情况下,表中不应该有任何空单元格。或者您有一个数据表,而该特定单元格中没有数据(您应该用“-”或“n/a/”或其他同样合适的符号表示,或者-如果您必须-,如建议的那样),或者您有一个单元格需要跨越一列或一行,或者您正试图用一个您应该使用CSS的表格实现某种布局
我们可以了解更多细节吗?如果将
边框折叠属性设置为折叠
,IE7将显示空单元格。它也会折叠边界,所以这可能不是您想要的100%
td{
边框:1px纯红;
}
桌子{
边界塌陷:塌陷;
}
边界坍塌试验{
边框:1px纯红;
}
桌子{
边界塌陷:塌陷;
}
测试
测试
测试
测试
测试
测试
测试
“IE”在这个上下文中不再是一个有用的术语,因为IE8已经过时了
IE7总是做“空单元格:显示”(或者我听说是这样的…Vista)。
IE8在任何“怪癖”或“IE7标准”模式下总是执行“空单元格:隐藏”。
IE8在“标准”模式下默认为“空单元格:显示”,并通过CSS支持该属性
据我所知,几年来,其他浏览器都正确支持此功能(我知道它是在Firefox 2中添加的)。确保所有单元格中都有数据的另一种方法:
$(document).ready(function() {
$("td:empty").html(" ");
});
我从另一个网站获取此信息,但:
.sampletable {
border-collapse: collapse;}
.sampleTD {
empty-cells: show;}
分别用于表格和TD元素的CSS。空单元格只修复了Firefox(是的,我确实在Firefox中遇到了这个问题),IE 7和8仍然存在问题
这在Firefox 3.6.x、IE 7&8、Chrome和Safari中都适用:
==============================
table {
*border-collapse: collapse;}
.sampleTD {
empty-cells: show;}
==============================
table {
*border-collapse: collapse;}
.sampleTD {
empty-cells: show;}
必须使用*来确保表格样式仅应用于IE浏览器。该问题要求CSS解决方案,但HTML解决方案可能会解决,以下是一个:
尝试将这两个属性添加到table元素:frame=“box”rules=“all”
像这样:
<table border="1" cellspacing="0" frame="box" rules="all">
这个问题由来已久,但仍然是谷歌的头号搜索结果,因此我将添加我的发现:
只需在表格样式中添加border collapse:collapse
,我就可以在IE7中解决这个问题(并且不会影响它们在FF、Chrome等中的显示方式)
最好避免使用CSS修复时添加
或其他间距元素的多余代码。我遇到了这个问题,还没有看到任何真正解决这个问题的答案
问题的产生是因为IE7没有看到单元格的任何内部内容;在编程术语中,单元格的结果是一个null
,与大多数情况一样,您不能对null
设置边框或对其执行任何操作。浏览器需要具有布局的元素/对象才能应用边框/布局
即使是空的
或
也不包含内容,因此不需要渲染任何内容,从而再次导致空的情况
但是,您可以通过提供空的div/span
布局属性,诱使浏览器认为单元格中有内容。最简单的方法是应用CSS样式zoom:1
<table>
<tr><td>Foo</td>
<td><span style="zoom:1;"></span></td></tr>
</table>
福
这种解决方法比使用
更好,因为它不会不必要地弄乱屏幕阅读器,也不会歪曲单元格的值。在较新的浏览器中,您可以使用空单元格:
替代选项
注意:代替Tomalak的评论,应该理解hasLayout与null
无关,它只是比较浏览器如何交互和呈现hasLayout,类似于数据库或编程语言如何与null交互。这是一个难题,但我认为对于那些从程序员变成网页设计师的人来说,这可能更容易理解。如果你不能使用不可破坏的空间,请尝试以下方法:
var tn = document.createTextNode('\ ');
yourContainer.appendChild(ta);
我创建了一个与单元格背景颜色相同的div样式,并写入任何内容(通常为“-”n/a”或“空”)以提供单元格内容。如果您突出显示页面,它会显示出来,但在查看时通常会显示您想要的样子。我使用html和css的混合来创建跨浏览器表格网格:
html
css
到目前为止,我还没有看到任何浏览器出现任何问题。纯CSS就好了。我已经有NBSP在里面了,但感觉很脏。:)据我所知,这是唯一的解决办法,这是我们所做的。我不会那样做。改为添加一个。当放大时,Puting会导致Firefox出现问题。哇,这是一个很好的小提示。不过它在IE8中确实有效,所以只要给它十年左右的时间,你就可以开始了。有趣的是,它也适用于IE6中的标准html,但不适用于ASP.NET表:)我喜欢这个。清晰度提高。如果你有一个非常大的表格(上万个单元格或更大),其中有很多单元格没有内容(75-95%),那么空单元格可能会更有效。我不确定这是否应该是公认的答案,因为正如海报所指出的,它还有其他副作用,