0

我有以下 HTML 代码,我想做的是将页面分成两个 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

attributes当您在 SWFObject 的变量中指定 ID 时,SWFObject生成的对象将使用您指定的 ID(在本例中)<object>替换目标 div(在本例中)。因此,您的 CSS for将不起作用,因为不再有具有该 ID 的元素。#left#player#left

<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>

然后将您的正文 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 的原生尺寸是多少?我认为百分比是指文件固有尺寸的百分比,而不是容器元素的可用空间。

另一件事可能是因为 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 回答