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への過渡期みたいな印象ですね。
まぁ今後のアップデートに期待しましょう。
