1つだけ過去を変えられるとしたら?

HTMLカテゴリに登録しましたが、CSSの質問です。
divタグの大きさをCSSでwidthとheightで指定し、overflow: hiddenの設定をしました。
ここでdivタグ内に文書を書き、それがCSSで指定したdivタグのサイズ(範囲)を超えてしまった場合、はみ出た部分はoverflow: hiddenにより見えなくなります。
画像でも同様だったのですが、何故かFlash(swfデータ)はIE以外のブラウザ(NN、Firefox、Operaなど)で見たところ、overflowが効いていません。隠したい部分も見えてしまいます。なぜなのでしょうか?

ソースは以下になります。
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/xhtml1/xhtml1-transitional/">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<style type="text/css">
<!--
#clip {
border: 1px solid blue;
width: 500px;
height: 100px;
overflow: hidden;
}
//-->
</style>
<title></title>
</head>
<body>
<div id="clip">
<embed src="flash.swf" width="500" height="250" />
</div>
</body>
</html>

お分かりのように、本来はheight=250pxのswfをheight=100px分だけ表示したいのです。

A 回答 (2件)

flashデータは他の通常出力とは異なり、


わかりやすく言うと、htmlに埋め込まれず特別なレイヤーに
表示されるのでそのような現象になります
ただ単に100pxより下をカットして表示したいのならば、
cssによるoverflowは特に使用せずに、

<embed src="flash.swf" width="500" height="100" scale="noscale" salign="lt" />

とすればよいでしょう

どうしてもoverfrow:hiddenで表示しないようにしたいのならば、

<embed src="flash.swf" width="500" height="250" wmode="opaque" />

のように、htmlに埋め込む記述を追記すれば可能です
ただFlashのwmodeの設定はIE向けに企画された内容とmacromediaが述べています
また、キー操作の不具合等も報告されているので、
できるだけこの方法を避け、前途salign scaleの設定による表示方法の変更をしたほうが無難です
    • good
    • 0

embedでなくobjectでやるとどうなるか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!