在我的母版页中存在以上行
<!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中,没有显示任何内容。
答案 0 :(得分:3)
在标准模式下,如果您希望静态定位的元素与视口的高度相同,则它和所有祖先(可能包括body
和html
)必须具有CSS {{ 1}}。 height: 100%
高度相对于父级的大小,如果父级没有明确的高度,则百分比毫无意义。
如果您希望绝对定位的元素与视口的高度相同,则它是相同的,但定位包含块而不是每个元素。这种情况通常更容易,因为视口和元素之间可能没有任何包含块。
在Quirks模式下(这是您删除doctype时获得的),100%
通常会产生不同的效果,在许多通常不太有用的错误中。