All articles(网络文学目录) All Pictures(图片目录) All Softwares(软件目录)

 
ASP.NET开发经验(1):解决ASP.NET与CSS中定义的中文字体名的冲突_[Asp.Net教程]

Writer: delv Article type: Programming skills(编程技巧) Time: 2014/1/23 3:11:52 Browse times: 435 Comment times: 0

ASP.NET开发经验(1):解决ASP.NET与CSS中定义的中文字体名的冲突_[Asp.Net教程]


Head photo

Go homepage
Upload pictures
Write articles

ASP.NET开发经验(1) --- 解决ASP.NET与CSS中定义的中文字体名的冲突_[Asp.Net教程] 最近做了一个 ASP.NET 的文档管理程序,有点类似于简化的 SharePoint Portal Server 2001,有兴趣的可以看看程序运行的截图 (多图)。

在开发过程中,陆续碰到和解决了一些不常见的问题,我会慢慢把这些问题和解决的办法都写出来。代码目前还有点乱,过两天再整理一下,请 Ma QiJGTM'2004kaneboy 等几位高手帮我做一下 Code Review 或 Refactory。

前两天,在修改 ASPX 页面时,发现一个奇怪的问题,链接的CSS 文件里指定的其它设置都管用,就是字体名称设置不管用,如果直接在 ASPX 页面中指定字体名称(Style="font-family:宋体")就是正常的。

为了测试,我用 FrontPage 新建了一个 HTML 页面并链接了CSS 文件,页面显示正常,但当我把 HTM 后缀改成 ASPX 后,又失效了。

难道是 ASPX 和 CSS 有冲突? 可这两个东西风马牛不相及呀,于是仔细对比 HTM 和 ASPX 页面的源码,没有发现任何不同的地方,真是百思不得其解。最后终于无意中发现,HTM 页面和 ASPX 页面的编码方式不一样,HTM 是 GB2312 ,ASPX 是 UTF-8(即使其中含有 的标记)。

到此时我才明白,原来就是因为 ASPX 的输出编码为 Unicode,在处理 CSS 中的中文字体名(如“宋体”,“黑体”)时出错了错误,导致不能正确显示指定的字体。

处理办法:

1) 将 ASP.NET 的默认编码方式由 UTF-8 改为 GB2312 ;

不过,现在都搞全环化、国际化,还是用 UTF-8 好。

2) 将 CSS 文件中的中文字体名变为英文名称;

如 "Font-Family: 宋体" 改为 "Font-Family: SimSun" ,其它字体的英文名称如:SimYou 幼圆; SimHei 黑体; SimKai 楷体; SimFang 仿宋; SimLi 隶书等。

3) 将 CSS 文件中的中文字体名改为 Unicode 表示(\u...)

此种方法未试验,不知是否可行。

至于为什么我一定要用中文字体呢,原因是中文字体是等宽的,在处理页面时,能很精确控制元素的宽度,这样有利于版面的设计,我对软件界面的要求是很高的 笑脸

来源:moslem的blog





There are 0 records,
Comment:
Must be registered users to comment(必须是注册用户才能发表评论)

Disclaimer Privacy Policy About us Site Map
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.