MS Edge これはバグ?仕様?

Windows10の無償アップデート終了からはや1週間経ちました。

うちのアホ会社の土壇場でのPCのアップデートが結構大変でしたが、それもどうにかこうにか終わりホッと一息ついていましたが・・・。

 

Microsoft Edgeを触ってみて、EdgeのCSSのバグ?仕様?なものに気づいた。

CSSの書き方の問題もあるのでバグと言い切るには微妙で、仕様にしては「えー?」となる問題だったので、気づいたこととしてとりあえず書いておきます。

 

position fixed & border-radius > position fixed の構造での事象

結構前にIE6の呪縛から解放されて、それから割と頻繁に使っていたposition:fixed。

スマホChromeで位置算出が変だったり他、何かと問題を起こしやすいこのスタイルですが・・・。

Edgeでも「あ!」と気づいた。

position fixedとborder-radiusを一緒にかけた要素の中に更にposition fixedをかけた子要素を配置すると、親要素のウィンドウ追従がガタつく。

<style>
.fix1{
   position:fixed;
   top:10px;
   left:10px;
   z-index:999; 
}
.fix2{
  position:fixed;
  top:10px;
  right:10px;
  z-index:999; }
</style>
<div class="fix1">
  <div class="fix2">子要素</div>
</div>

上記の指定では、.fix1の追従がガタつきます。

確かにこんなことをするのはだいぶ特殊ですが・・・こりゃないよ。

 

position fixedとdisplay inline-blockでの事象

親の要素にposition fixed、子要素にp等要素を入れ、その後でinline-block要素を複数配置して1つ目のinline-block要素だけにfloatをかける。

通常position fixedは、この例の場合、fixedをかけた要素はinline-blockの子要素の長さに応じて収まるように変わるはずだが・・・。

なんとEdgeの場合、これが収まらない。

 

 

IE7~11では起きなかった事象である。無論、他のモダンブラウザでも起きない。

<style>
.tag div{
  display:inline-block; }
.tag .base{
  float:left;
}
</style>
<div class="tag">
  <p>横並び</p>
  <div class="base">子要素1</div>
  <div>子要素2</div>
</div>

上記の指定の場合、.base以降がカラム落ちする。

 

:hover&color&transitionの継承が複雑になった際の事象

このブログでも起きている事象です。更新前に「え!?」となった。

スタイル継承を利用して複雑に:hover擬似要素で、colorとbackground-colorとtransitionを重ねると継承前の色が途中出てきたり、transitionを無視してテキスト色が変わったりする。

というか、普通に何の継承もない場合でもたまーに起きたりするのでなんじゃこりゃ。

 

 

Edgeは動作がIEと比べて軽くなったり、要素検証の機能強化とかJSいじれたりとか、Google Cromeを意識した作りをしているみたいです。

久しぶりにMicrosoft頑張ったなーとは思ったんですが・・・お家芸とまで言えるIEのオレオレ仕様はやはり健在のようですね・・・。

これらで触れたのは氷山の一角でしょうけど、3項めが結構衝撃的で、IE11の時に比べてCSS3の機能関係が弱くなった気がします。

IE10~11でCSS3はほぼサポートされてたのに、それまでのノウハウはいずこへ・・・。

IE9~10への過渡期みたいな印象ですね。

 

まぁ今後のアップデートに期待しましょう。

カテゴリ

この記事のコメント

コメントはないです。

コメントを残す

メールアドレスが公開されることはありません。