如何让浏览器显示文本的背景颜色?
How to make a WebBrowser display the background color of text?
我有一个简单的 .html
文件,定义如下。
如果我用普通的浏览器打开它,它的背景颜色可以正确显示。但是我用System.Windows.Forms.WebBrowser控件打开的时候,背景色显示不出来
<head>
<meta charset="UTF-8">
<style>
nw {
background-color: Orange;
}
np {
background-color: DodgerBlue;
}
</style>
</head>
<table style="width:100%">
<tr>
<th>Time Created</th>
<th>Content</th>
</tr>
<tr>
<td>26/11/2018 20:39:21</td>
<td><nw>hello</nw></td>
</tr>
</table>
表单的 TransparencyKey
没有帮助; WebBrowser 没有 BackGround
颜色 属性.
有谁知道为什么以及如何解决?
为了修改 Html 页面内容的方面,您需要修改 HTML
文档本身。
窗体的 TransparencyKey
属性 and/or WebBrowser 控件 BackColor
属性 不相关。这些属性在可用时修改控件的方面,而不是 HTML
内容或其呈现。
同样重要的是:WebBrowser 控件,如果没有 指示,则默认为 IE7 兼容模式。许多 HTML
功能在此模式下不可用。
WebBrowser 的兼容模式 set/modify 有不同的方法 class。
您可以修改注册表项以永久设置 IE11/Edge 兼容模式。看到这个答案:
How can I get the WebBrowser control to show modern contents?
注意Key在CURRENT_USER
分支。您不需要提升权限即可对其进行修改。
此外,这不是 特殊 hack。此注册表值应用per-executable(您在此处注册您自己的程序),它不会修改一般用户设置。臭名昭著的程序使用此方法设置 WebBrowser 控件兼容模式。
另一种non-permanent、per-document方法是使用HTML5格式设置HTMLheader:
<!DOCTYPE html>
<meta http-equiv='x-ua-compatible' content='IE=edge'>
将这些行添加到 Html 文档,将兼容模式设置为 IE11/Edge。
您的文档可以修改如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='x-ua-compatible' content='IE=edge'>
<meta charset="UTF-8">
<style>
nw {
background-color: Orange;
}
np {
background-color: DodgerBlue;
}
</style>
</head>
<body>
<table style="width:100%">
<tr>
<th>Time Created</th>
<th>Content</th>
</tr>
<tr>
<td>26/11/2018 20:39:21</td>
<td><nw>hello</nw></td>
</tr>
</table>
</body>
</html>
我有一个简单的 .html
文件,定义如下。
如果我用普通的浏览器打开它,它的背景颜色可以正确显示。但是我用System.Windows.Forms.WebBrowser控件打开的时候,背景色显示不出来
<head>
<meta charset="UTF-8">
<style>
nw {
background-color: Orange;
}
np {
background-color: DodgerBlue;
}
</style>
</head>
<table style="width:100%">
<tr>
<th>Time Created</th>
<th>Content</th>
</tr>
<tr>
<td>26/11/2018 20:39:21</td>
<td><nw>hello</nw></td>
</tr>
</table>
表单的 TransparencyKey
没有帮助; WebBrowser 没有 BackGround
颜色 属性.
有谁知道为什么以及如何解决?
为了修改 Html 页面内容的方面,您需要修改 HTML
文档本身。
窗体的 TransparencyKey
属性 and/or WebBrowser 控件 BackColor
属性 不相关。这些属性在可用时修改控件的方面,而不是 HTML
内容或其呈现。
同样重要的是:WebBrowser 控件,如果没有 指示,则默认为 IE7 兼容模式。许多 HTML
功能在此模式下不可用。
WebBrowser 的兼容模式 set/modify 有不同的方法 class。
您可以修改注册表项以永久设置 IE11/Edge 兼容模式。看到这个答案:
How can I get the WebBrowser control to show modern contents?
注意Key在CURRENT_USER
分支。您不需要提升权限即可对其进行修改。
此外,这不是 特殊 hack。此注册表值应用per-executable(您在此处注册您自己的程序),它不会修改一般用户设置。臭名昭著的程序使用此方法设置 WebBrowser 控件兼容模式。
另一种non-permanent、per-document方法是使用HTML5格式设置HTMLheader:
<!DOCTYPE html>
<meta http-equiv='x-ua-compatible' content='IE=edge'>
将这些行添加到 Html 文档,将兼容模式设置为 IE11/Edge。
您的文档可以修改如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='x-ua-compatible' content='IE=edge'>
<meta charset="UTF-8">
<style>
nw {
background-color: Orange;
}
np {
background-color: DodgerBlue;
}
</style>
</head>
<body>
<table style="width:100%">
<tr>
<th>Time Created</th>
<th>Content</th>
</tr>
<tr>
<td>26/11/2018 20:39:21</td>
<td><nw>hello</nw></td>
</tr>
</table>
</body>
</html>