今天,在帝国论坛上看到一个帖子,是关于ECMS utf-8默认模板生成的页面在Firefox下正常,IE下显示空白。
问题:生成的UTF8内容页在ie中打开为空白,firefox就没有问题!错误原因:看下ecms4.7 utf8中默认页头的写法:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>[!–pagetitle–] - Powered by EmpireCMS</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<meta content=”[!–pagetitle–]” name=”keywords” />
<meta content=”[!–pagetitle–]” name=”description” />
这个写法是严重错误的!!
正确规范写法:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<meta content=”[!–pagetitle–]” name=”keywords” />
<meta content=”[!–pagetitle–]” name=”description” />
<title>[!–pagetitle–] - Powered by EmpireCMS</title>
标题应该在字体定义之后,这样IE终于识别出来了!
看到这帖子时,第一感觉就是IE编码设置的问题。以前调试网站的时候由于修改的模板是导入utf-8文件,但忘了更改head区的charset编码,生成页面后显示空白。在IE里去掉自动选择编码指utf-8编码后,显示正常。会不会是IE的这个设置问题呢?
实验了一下,结果如我所想。在IE编码没有设置成自动选择的情况下,中文的Windows系统下的IE默认用gb2312来显示网页。这样就会出现解析错误。
到底怎么写才是最标准、最合理的呢?查看了下yahoo、msn、adobe、w3c官方站、microsoft等,各家写法不一。看来先写title,还是keywords和description,对于SEO没有什么影响。
平时写CSS时,只是按类整理一下顺序,对于属性排序从来没有弄过。以后要养成书写习惯才行。下面是来自Mozilla Firefox 建议的CSS书写顺序。
//显示属性
* display
* list-style
* position
* float
* clear
//自身属性
* width
* height
* margin
* padding
* border
* background
//文本属性
* color
* font
* text-decoration
* text-align
* vertical-align
* white-space
* other text
* content
《Transcending CSS: The Fine Art of Web Design 》,中文译名是《超越CSS:Web设计艺术精髓》。
先看一下这本书的来头:Web设计和CSS领域著名专家Andy Clarke悉心传授“超越CSS”方法,《CSS禅意花园》作者隆重推荐并担任技术编辑。说这些都是空话,Andy Clarke到底带给了我们什么?
我阅读的是中译本,不知道和原著有多少偏差。但从我的感受来说,本书更多的是一种思维上的突破。有人说这本书是针对已经掌握用div+css来布局的读者,对于技术员来说,基本无用——国为里面实际应用部分的说的不多。其实不管是刚接触web标准人,还是已经能够熟练运用的老手,这本书都值得一读。或许,你也会有眼前一亮的感觉。
读完此书,感受最深的就三点:一是放弃浮动改用定位来布局,二是对于css和页面id的命名方式,三是根据页面内容来优化结构。使用浮动后出现的问题,相信大家都是深有感触了。对于使用相对和绝对布局不能取得高度的问题,书中给出的例子是配合js解决,解决了这个问题,使用相对+绝对定位来布局,就方便很多了。对于第二点,现在流行的是用header,footer,sider等来命名,实际上这种命名方式也是不太规范的(我自己对规范命名一直头痛不已,英文不行呀)。第三点嘛,不懂怎么表达了,还是自己去翻翻书吧。
《Transcending CSS: The Fine Art of Web Design 》的支持网站,提供书中CSS实例下载。
http://www.transcendingcss.com/