DOCTYPE html PUBLIC DTD XHTML 1.0 Transitional

时间:2010-11-10 21:08:32

标签: asp.net flash visual-studio-2010 doctype xhtml-transitional

在我的母版页中存在以上行

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

但为什么会让我遇到问题呢?

在内容页面中,我嵌入了SWF对象

var flashvars = {xmlPath: "xml/" + GetQueryString("x") + ".xml" };
  var params = { allowFullScreen: "true", wmode: "transparent" };
  var attributes = {};
  swfobject.embedSWF("main.swf", "gallery", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);

如果我注释掉DOCTYPE“行”SWF对象填满屏幕(应该如此)。 如果我不注释掉DOCTYPE“行”,则SWF对象仅在水平方向上填充。

那么这里发生了什么?我可以同时在垂直和水平方向上平铺DOCTYPE和SWF对象吗?

更新:以下是未成功应用的CSS

<style type="text/css">
*{
margin:0;
padding:0;
}
html, body, #gallery { background: #EFEFEF; height:100%; }
body { margin:0; padding:0; overflow:hidden; }
</style>

另一个更新:在Chrome浏览器中效果很好,在Internet Explorer中,SWF填充了20%的显示内容,位于页面顶部,最后在Firefox中,没有显示任何内容。

1 个答案:

答案 0 :(得分:3)

在标准模式下,如果您希望静态定位的元素与视口的高度相同,则它和所有祖先(可能包括bodyhtml)必须具有CSS {{ 1}}。 height: 100%高度相对于父级的大小,如果父级没有明确的高度,则百分比毫无意义。

如果您希望绝对定位的元素与视口的高度相同,则它是相同的,但定位包含块而不是每个元素。这种情况通常更容易,因为视口和元素之间可能没有任何包含块。

在Quirks模式下(这是您删除doctype时获得的),100%通常会产生不同的效果,在许多通常不太有用的错误中。