【发布时间】:2012-05-24 10:10:54
【问题描述】:
我有一个网页显示在桌面应用程序的 WPF WebBrowser 控件中。我刚刚更新了网页以使用样式按钮而不是默认的灰色按钮,方法是从 asp.net Button 类型更改为 asp.net LinkButton 并对其应用 CSS 样式:
a.btnSave
{
background: url(Resources/Images/btnSave.png) no-repeat 0 0;
display:inline-block;
width: 75px;
height: 23px;
text-indent: -9999px;
}
a.btnSave:hover {background-position: 0 -23px;}
a.btnCancel
{
background: url(Resources/Images/btnCancel.png) no-repeat 0 0;
display:inline-block;
width: 75px;
height: 23px;
text-indent: -9999px;
}
a.btnCancel:hover {background-position: 0 -23px;}
a.btnReset
{
background: url(Resources/Images/btnReset.png) no-repeat 0 0;
display:inline-block;
width: 75px;
height: 23px;
text-indent: -9999px;
}
a.btnReset:hover {background-position: 0 -23px;}
...
<asp:LinkButton ID="btnSave" runat="server" CssClass="btnSave" OnClick="btnSave_Click" OnClientClick="OnSubmit()" UseSubmitBehavior="False" Text=" " />
<asp:LinkButton ID="btnCancel" runat="server" CssClass="btnCancel" OnClick="btnCancel_Click" OnClientClick="OnSubmit()" CausesValidation="False" Text=" " />
<asp:LinkButton ID="btnReset" runat="server" CssClass="btnReset" OnClick="btnReset_Click" OnClientClick="OnSubmit()" CausesValidation="False" Text=" " />
当我在 IE 8(或 firefox)中查看页面时,按钮显示正确。但是当我在应用程序的 WebBrowser 控件中加载页面时,按钮丢失了。如果我将鼠标悬停在它们应该在的位置上,我不会收到手形图标,因此不仅仅是没有加载图像。当我查看源代码时,锚标记就在那里,如果我复制源代码并将其保存到 HTML 文件并在浏览器窗口中打开它,它们确实会正确显示。过去,我遇到过 WebBrowser 无法像浏览器那样显示浮动 div 的问题,我不得不切换到表格布局。是不是不支持inline-block显示类型什么的?
如果重要的话,这是为页面声明的文档类型:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
【问题讨论】:
-
我刚刚发现,如果我在 IE 中打开兼容性视图,按钮就会消失。这可能是问题吗?
-
它正在使用兼容模式,如果我使用注册表项将其关闭,或者在我的上设置 页面按钮出现!这给我留下了这些问题:我的 !DOCTYPE 不是指定使用最新的 HTML5/CSS3 标准吗?如果是这样,我的代码有什么问题?为什么 会使其正常工作,而仅 却不能?
-
新标签并不真正相关。我们在这里不是在谈论 HTML5 或 CSS3。
-
@BoltClock 请解释为什么我们不是。这似乎是决定按钮是否显示的因素。我想以符合 html5/css3 的方式执行此操作。
-
因为你不是在写 HTML5/CSS3。
标签: html css webbrowser-control doctype x-ua-compatible