Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS生成空单元格';世界的边界出现了吗?_Css - Fatal编程技术网

CSS生成空单元格';世界的边界出现了吗?

CSS生成空单元格';世界的边界出现了吗?,css,Css,即使单元格为空,我应该使用什么CSS来显示单元格的边框 特别是IE 7。如果我记得的话,某些IE中不存在细胞,除非它充满了某种东西 如果你能放一个(不间断的空格)来填补空白,这通常会起作用。或者你需要一个纯CSS解决方案 显然,IE8默认显示单元格,您必须使用空单元格隐藏它:hide,但它在IE7中根本不起作用(默认情况下隐藏)。我想这是CSS无法做到的; 您需要在每个空单元格中添加一个,以便在IE中显示边框。我刚刚发现以下内容。它符合标准,但在IE中不起作用 empty-cells: show

即使单元格为空,我应该使用什么CSS来显示单元格的边框


特别是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%),那么空单元格可能会更有效。我不确定这是否应该是公认的答案,因为正如海报所指出的,它还有其他副作用,