Firefox在table-cell中的位置绝对

时间:2013-11-14 13:44:10

标签: javascript jquery html css firefox

令人惊讶的是,不是IE导致我麻烦,而是Firefox。

小提琴: http://jsfiddle.net/EwUnt/

此表的重点是突出显示光标所在单元格的行和列。

每次我在Firefox下对它进行测试时,它只会突出显示行本身而不是两列,列和行。(适用于IE,Chrome,Safari和Opera)

在JS小提琴上它运作良好,但是在空白的html或Wordpress上却没有。

我正在用它加载这些库。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="http://codeorigin.jquery.com/ui/1.9.2/jquery-ui.js"></script>

脚本:

    $(document).ready(function () {
function firefoxFix() {

    if ( /firefox/.test( window.navigator.userAgent.toLowerCase() ) ) {

        var tds = document.getElementsByTagName( 'td' );

        for( var index = 0; index < tds.length; index++ ) {
            tds[index].innerHTML = '<div class="ff-fix">' + tds[index].innerHTML + '</div>';                     
        };

        var style = '<style>'
            + 'td { padding: 0 !important; }' 
            + 'td:hover::before, td:hover::after { background-color: transparent !important; }'
            + '</style>';
        document.head.insertAdjacentHTML( 'beforeEnd', style );

    };

};

firefoxFix();
)};

它出了什么问题?

1 个答案:

答案 0 :(得分:6)

每当涉及表格或display: table-cell时,Firefox都存在相对/绝对定位问题。这已经报告给Firefox开发者,但到目前为止还没有实现修复。 Bug report 1 - Bug Report 2

因此,您width: 100%上的td:hover::after相对于正文而非单元格显示。

您可以通过将td设置为display: inline-block并指定宽度来解决此问题。

修复可以在这里看到:http://jsfiddle.net/EwUnt/27/