なぜ、IE8では、画像が表示されないことがあるのか
なぜ、IE8では画像が表示されないことがあるのか調べてみた互換表示ボタンがあるから、それを押してください。
などと解説がある。
閲覧者としては、それでいいことなんだけれども、
プレイヤーとしてどうかというと、htmlのような簡単なものにどえらい手間をかけて、わざわざ標準モードにしているかといえば、質の高いコンテンツを提供するというところに尽きる
自分に降りかかった火の粉、互換モードでお茶を濁そうと試みたが、実際問題は、互換モードなんて使えないものだった
ブログ1個作って検証する運びになりました。
shrink-to-fit
CSS2 仕様では、要素の横幅が明確ではないと、フロートを指定された要素の横幅は常に "0" とみなされます(CSS2.1 仕様では、width : auto ; であれば、横幅は 0 ではなく、"shrink-to-fit" width と呼ばれる、「内容にぴったりと合うように縮んだ」幅になるとあります)。
UA 側の実装は横幅が指定されていなくても、適当な領域を勝手に確保するようになっているようです(これが、一応の shrink-to-fit width のようですが振る舞いは不安定)。
-
<style> .float-block{float:left;padding:1em;} </style>... <div class="float-block"> <img src="some.jpg" width="150" height="150" alt="test" /> </div>
このようにするとIE8は、div幅がなくなる。明示しないと画像は見えない。
imgではなくテキストなどだとその幅分は表示される。
スタイルを指定する時には、divでラップしないでimg に直接指定してやる。または、divに幅を明示する必要がありそうです。
私の場合、なぜdivでラップしたのか?
templateを書いていて、テンプレート関数に、id や クラス を 簡単に追加できなそうだったという簡単な理由
<div class="gallery-thumb"> <?php echo wp_get_attachment_link( $image->ID ,array(150,150),true); ?> </div>
でスタイルに、幅を指定していなかった。
そのような事をやっているのは、私だけでしょうか?
思い当たる人は、IEで現物を当たってみてはいかがでしょうか
ほんとにそうなの?
と思った人は、Please show me it | Please return it.で確認してみてくださいね
43
When block-level non-replaced element in normal flow is preceded by a floated sibling element, the horizontal hover area of the floated element is reduced and based on the ’shrink-to-fit’ model
Regression: Bug not present in IE7
Test Case
Bug Ticket
45
‘Shrink-to-fit’ width of parent based on intrinsic width of replaced child element (when ‘width’ is specified as ‘auto’) is wrongly retained when value of max-width
of child is smaller than its intrinsic width
Regression: Bug not present in IE7
Credit to the_dees for originally reporting this
Test Case
Bug Ticket