0

今日、別のオーバーフローがあることがわかりました: auto; 標準モードの(少なくとも)IE9の問題。
例:

<!DOCTYPE html>
<html>
 <body>
  <div id="ovfdiv" style="background-color: #EEEEEE; overflow: auto;">
   <ul>
    <li style="color: black;" onmouseover="javascript:this.style.color='red';" onmouseout="javascript:this.style.color='black';">resize_until_horizontal_scrollbar_appears__then_move_cursor_over_this_text</li>
   </ul>
  </div>
 </body>
</html>

IE 9 が IE9 標準モードでページを実行することを確認します。マウス イベントごとにオーバーフロー div が成長していることに気付くはずです。これは、li 要素のスタイルのみを変更します。

どうすればこれを回避できますか?

4

1 に答える 1

0

overflow: auto; を使用して div のスタイルを更新することで、これを解決しました。それも:

onmouseover="javascript:this.style.color='red';document.getElementById('ovfdiv').className='';"

もちろん、onmouseout にも追加する必要があります。そのすべてのコードをインラインにすることはできません;)次のようなことができる関数に移動します

var ovfdivObj = document.getElementById('ovfdiv');
if(ovfdivObj)
  ovfdivObj.className = ovfdivObj.className;
于 2013-06-26T10:17:18.407 に答える