我们需要在内部web应用程序中显示一个标记符号(✓或✔),理想情况下希望避免使用图像。

必须从XP盒子上的IE 6.0.2900开始工作,理想情况下我们需要它是跨浏览器的(IE + FF的最新版本)。

下面将显示方框,尽管将浏览器编码设置为UTF-8 (META工作得很好,不是问题)。默认字体是Times New Roman(可能是一个问题,但尝试Lucida Sans Unicode没有帮助,我既没有安装Arial Unicode MS,也没有安装Lucida Grande)。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
 &#10003; &#10004;
</body>
</html>

感谢任何帮助。


在ie6.0和ie7下的工作如下:

<html>
<head>

</head>
<body>
 <span style="font-family: wingdings; font-size: 200%;">&#252;</span>
</body>
</html>

如果有人能在Windows下查看FF,我会很感激。我很确定它不会在非Windows的盒子上工作。


当前回答

你可以添加一个小的白色的Base64编码GIF(在线生成器在这里):

url("data:image/gif;base64,R0lGODlhCwAKAIABAP////3cnSH5BAEKAAEALAAAAAALAAoAAAIUjH+AC73WHIsw0UCjglraO20PNhYAOw==")

以Chrome为例,我用它来设置复选框控件的样式:

INPUT[type=checkbox]:focus
{
outline:1px solid rgba(0,0,0,0.2);
}

INPUT[type=checkbox]
{
background-color: #DDD;
border-radius: 2px;
-webkit-appearance: button;
width: 17px;
height: 17px;
margin-top: 1px;
cursor:pointer;
}

INPUT[type=checkbox]:checked
{
background:#409fd6 url("data:image/gif;base64,R0lGODlhCwAKAIABAP////3cnSH5BAEKAAEALAAAAAALAAoAAAIUjH+AC73WHIsw0UCjglraO20PNhYAOw==") 3px 3px no-repeat;
}

如果你只是想把它放在IMG标签中,你可以这样做:

<img alt="" src="data:image/gif;base64,R0lGODlhCwAKAIABAP////3cnSH5BAEKAAEALAAAAAALAAoAAAIUjH+AC73WHIsw0UCjglraO20PNhYAOw==" width="11" height="10">

其他回答

为什么不在只读模式下使用HTML输入复选框元素呢

<input type="checkbox" disabled="disabled" /> and
<input type="checkbox" checked="checked" disabled="disabled" />

我认为这在所有浏览器上都可以工作。

我认为您使用了不太受支持的Unicode值,这些值并不总是为所有代码点提供字形。 试试下面的字符:

(0x2610, Unicode十六进制[HTML十进制:&#9744;]):空(未选中)复选框 ☑(0x2611 [HTML十进制:&#9745;]):前一个复选框的选中版本 ✓(0x2713 [HTML十进制数:&#10003;]) ✔(0x2714 [HTML十进制数:&#10004;])

编辑:似乎有一些困惑关于第一个符号,☐x2610 / 0。这是一个空的(未选中的)复选框,所以如果你看到一个框,这就是它应该看起来的样子。它是☑/ 0x2611的对应版本,后者是检查过的版本。

although设置浏览器编码为UTF-8

(如果你使用的是数字字符引用,当然使用的是什么编码并不重要,浏览器会直接从数字中获得正确的Unicode码点。)

<span style="font-family: wingdings; font-size: 200%;">&#252;</span>

如果有人能在Windows下查看FF,我会很感激。我很确定它不会在非Windows的盒子上工作。

我在火狐3、Opera和Safari浏览器上都失败了。奇怪的是,它可以在另一个Webkit浏览器Chrome上运行。在Linux上也失败(显然,因为Wingdings没有安装在那里;它安装在mac上,但如果Safari没有它,这对你没有帮助)。

此外,这是一个相当讨厌的黑客——这个字符在任何意图和目的上都是“ü”,并且会以这种方式出现在搜索引擎上,或者如果文本是复制粘贴的。正确的Unicode码位是正确的选择,除非你真的别无选择。

问题是Windows捆绑的字体中没有U+2713 CHECK MARK('✓')。你在Windows机器上唯一可能找到的是“Arial Unicode MS”,这并不是真正的依赖。所以最后我认为你必须:

使用一个更好支持的不同字符(例如。'●' -子弹,由SO使用),或 使用图像,并将“✓”作为Alt文本。

客户端机器需要一种适当的字体,该字体具有用于显示该字符的字形。但是Times New Roman没有。试试Arial Unicode MS或Lucida Grande吧:

<span style="font-family: Arial Unicode MS, Lucida Grande">
    &#10003; &#10004;
</span>

这适用于我的Windows XP在IE 5.5, IE 6.0, FF 3.0.6。

我通常使用fontawesome字体(http://fontawesome.io/icon/check/),你可以在html文件中使用它:

 <i class="fa fa-check"></i>

或者在css中:

content: "\f00c";
font-family: FontAwesome;