我有一个 aspx 页面,其中 1 个表包含 2 行:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
html, body
{
height: 100%;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<table style="height:100%; width:100%">
<tr>
<td>
<img src="img/Logo.png" />
</td>
</tr>
<tr>
<td style="height:100%;">
<asp:Silverlight
ID="sllUI"
runat="server"
Source="~/ClientBin/My.Silverlight.UI.xap"
MinimumVersion="2.0.31005.0"
Width="100%"
Height="100%"
OnPluginLoaded="sllUI_OnPluginLoaded"
PluginBackground="Transparent"
Windowless="true">
</asp:Silverlight>
</td>
</tr>
</table>
</div>
</form>
<body>
</html>
表格正确填满页面,底部行填充增长到顶部行未填满的表格剩余高度,这就是我想要的。问题是 silverlight 控件采用页面的高度,而不是它所在行的高度,这导致我的页面出现滚动条,因为 silverlight 控件的顶部位于它所在行的顶部在,但它的高度是浏览器的 100%。我不知道这是我的 html 还是 silverlight 造成的。我所有的 silverlight 用户控件都设置为自动高度和宽度。我也试过使用 div 而不是表格,我得到了相同的结果。我该如何解决这个问题?
我发现(至少在 IE7 中)我指定的文档类型导致它使用标准模式 IE6,但是如果我把文档类型去掉,它会进入怪癖模式 IE5(我通过使用 DebugBar v5 找到该模式.1.1). Quirks 模式使它能够正确显示,但我认为如果我能在标准模式下正确显示,我宁愿避免使用 quirks 模式。
最佳答案
尝试删除控件中的“高度”和“宽度”属性,如果您已正确定义内部 XAP 的高度和宽度以进行缩放(即您使用了“自动”),那么它应该遵守 DOM 边界它包含在页面中。
关于html - Silverlight、xhtml 和 100% 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/375784/