IE 8はバグを修正Prototypejsはバグを出しました


今日IE 8で問題を発見しました.js(prototypejsを使用)で作成したelementは、classを設定した後、ブラウザがcssスタイルを「正しい」ものではありません.
 
elementを作成する文は次のとおりです.
 
var wrapper = new Element('div', { className: 'wrapper' });
 
elementのclassプロパティを標準的に設定するには:
 
 
ele.setAttribute('class', 'wrapper');

 
ただし、IE 6、IE 7はすべてBUGがあり、以上の文は役に立たないが、以下の文は可能である.
 
 
element.setAttribute('className', 'wrapper');
  
prototypejsは「私たち」のためにこの互換性のない問題を解決し、setAttributeを1層パッケージし、writeAttributeになった.writeAttributeでは自動マッピングが行われ、「我々」はclassNameをキーとして統一し、IEでなければ「className」を「class」にマッピングし、new Element(xxxxx)内部ではwriteAttributeを使用してAttributeを設定します.だから、IE 8が出る前に、天下太平・・・
 
さあ、今IE 8が来て、MSのエンジニアたちはついにこのBUGを発見して、それを修正しました...setAttribute('class',xxx)が有効になり、setAttribute('className',xxx)が無効になりました@@
 
prototypejsこのバグを修正するには、IEのバージョン分類について議論しなければなりません...でも気づいた
 
 
var ele = new Element('div');
ele.className = 'wrapper';

 
主流ブラウザでも有効です.
 
さらに、IE 8ではmargin:0 auto;親ノードのスタイルでtext-align:centerを定義してから正常に表示する必要があります.