为什么IE7&IE8表示;hasLayout',当它没有't

Why is IE7 & IE8 says that it 'hasLayout', when it doesn't?

本文关键字:hasLayout IE7 amp IE8 表示 为什么      更新时间:2023-09-26

HTML:

  <div class="table" >
      <div class="row" >
        <span>Tb with DIV</span> <span>col2</span> <span>col3</span>
      </div>
        <div class="row" >
        <span>col1</span> <span>col2 test</span> <span>col3</span>
      </div>
        <div class="row" > <span>col1</span> <span>col2</span> <span>col3 test</span>
      </div>
    </div>
    <table>
      <tr id="testRow">
        <td>Tb with <'table'></td> <td>col2</td> <td>col3</td>
      </tr>
      <tr >
        <td>col1</td> <td>col2 test</td> <td>col3</td>
      </tr>
      <tr >
        <td>col1</td> <td>col2</td> <td>col3 test</td>
      </tr>
    </table>

CSS:

.table, table {
    display:table; 
        /*
        width:200px; 
        height:100px;
        zoom:1;
        */
        }
.row  { display:table-row; }
.row, tr {
        width:200px !important;
        min-height:1px !important;
        zoom:1;
        white-space:nowrap;
   -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
    filter: alpha(opacity=20);
    -moz-opacity:0.2;
    -khtml-opacity: 0.2;
    opacity: 0.2;
}
.row span, td {display:table-cell;padding: 5px;}

Javascript

$(function () { 
    console.log (document.getElementById('testRow2').currentStyle.hasLayout);
    //$('.row, tr').fadeTo('fast',0.2);
});

jsbinjsfiddle

因为不透明性不起作用,我应该在控制台中得到"false"(对于IE7和8),但结果是"true"

元素是否真的"hasLayout",但由于其他原因,不透明性不起作用?

尽管我对此表示怀疑,因为即使是jQuery也无法设置不透明度。

看起来所有"table"元素默认都有hasLayout===truetropacity不起作用,因为您需要为td定义opacity