« 2007年10月 | TOP | 2007年12月 »

2007年11月05日

Flashとmin-height

仕事で詰まったのでメモしておきます。
Flashを100%表示させた場合にも解像度の小さいディスプレイのためスクロールを表示させたい場合にCSSでmin-heightを使いました。

#flashcontent{
width:100%;
height:100%;
min-width:1000px;
min-height:600px;
}
こんな感じで。 ちなみにIE6にmin-heightを適用させるにはこんな感じで実装できます。 IE6でmin-width,max-widthを実装する:CSS | Tech de Go ところがこれを使うとSafariとOperaではちゃんと動かなかったのです。 画面外のFlashが描画されておらずスクロールした分が白くなっちゃう。 IE、Firefoxでは特に問題御座いません。 CSSの問題かと思っていろいろ検証してみたんですがFlash以外だと問題が無いようで、FlashPlayerとmin-heightがなんだか変な感じだと。ちなみにmin-widthは特に問題なく横へのスクロールは大丈夫。 やり方に問題は無いのでどうした物かとしばらく悩みましたが、結局はCSSでmin-heightを指定するのをやめ、JSでFlashのボックスの高さを制御するように変更してみた。

こんな感じで


function sizecontroll(){
var flashcontent = document.getElementById("flashcontent");
if(document.body.clientWidth < 1010){
flashcontent.style.width = "1000px";
}else{
flashcontent.style.width = "100%";
}

if(document.body.clientHeight < 660){
flashcontent.style.height = "650px";
}else{
flashcontent.style.height = "100%";
}
}


bodyタグにonresizeとonloadにこのfunctionを設定しておきます。
こうしたところ意図どおりに動いてくれました。万事OK。モウマンタイ。

2007年11月30日

ActiveXコントロールのアクティブ化が不要に

なります。
Flashを埋め込む際にこれを回避するためにjavascriptを使用していたわけですが面倒な作業をしなくていいようになりそうです。
windowsアップデートにIE7が組み込まれてIEが(強制的に?)アップデートされるようです。
2008年4月の予定。
特許を持ってる会社との和解が成立したとか…。
JSを使うことでありえない不具合とか経験していたので助かります。

参考
http://coliss.com/articles/browser/ie/609.html