0

次の HTML コードがあります。ページを 2 つの div に分割し、オブジェクトを左側に配置します。ただし、swf ファイルは左側だけでなく、ページ全体をカバーします。何が問題なのですか?

ありがとう、

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 <title>test</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="language" content="en" />
 <meta name="description" content="" />
 <meta name="keywords" content="" />

 <script src="js/swfobject.js" type="text/javascript"></script>
 <script type="text/javascript">
  var flashvars = {
  };
  var params = {
   menu: "false",
   scale: "noScale",
   allowFullscreen: "true",
   allowScriptAccess: "always",
   bgcolor: "#FFFFFF"
  };
  var attributes = {
   id:"player"
  };

  swfobject.embedSWF("player.swf", "left", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);

 </script>
 <style>
   html, body { height:100%; width:100%; }
   body  { margin:0; padding:0;  }
   #left {
    float: left;
    width: 50%;
   }

   #right { 
    float: right;
    width: 50%;
   }
 </style>
</head>
<body>
<div id="container" >
<div id="left">

  <p><a href="http://www.adobe.com/go/getflashplayer"><img 
   src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" 
   alt="Get Adobe Flash player" /></a></p>
</div>
<div id="right">Test</div>
</div>
</body>
</html>
4

3 に答える 3

2

SWFObject のattributes変数にID を指定すると、SWFObject<object>によって生成された は、ターゲット div (この場合は#left) を、指定した ID (この場合は ) を使用するオブジェクトに置き換えます#player#leftそのID を持つ要素がもうないため、CSS forは機能しません。

<div class="box">
   <div id="left">
      <p> ... </p>
   </div>
</div>

になる

<div class="box">
   <object id="player" ... >
      <param ... />
   </object>
</div>

解決策は、属性に ID を指定しないことです。この場合、オブジェクトはターゲット div で使用される ID を継承します。または、CSS を変更して、オブジェクトが ID#playerを使用しないことを認識します。#left

于 2009-12-11T07:00:29.570 に答える
1

スタイルを次のように変更します。

 <style type="text/css">
   html, body { height:100%; width:100%; }
   body  { margin:0; padding:0;  }
   .box {
        float:left;
        width:50%;
    }
 </style>

次に、body html をこれに変更します (左側の「ボックス」内の Div を置き換えるように:

<div id="container" >

<div class="box">

    <div id="left">
        <p>
            <a href="http://www.adobe.com/go/getflashplayer">
            <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
            </a>
        </p>
   </div>

</div>

<div class="box">
    Test
</div>

</div>

とにかく、これはあなたが私のためにfirefoxで考えていると私が想像した方法で機能しました

于 2009-12-11T03:52:00.063 に答える
0

SWF のネイティブ ディメンションはどれくらいですか? パーセンテージは、コンテナ要素の使用可能なスペースではなく、ファイルの継承された寸法の%を参照していると思います。

もう 1 つの問題は、swf は「オブジェクト」であり、オブジェクトの描画はシステムによって行われるため、コンテナー要素ではなくビューポートの寸法を使用することです。

つまり、動的な寸法が必要な場合は、必要な寸法を計算します。jQuery を使用すると、非常に簡単に行うことができます。

<script src="js/swfobject.js" type="text/javascript"></script>
 <script type="text/javascript">
  var left = $('#left');


  var flashvars = {
  };
  var params = {
   menu: "false",
   scale: "noScale",
   allowFullscreen: "true",
   allowScriptAccess: "always",
   bgcolor: "#FFFFFF"
  };
  var attributes = {
   id:"player"
  };

  swfobject.embedSWF("player.swf", "left", ceil(left.width())+'px', ceil(left.height())+'px', "9.0.0", "expressInstall.swf", flashvars, params, attributes);

 </script>
于 2009-12-11T03:45:56.313 に答える