Html Modernizer:如何检测CSS显示:表格单元格支持?

Html Modernizer:如何检测CSS显示:表格单元格支持?,html,css,modernizr,Html,Css,Modernizr,我想在支持我的布局的浏览器中使用display:table和display:table cell。在IE7中,我只想浮动我的列(因为我假设不可能让它在浏览器中工作),但找不到任何关于如何使用Modernizer的信息。有人能帮我吗 我想我可以使用一个有条件的浏览器,但希望不必再打开另一个CSS文件 谢谢 如果您只想对IE7及以下版本应用一条不同的规则,我很乐意不使用Modernizer来完成这项特定的工作 只需执行类似操作,以避免必须“断开另一个CSS文件”: 这将使用提供仅适用于IE7及以下版

我想在支持我的布局的浏览器中使用
display:table
display:table cell
。在IE7中,我只想浮动我的列(因为我假设不可能让它在浏览器中工作),但找不到任何关于如何使用Modernizer的信息。有人能帮我吗

我想我可以使用一个有条件的浏览器,但希望不必再打开另一个CSS文件


谢谢

如果您只想对IE7及以下版本应用一条不同的规则,我很乐意不使用Modernizer来完成这项特定的工作

只需执行类似操作,以避免必须“断开另一个CSS文件”:

这将使用提供仅适用于IE7及以下版本的规则


另一个选择是,出于某种奇怪的原因,这是我得票最高的答案。

。。。如果您想使用Modernizer,可以使用以下代码段:

(function() {
    var displayTests = ["table", "table-caption", "table-cell",
    "table-column", "table-column-group", "table-footer-group",
    "table-header-group", "table-row", "table-row-group"];

    var rules = document.createElement("div").style;

    for (var c=0; c<displayTests.length; c++) {
            var testValue = displayTests[c];
            Modernizr.addTest("display" + testValue, function() {
                    try {
                            rules.display = testValue;
                            return rules.display == testValue;
                    } catch (e) {
                            return false;
                    }
            })
    }
}());
(函数(){
var displayTests=[“表”、“表标题”、“表单元格”,
“表列”、“表列组”、“表尾组”,
“表头组”、“表行”、“表行组”];
var规则=document.createElement(“div”).style;

对于(var c=0;cIE 8,当创建的元素为“tfoot”且显示值为“table header group”时,不会说出真相。以下代码段不会失败,即使IE 8忽略CSS设置并继续在“tbody”下显示“tfoot”

try {
    var x = document.createElement('tfoot').style;
    x.display = 'table-header-group';
    console.log('Both IE 8 and Chrome end up here.');
} catch (e) {
    console.log('Except IE 8 should have ended up here, since it does not move the tfoot element.');
}

从“tfoot”已经将display设置为“table footer group”的意义上来说,它可能是“正确的”;但它是“错误的”,因为它(a)不允许用户重写,并且(b)不告诉用户它将不起作用。我还没有测试过其他浏览器。

如果OP关心有效性,请使用
*+html#菜单li{float:left;}
(当然我们现在不需要
*html
,对吧?)哈哈:)关于有效性的观点很好,谢谢你提供了解决方法。是的,让我们忘记IE6。谢谢大家。我喜欢在可能的时候有有效的代码,所以我想我会使用“*+html”黑客。
try {
    var x = document.createElement('tfoot').style;
    x.display = 'table-header-group';
    console.log('Both IE 8 and Chrome end up here.');
} catch (e) {
    console.log('Except IE 8 should have ended up here, since it does not move the tfoot element.');
}