这是我没有看到太多讨论的内容。我正在开发一种支持多语言的软件,因此,我需要使用Unicode兼容字体,对吧?我在哪里可以找到这样的字体,我怎么知道他们支持中文,韩文,日文,无论有什么?
遗憾的是,你不能使用互联网上的漂亮字体,因为大多数字体只支持ASCII。
答案 0 :(得分:3)
来自我的unicode / font书籍收藏
http://en.wikipedia.org/wiki/Category:Free_software_Unicode_typefaces
http://en.wikipedia.org/wiki/Unicode_typefaces
http://unifoundry.com/unifont.html
http://www.fileformat.info/info/unicode/font/index.htm
http://www.alanwood.net/unicode/fontsbyrange.html
http://www.alanwood.net/unicode/fonts.html
答案 1 :(得分:3)
只是为了确保:不要指望找到支持繁体中文,简体中文和日文的字体。
相同的Unicode代码点存在字形差异,因此本机用户会立即发现您没有使用适合其语言的字体。
对于Web应用程序,最好提供一个字体列表,在列表中您需要一个典型的Windows字体,一个典型的Mac字体和一个通用的字体(如“serif”)。
使用正确的lang标记标记html页面(或段落)将帮助某些(更聪明的)浏览器选择正确的字体(如果未安装特定字体)。
答案 2 :(得分:2)
http://www.alanwood.net/unicode/fonts.html
Alan Wood的网站上有很多Unicode字体。每种字体都有一个列表,说明它支持哪些语言。
另一个很棒的网站是Unifont的字体指南。要找到它只是谷歌,它没有声誉链接它。在那里,只需点击网站顶部的大陆标签即可查看包含这些国家/地区语言的字体。
答案 3 :(得分:0)
您可以使用 Icomoon App 等工具创建自己的自定义网络字体。
Icomoon应用程序允许您执行以下各项操作:
我使用Icomoon应用程序创建 Emoji emoticon font 以及基于每个项目创建自定义图标字体。
要在CSS中包含图标字体,您可以包含以下代码:
@font-face {
font-family: 'myfont';
src:url('fonts/myfont.eot?-td2xif');
src:url('fonts/myfont.eot?#iefix-td2xif') format('embedded-opentype'),
url('fonts/myfont.woff?-td2xif') format('woff'),
url('fonts/myfont.ttf?-td2xif') format('truetype'),
url('fonts/myfont.svg?-td2xif#myfont') format('svg');
// Different URLs are required for optimal browser support
// Make sure to :
// 1) replace the URLs with your font's URLs
// 2) replace `#myfont` with the name of your font
font-weight: normal; // To avoid the font inherits boldness
font-style: normal; // To avoid font inherits obliqueness or italic
}
.icon {
font-family: 'myfont', Verdana, Arial, sans-serif; // Use regular fonts as fallback
speak: none; // To avoid screen readers trying to read the content
font-style: normal; // To avoid font inherits obliqueness or italic
font-weight: normal; // To avoid the font inherits boldness
font-variant: normal; // To avoid the font inherits small-caps
text-transform: none; // To avoid the font inherits capitalization/uppercase/lowercase
line-height: 1; // To avoid the font inherits an undesired line-height
-webkit-font-smoothing: antialiased; // For improved readability on Webkit
-moz-osx-font-smoothing: grayscale; // For improved readability on OSX + Mozilla
}
要在HTML中使用图标,您可以执行以下各项操作:
<!-- Method 1 -->
<!--- * * * * * * * * * * * * -->
<!-- Set a font-family for an entire HTML element -->
<!-- Define your icon fonts in your CSS font-family after your regular fonts -->
<!-- This means that regular characters are default. Icons are a fallback -->
<!-- Use UTF-8 characters directly in your HTML for improved human readability -->
<div class="rate"><p>I rate this movie ★★★★☆!!</p></div>
<!-- Method 2 -->
<!--- * * * * * * * * * * * * -->
<!-- Set a font-family for an entire HTML element -->
<!-- Define your icon fonts in your CSS font-family after your regular fonts -->
<!-- This means that regular characters are default. Icons are a fallback -->
<!-- Use entity codes in your HTML when UTF-8 support is uncertain -->
<div class="rate"><p>I rate this movie ★★★★☆!!</p></div>
<!-- Method 3 -->
<!--- * * * * * * * * * * * * -->
<!-- Set a font-family only for the icons but not the HTML elements that include them -->
<!-- Define your icon fonts in your CSS font-family before your regular fonts -->
<!-- This means that icons are default. Regular characters are a fallback -->
<!-- Use UTF-8 characters directly in your HTML for improved human readability -->
<p>I rate this movie <span class="icon">★★★★☆</span>!!</p>
<!-- Method 4 -->
<!--- * * * * * * * * * * * * -->
<!-- Set a font-family only for the icons but not the HTML elements that include them -->
<!-- Define your icon fonts in your CSS font-family before your regular fonts -->
<!-- This means that icons are default. Regular characters are a fallback -->
<!-- Use entity codes in your HTML when UTF-8 support is uncertain -->
<p>I rate this movie <span class="icon">★★★★☆</span>!!</p>
<!-- Method 5 -->
<!--- * * * * * * * * * * * * -->
<!-- Set a font-family only for the icons and use a separate HTML tag for each icon -->
<!-- Define your icon fonts in your CSS font-family before your regular fonts -->
<!-- This means that icons are default. Regular characters are a fallback -->
<!-- Use UTF-8 characters directly in your HTML for improved human readability -->
<p>I rate this movie
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">☆</span>
!!
</p>
<!-- Method 6 -->
<!--- * * * * * * * * * * * * -->
<!-- Set a font-family only for the icons and use a separate HTML tag for each icon -->
<!-- Define your icon fonts in your CSS font-family before your regular fonts -->
<!-- This means that icons are default. Regular characters are a fallback -->
<!-- Use entity codes in your HTML when UTF-8 support is uncertain -->
<p>I rate this movie
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">☆</span>
!!
</p>
<!-- Method 7-->
<!--- * * * * * * * * * * * * -->
<!-- Set a font-family only for the icons and use a separate HTML tag for each icon -->
<!-- Define your icon fonts in your CSS font-family before your regular fonts -->
<!-- This means that icons are default. Regular characters are a fallback -->
<!-- Use the 'content' style rule with a ':before selector' in your CSS -->
<p>I rate this movie
<span class="icon icon-star"></span>
<span class="icon icon-star"></span>
<span class="icon icon-star"></span>
<span class="icon icon-star"></span>
<span class="icon icon-star-unfilled"></span>
!!
</p>
如果您想选择方法7,则需要一些额外的CSS代码。这个CSS代码看起来像这样:
.icon-star:before {
content: "\2605";
}
.icon-star-unfilled:before {
content: "\2606";
}
Iconic , Font Awesome 或 Glyphicons 等图标字体通常都使用方法7。这样做,以避免您必须从备忘单中复制粘贴特殊字符或强制使用HTML实体。
然而,这是一种有几个缺点的方法。首先,它需要支持:before
CSS选择器以及对UNICODE字符使用转义序列。 IE6-7和certain versions of Webkit都没有提供这种支持。
另一个缺点是您必须为每个图标使用单独的HTML标记,每个标记对应于图标字体中的一个字符。与其他方法不同,方法7无法在HTML标记内显示多个图标。
其他方法也有其自身的缺点。方法1,3和5要求您从备忘单中复制粘贴字符或使用手段将字符本身放在代码中。您的代码编辑器可能无法显示该字符,或者如果图标字体使用该字符的非标准映射,则它可能会显示与图标字体中的字符不同的字符。
方法1,3和5还要求您的浏览器使用正确的编码来显示正确的字符。对于UNICODE字符,这并不像ASCII字符那样明显。但是,应该通过在HTML文档的<meta charset="utf-8" />
中的某处添加元标记head
来确保这一点。
方法2,4和6不要求您复制粘贴字符,但它会使您的代码对人类的可读性降低,并使代码的任何更改更容易出现人为错误。此外,您需要查找要使用的每个图标的HTML实体代码,或者您需要记住它们。虽然这同样适用于方法7中使用的类,但这些类比HTML实体代码更容易记忆。