'网页设计' 分类的存档

4月5日,CSS裸体日

刚被肚破惊天提醒,今天是CSS Naked Day。按照网站的说明:"April 5th, simply remove all CSS from your website, stripping it entirely of its design."这项活动要求大家在4月5日这一天撤下网站的CSS文件,旨在宣传Web标准。

CSS对于一个网站的重要性,写Blog的人应该都清楚。K2的style都是一些CSS和图片文件,不同的style可以让K2呈现出完全不同的显示效果。最近我发现其他一些Blog平台的模板,全是一些CSS和图片文件,哪里配的上theme这个词,只能算是style。看过那些Blog平台,再看WordPress,唉,简直不是一个档次的。

依稀记得去年第一届CSS裸体日的时候我看到过关于这个活动的报道,当时刚把这个Blog架起来才几天,可惜我知道这个事的时候已经过了4月5日,所以也就没撤CSS。今年还好有肚破惊天的提醒,不然我又错过了。

我刚把Blog的CSS撤掉了。WordPress会通过检测模板目录下是否存在style.css来验证模板的正确性,所以直接将K2的style.css文件改名将会使Blog自动恢复默认模板。所以,我通过修改.htaccess文件,屏蔽掉对所有CSS文件的访问。嗯,裸奔的感觉还不错。

html里title属性换行的方法

今天在写插件时,需要在一段字符的title属性里加入一大段文字。字符串本身用UNIX行尾符LF换行。我直接输出字符串,发现在IE和Firefox下都可以显示出断行。

<div title="123
456">text</div>

不过,Firefox的Html Validator扩展报了错。在网上搜了一圈,这里提到:

The (X)HTML DTDs define the contents of the title attribute as CDATA for which the W3C states:
User agents should interpret attribute values as follows:

  • Replace character entities with characters,
  • Ignore line feeds,
  • Replace each carriage return or tab with a single space.

大概的意思是,XHTML DTD定义title属性为一个CDATA,而根据SGML里CDATA的定义,浏览器应该:替换所有html实体;忽略LF字符;替换所有CR字符和tab字符为一个空格。

按照W3C的说法,执行这3步后,所有的CR和LF字符已经他们的html实体都已消失或变成空格了。看起来在title里换行变成不可能的事了。不过,Firefox好像并没有转换CR字符为空格,而是把CR给忽略了。而LF字符倒是没有被处理,直接换行了。上面的代码,不用UNIX行尾符LF,而是用Mac行尾符CR,在IE下还能换行,但是在Firefox下,CR字符直接被忽略了。我还是很想通过W3C的验证,所以做了一下测试,使用LF字符或者LF的html实体& #10;都是可以的。网上流传说可以用CR的html实体& #13;,其实只是IE中可以,Firefox下一样不行。如果不追求符合W3C,那还不如直接把字符串转成UNIX行尾符输出呢。

<div title="123& #10;456">text</div>

还有,title里有小于号和单引号好像并不要紧,但是有双引号就不行了。这么说来,把字符串里的换行和双引号给替换一下输出就行了?唉,复杂复杂,晕了。这里有一个介绍这方面问题的页面,不过没太看懂。

发现CR的全称是Carriage Return,Carriage是字车的意思,Carriage Return意思是字车复位。LF的全称是Line Feed,喂进一行,就是新起一行的意思。这起源于打字机时代,每打到一行的末尾,打字员要手工把字车推回第一列,字车复位后,纸会上升一行。所以就有了ASCII码值为13的CR和ASCII码值为10的LF两个字符。而DOS和Windows下文本文件的新行用CR和LF两个字符表示,UNIX下用LF,Mac下用CR。呼,这些资料大概在上个世纪我就知道了,不过一直记不住两个字符的ASCII码是多少,现在复习一遍,这下我应该能记住了。[via]

P.S. 好像C++里"\n"在Windows下输出CRLF,在UNIX下输出LF,而"\r"输出CR。PHP里是"\n"输出的是LF,"\r"输出的是CR。[via]

lt和gt,小于号和大于号

受不了shurarai了,lt和gt分不清。

在html标准里,由于小于号被用于标签,所以要显示<必须用&lt;。自己写html代码时,在WordPress里编辑文章时,还有发表评论时都要注意这一点。>也可以用&gt;,不过不是必须的。还有&用&amp;,"用&quot;。这些在html标准5.3.2节都有介绍。另外lt是less than小于的意思,gt是greater than大于的意思,这个应该很好记吧。还有<这个叫小于号,>这个叫大于号,我要吐血了...

IE中打开UTF-8编码title为中文的网页会显示空白页的问题

很久很久以前(大概2005年10月~2006年3月),当时在blogger.com写Blog。当时blogger.com有中文界面,对中文用户也算是比较关心了,不过blogger.com的所有模版里都有一个问题,那就是<title>标签被放在<meta>标签前面。当title为中文的时(比如Blog名为中文或者文章标题为中文),在IE下会出现显示空白页的问题。昨天Dre·J在群里又问到这个问题,今天过来好好研究一下。

这个问题只存在于blogger.com中,WordPress系统中不存在。先说一下在blogger.com中这个问题的解决办法:在模版的<body>标签下面找到<title>标签,调整成这样:

<$BlogMetaData$>
<title><$BlogPageTitle$></title>

保证meta在前面就可以了。可以参考《感谢Yskin》《UTF-8字符集网页在IE上会显示空白问题的解决方案》

继续阅读《IE中打开UTF-8编码title为中文的网页会显示空白页的问题》

想调下模版的颜色

想学人家做网页设计的,自己调一下整个Blog页面各部位的颜色。研究了半天,搞出来的是乱七八糟,一点都没有美感。没办法,天生没有美术细胞,又缺少CSS的知识。

找到一个原色和合色一览表,不过是直接写的HTML代码,我把它们存在网站上了:原色大辞典和色大辞典。还有这个Web Colors,也是全部常用于网页的颜色。

在蓝色理想找到个配色软件ColorKey Xp,可以用于网页配色。

另外还知道了通用于IE, FireFox, Opera浏览器的支持Alpha透明的方法。透明很好玩,以前见过一个用透明效果做出的页面,非常的漂亮。(Update:找到了:透明PNG背景图片 For IE 6.0 Firefox Opera演示)可是我不会玩...暂时先放在这吧。

搜索引擎的收录

建了站,当然希望搜索引擎来收录自己的网页,好让更多的人通过搜索引擎来访问。写这篇文章综述一下搜索引擎收录的问题。

继续阅读《搜索引擎的收录》