2007年1月30日星期二

Google Dance?

从开始写文章起,就一直不停地在google搜索自己,估计用的最多、频繁的搜索就是site:behindgfw.blogspot.com了,慢慢看着被索引的页面逐渐增多。但今天我急了:中午搜索在google的索引有190多项,下午6点时候就48项了,这还没完晚上7点左右就只剩2项了。换个google服务器重新搜下,在http://72.14.203.104上还有131个页面。难道这就是Google Dance?!





update:

2007.2.7 19:06 搜索出来的条目是回去了,但是底下多了四个字“补充材料”,晕倒!
在英文语言下搜索出现类似内容,不过这好象是google第一次直接给出那些页面是补充材料哦。

2007年1月29日星期一

简述JavaScript历史

当1995年JavaScript第一次出现在Netscape Navigator 2.0中的时候,它的主要目的还只是为处理一些输入的有效性验证。试想一下用户提交一个表单给服务器之后,返回的却是因为少填一个字段返回的错误,在刚开始普及28.8kb/s速率的电话线调制解调器时代,以如此慢速率和服务器交换数据对耐心是一个巨大的考验。因此当时处于技术最前沿的网景公司Netscape开始考虑开发一种客户端脚本语言来对用户输入数据进行校验。现在JavaScript已经是每一个主流Web浏览器都具备的重要特性,随着Web 2.0和Ajax(最成功的Ajax应用当数Gmail一个)进入主流,JavaScript更始是被推到了舞台的中心。

1995年,当时工作于Netscape的Brendan Eich开始为同年发行的Netscape Navigator 2.0准备一个称之为LiveScipt(先前还有个名字叫LiveWire)的脚本语言,在和SUN的连手下,总算及时完成。正式发布的时候,Netscape将它改名为JavaScript(为沾点当时如日中天的Java语言的光),Netscape的付出和赌注最终有了回报,从此揭开了互联网的又一个新的篇章。

因为JavaScript 1.0的成功,随后的Navigator 3.0发布了JavaScript 1.1,同时微软开始进军浏览器市场并发布IE3.0并发布了另一个类JavaScript实现JScript。虽然微软进军浏览器市场的决定为其带来了旷日持久的官司和狼籍声名,但是这也是JavaScript发展历史上的重要一环。当时市场上有3个JavaScript版本,Netscape的JavaScript、IE的JScript、CEnvi的SciptEase,因此制定一个标准势在必行,1997年JavaScript 1.1作为一个草案被提交给欧洲计算机制造商协会(ECMA),最终来自Netscape、微软、SUN、Borland及其他一些公司的程序员组成的TC39委员会拿出了 ECMA-262标准,标准定义了叫做ECMAScript的脚本语言,接下来的几年里,ISO/IEC(国际标准化组织和国际电工委员会)接纳ECMAScript为标准(ISO/IEC-1626 )。

目前ECMA-262最新版为3th Edition。符合该标准的实现有:
* Microsoft公司的JScript.
* Mozilla的Javascript-C(C语言实现),现名Spidermonkey
* Mozilla的Rhino(Java实现)
* Digital Mars公司的DMDScript。
据测试,Spidermonkey的性能最好。 目前ECMA-262 4th Edition正在开发的过程中,与其对应的JavaScript的版本为JavaScript 2.0,目前也正在开发过程中。
ECMA 各版本说明、实现
ECMA v1:标准化了JavaScript1.1的基本特性,并添加了一些新特性,没有标准化switch语句和正则表达式。 由Netscape 4.5 和IE 4 实现。
ECMA v2:ECMA v1的维护版本,只添加了说明。 由Netscape 4.5 和IE 4 实现。
ECMA v3:标准化了switch语句、异常处理和正则表达式。 由Mozilla、Netscape 6 和 IE 5.5 实现。

(本段节选自wikwpedia

一个完整的JavaScript实现包括:核心(ECMAScipt)、文档对象模型(DOM)、浏览器对象模型(BOM)。提一下DOM,因为从Navigator 4.0和IE 4.0开始支持不同形式的动态网页(DHTML),为避免WEB开发者为不同的浏览器编写不同版本的页面,W3C 1998年制定了DOM,DOM包含两个部分:DOM Core、DOM HTML。前者制定了基于XML的文档结构图,以供访问文档内各对象,后者定义了一些HTML专用对象和方法。目前DOM最高版本为Level 3

2007年1月24日星期三

今日Google新闻

现在Google个性化主页上添加RSS Feed,在帖子前面会出现"+",点击就可以预览内容,比较贴心方便的功能。不过个性化主页或者Gmail也好,不断添加诸多不忍舍弃之功能,必然带来速度的下降、代码的庞大,何时才是终了呢?跑不动为止?!
Google maps消息,1月26日是澳大利亚日,google为了纪念(营销)这一天,会派飞机航拍Sydney港,并邀请人们在这一天去悉尼港以便Google的飞机可以拍下他们,Google会将此次拍摄的照片更新进Google maps。在此次的专题页面上,还列出了飞机经过的详细时间,如果你刚好后天中午在悉尼的话,不妨去秀一下。
微软听说Google要去澳大利亚拍照片,于是在悉尼百年世纪公园组织集会于之对抗,征集人们拍出好的照片并传到这个网站,同时有高达$100,000美刀的大礼包奉送。砸票吧!
Google.cn推出"搜索提示"功能,在你输入关键字的同时Google会给你关键字提示,还可以看见他们的查询次数。"谷歌"终于推出本地化产品了并领先英文版网站,英文版Suggest还在 实验室里呢。
说了Google再讲下Baidu,今天Baidu首页页有更新,个人空间的链接被添加到首页,右上角同时出现了"登陆"字样,看来个人空间在Baiu的份量将有所提高,不过功能比起 Blogger还有段距离。

2007年1月18日星期四

GoogleMAPs Hack

问题的提出:在google map api下写程序的时候,在地图的最下会显示google log和Terms of Use,但是有一个问题如果你点击google log或者Terms of Use,将会跳出你的页面,打断程序显示。如何让链接新开一页面显示呢?

Terms of Use比较好办:
可以使用类似如下代码查找替代


var ANode = document.getElementsByTagName("A");
for (var i = 0; i < ANode.length; i++) {
if (ANode[i].innerHTML = "Terms of Use") {
ANode[i].target="_top";
};};

但是logo图象对应的链接就比较麻烦了,logo图象在"DOM"里显示为"IMG"标签而"A"标签被google故意隐藏了,你点击的时候会将你带到google maps自己的网站上,显示你刚才指定的区域。如何修改target还得废点大脑。无巧不成书,晚上在调试的时候,突然发现logo被替换为文字了,而下午还显示正常,期间并未修改代码。重新回到原来的地方检查,才知道原来晚上google升级api了,logo链接对应的"A"标签不再被隐藏了,haha,顺应民意啊!那下面就简单了,你可以在下面测试地图,链接会在新窗口打开。

var ANode = document.getElementsByTagName("A");
for (var i = 0; i < ANode.length; i++) {
ANode[i].target="_blank";} ;
map.openInfoWindow(map.getCenter(),document.createTextNode("Tag('A').length="+ANode.length));
};

GoogleMAPs TEST


update:
今天下午缺省版本又退回到v2.70a了,本文以上特性在v2.71中可以获得支持。
现在v2.73已经建立而v2.70a还是缺省的版本,所以现在的api一共有四个版本,而不是通常的三个。
可以通过以下方法获得新版本api:
&v=2 gives v2.70a "default"
&v=2.x gives v2.71 "current"
v2.72 next
v2.73 latest

2007年1月17日星期三

用FeedFlare定制你的Feed

在Rss feed烧制上可能要数Feedburner功能最强大了,花了好几个小时才把Feedburner所有的功能菜单大致浏览了遍。今天讲一下我们经常在用的FeedFlare功能。FeedFlare在每个帖子的下方添加一些脚标,方便订阅者对内容进行散发、通知、为内容建立社区,基本上有email、打标签、分享等其他诸多功能。效果如下图所示:
但是internet上网站多如牛毛功能纷烦复杂,虽然FeedFlare有个长长的支持列表,甚至还在征集代码,也不可能全部支持,因此需要定制自己的FeedFlare。
FeedFlare实际上是被FeedFlare Unit封装的XML数据文件。上个月我的blog搬了家,更换了rss feed,因此我自己写了两小断代码,做了两个标签挂在老的feed下面:

<feedflareunit>
<catalog>
<title>Thanks</title>
<description>A blog about "Blog Behind GFW"</description>
</catalog>
<feedflare>
<text>Thanks reading "Blog Behind GFW"</text>
</feedflare>
</feedflareunit>

<feedflareunit>
<catalog>
<title>Update Blog BehindGFW Address</title>
<description>My blog has been move to blogspot,and the feed was changed too,please update it.</description>
</catalog>
<feedflare>
<text>RSS address changed,please update it!</text>
<link href="http://behindgfw.blogspot.com/2006/12/blog.html">
</feedflare>
</feedflareunit>

显示效果如下:

其中最主要的 <text>域为显示内容, <link href="......">为链接地址,应该比较简单明了,如果你要写一些复杂的应用,还是看下FeedFlare的文档为好。将你写好的XML文件保存在web上(Google Pages是个不错的选择),在Feedburner的Optimize选项下,FeedFlare子项中找到Personal FeedFlare,填入你的XML文件地址点击"Add New Flare"就OK了。

update:在FeedFlare的XML文件中不可以有中文,否则会报错。Feedburner的中文支持一直不是很好,不过总算rss阅读没有什么影响,记得以前email阅读feed是,如果标题有中文,则肯定显示为乱码,现在好了点显示为“?”。我去除了blog标题里的中文其实和这个也有一定的联系。
不知道文心是不是还经常有机会和Feedburner沟通

-原发 behindgfw.blogspot.com

2007年1月16日星期二

HTML标准验证

记得以前做网页时候,直接写上<html>...</html>就完事了,在blogger模板的头部一般都有这么几行:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>

Template of the New Blogger这篇文章里也提过一句,后来看到台湾Tsung的文章才算了解了点皮毛。这不仅仅是把文档宣告为 XML, XHTML,HTML那么简单,DOCTYPE(document type declaration的缩写)定义了文档遵照(X)HTML的哪个版本,并且此标志一定出现在web页面的最头部。DOCTYPEs是一个web页面的关键组成部分,缺少它你的css定义和标记将不被承认有效。
DOCTYPE s对于诸如 Mozilla、IE5/Mac、IE6/Win等浏览器恰当地解释web文档页是很必要的,一般不同的浏览器对(X)HTML都有自己的解释,为了兼容各种浏览器DOCTYPE包含了一个URI地址,告诉浏览器如何渲染(X)HTML、CSS、DOM。使用过期的 DOCTYPE 或者不用,浏览器会假定你是在用旧模式下写的网页,为了向后兼容,将会使你的web文档显示如在90年代的IE4下一样。这当然不是你所期望的。
W3C网站上现在有一个标准DOCTYPE 格式的示例,实际上不用这么罗嗦(其实我自己也云里雾里),直接从W3C把他们拷贝下来就结了:

HTML 4.01 Strict, Transitional, Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 Strict, Transitional, Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1 DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

参考网址:
HTML建议格式
HTML 4 DTD:HTML 4 Document Type Definition
W3C标准格式验证服务:看是否有html错误。我试着输入http://behindgfw.blogspot.com/,Oh MYGOD,数百条......
DTD教学

-原发 behindgfw.blogspot.com

2007年1月15日星期一

如果Google做恶

Google的信条一直是“永不做恶”,Philipp Lenssen说如果Google做恶的话,他会:

偷偷阅读你的邮件去获得产品创意;
减少你的AdSense 广告收入;
在你的搜索中插入一个笑话;
过滤你的搜索;
接受贿赂提高排名;
频繁地用AdSense索引站点;
提高投放AdSense广告站点的排名;
捆绑你不需要的桌面软件;
在搜索结果中加入自家产品推荐;
给某些政府机构通过特定API或其他机制使其可以直接使用Google数据;
不再明显地区分AdSense 广告和内容;
降低对Google持批评态度的文章排名;
对友邦人士制造的spam视而不见;
积极地压制人权组织论坛;
随意将你的数据分享给第三方组织;
将批评Google的Blogger帖子删除;
不接受或者直接去除批评Google的新闻源;
目光短浅;
对道德准则妥协;
允许政府对他们的新闻消息源指手画脚;
将特定记者或者杂志列入黑名单因为不喜欢他们的报道;
垄断市场;
因为隐私协议没有提及就私自处理你的数据;
当他们说删除你的数据的时候,其实没有;
不遵守他们的承诺;
因为年龄、性别、种族解雇员工;
买断web application开发竞争对手以阻止他们的开发;
在竞争对手的排名数据上动手脚;
在不通知任何人的情况下更改用户使用协议;
将你的数据分享给政府;
对公众撒谎。

如果Google诚实地遵守不做恶的承诺:
在搜索结果中推广竞争对手的链接;
对任何事情都很透明;
通过一些开源项目分享他们的代码;
为开源项目提供免费服务器;
提供免费、高效工具来提高生产力;
目光长远;
尊重版权作者;
从来不说竞争对手一句坏话;
给AdSense派发礼品;
给非营利组织捐赠AdSense广告;
诚实地说明他们为何关闭服务器;
用户要更换邮件客户端时允许转移他们的邮件;
为网络陷阱开发检查工具或服务;
邀请人们去参观公司总部;
用户要转换他们的Blog服务视允许转移他们的帖子;
因为意识到自己的角色,始终保持最佳中立;
为盲人或装置视障人士作出了各种服务工作;
除虫(bugs)快速严格;
尽可能遵守web标准;
如果有本地搜索服务进行推介;
倾向于服务用户而不是赚钱;
公开承认错误;
对自己的道德原则不妥协;
在潜在的政府干预下,保护你的数据;
对潜在的钓鱼网站等进行警告;
提供语音的搜索引擎;
将卑劣的广告从AdSense中剔除;
为雇员提供免费食物;
允许员工捐出20%智力来改善世界环境,例如:全球变暖问题;
根据创作公用协议来发布他们所有的内容(如博客帖子);
如果要求的话,给每个国家机会获得同样地搜索结果;
积极设法让用户尽快离开网站;
坚信Web的民主
积极支持人权团体;
对慈善机构捐赠颇多;
营造壮大慈善组织自身;
允许第三方组织使用服务器资源,尤其是非营利组织。

作者在这里不做评论,至于Google是善是恶则留给你从上面对照参考。

-原发 behindgfw.blogspot.com

2007年1月12日星期五

两种blockquote css表达方式

2种blockquote表达方式,第一种灰底缩进:

blockquote {
background: #F9F9F9;
border: 1px solid #F4F4F4;
color: #5B5B5B;
font-size: 10pt;
font-style: normal;
line-height: 150%;
padding: 0px 11px 0px 11px;
}

第二种Gmail回复式样:

blockquote {
margin:1em 20px;
border-left:1px solid rgb(204, 204, 204);
padding-left: 1ex;
}

感觉好象第一种好看点。

2007年1月11日星期四

Google黑板报挂了

晚上打开Google黑板报,显示:

Site Temporarily Unavailable

We apologize for the inconvenience. Please contact the webmaster/ tech support immediately to have them rectify this.
error id: "bad_httpd_conf"

打开最近一期的文章《聪明点、再聪明点——谈谈多维搜索的趋势》显示如下:
Not Found

The requested URL /2007/01/blog-post_10.html was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

黑客?!
前段时间gmail暴出个泄露通讯录名单的漏洞,报道见SlashdotDigggooglesystem,看来Google也要经常做好体检。再看国内也不平静,接连有腾讯QQ发现多个远程溢出漏洞工商银行漏洞,最搞的要数山东公安厅网站了,成了戏园子,“各路英豪你来我往,纷纷登场,情景一时蔚为壮观”。
长年行走江湖,还是小心为妙!
子曾经曰过:“人在江湖飘,那能不挨刀”

update:1月15日 12:21 黑板报已经可以访问了,官方说是“内部技术问题”,这效率也太慢了。

google个性化主页一个小bug

Philipp Lenssen前天报道了一个怪异的Adwords页面布局,我也发现了google个性化主页一个小bug。在google个性化主页中,如果Gadgets的标题过长就会和后面一列发生冲突,800x600分辨率模式下会看得清楚一点。如果不巧的话"edit - x"按纽还会被挡住,这应该是栏宽度不够撑开的,没写过gadgets不知道标题是不是只能最多显示两行?一般情况下标题字段都不会很长,将就能用。虽然是小问题,但对象是Google啊,业内翘楚,要高标准要求对不对?

点击看大图

2007年1月10日星期三

不要使用blogger自己的编辑器

在编辑HTML时为了排版及阅读的方便经常会插入一些回车和空格,而回车和多余的空格一般都会被浏览器忽略,除非你使用<BR> 标记。使用<BR>标记可以创建换行符,这将在上一行的下面开始您的一个文本行,而不会插入一个空行,在开始段落之前创建一个空行使用<P>标记。要创建多个空格,在文本之间连续插入 标记,浏览器会知道您想插入不间断的空格。

在blogger的格式设定中有”转换断行“选项:
如果选择了“是”,则在“文章编辑器”中所输入的单个回车会被博客中的单个 <br /> 标记替代,而两个硬回车会被两个标记 (<br /><br />) 替代,这同样适用于评论发表表单。而默认是打开的,这时候回车就会带来一定的麻烦,比如经常出现大面的空白行。而关闭选项也不是十分理想,以前的诸多文章都是在转换断行下写的,关闭之后会出现两段落合并在一起的情况,在文章中有大量代码的时候甚至出现无法阅读的情况,全部重新编辑一次工程量太大,只好作罢。所以在确定好模板、格式设定后就不应当随便转换以保证延续性。
让我重新选择一次的话,我觉得还是应该关闭选项和HTML保持一致。

书写代码时,单个<、>都可以输入,但是中间包含的html标记是就不行了,在blogger编辑器中无法直接输入html 标记,即便在撰写模式下不行,编辑器会将包含的所有标记转换为html语言,所有标记会自动执行。可以使用&lt;替换<,&gt;替换>,诸如 <head>就变成了 &lt; head &gt;。

看来在blogger自己的编辑器里是不能胜任这个工作了,我使用Google Docs & Spreadsheets

2007年1月9日星期二

Gfans必备Firefox插件:Google“开始”菜单

作为一个Google粉丝,你注册了几乎所有Google 的服务,但是每次当你要访问这些服务站点的时候,是不是苦于输入那些麻烦的网址呢?好吧,虽然暂时还不能给你一个Google的OS操作系统,但是相信这个Google“开始” 菜单一定对你很有诱惑力吧?!
平时你可以通过登陆你的Google 账户页面来访问你已注册的相关服务,但是这样的土办法怎么能和这个快捷的Google“开始”菜单相比呢?!
如果你在使用Firefox火狐浏览器,那么请到Mozilla官方Addon站点去下载这个GButts插件,GButts支持自定义图标显示,在Settings里你可以方便的定制自己想要的Google 服务图标,它已经涵盖了目前全部的Google服务, 包括多个beta服务。
类似的Firefox插件还有GUtil!,大家也不妨一试, 不过它目前还不提供自定义图标菜单功能。
来源:西行资讯


再介绍个:Vista傻瓜式破解补丁v2 (2007.1.6)
在Vista下即右键点击此程序,选择在管理员模式下运行,自动改时间重置激活期限,自动安装俄罗斯破解补丁,并自动重启破解,自动恢复系统日期,使得Vista激活期限永远是30天。
2007.1.6加入的功能:
1).完善了系统判断功能,非Vista系统不能运行
2).更新了俄罗斯破解补丁,支持64位Vista的破解
下载地址:
http://mirror.gochina.cn/liuhang/TimeStop.exe(未验证)
来源:http://bbs.gochina.cn

2007年1月4日星期四

Template of the New Blogger

Blogger已正式结束beta测试,迟疑再三终于升级到New blogger,不过Google Sitemaps在新版的blogger模板下使用“添加meta方式校验”时出现了点小问题:

XML error message: The element type "meta" must be terminated by the matching end-tag
旧版的blogger模板html代码看起来比较容易阅读,meta标记也比较容易确定添加在什么位置,而新版的blogger模板中因使用了网页栏目和窗口小部件甚至看起来不象html代码,头晕。注意你升级到New blogger后模板并不会自动升级,这时候你的模板还是你原来的模板,你还需要转换一次,在Template---->Customize你可以找到升级模板按纽,还真是麻烦,不过如果不升级旧模板你将不能使用诸如“所见即所得”的拖放特性。

模板的第一部分包含了xml语言声明:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns='http://www.w3.org/1999/xhtml'
xmlns:b='http://www.google.com/2005/gml/b'
xmlns:data='http://www.google.com/2005/gml/data'
xmlns:expr='http://www.google.com/2005/gml/expr'>

第一行将文档声明为xml格式,第二行是html声明,第三行是xhtml声明给出了xml版本。

模板的第二部分包含了“head”的第一部分、meta标记和标题:

<head>
<META content='TwVr7RE98jaQuGO/+j6mX4nPnv8lpbC4e5lyosUsHKE=' name='verify-v1'/>
<b:include data='blog' name='all-head-content'/>
<title><data:blog.pageTitle/></title>

meta标记通知搜索引擎你的blog的主题、关键词,对于搜索引擎索引你的站点是非常必要的,在Dummies Guide to Google Blogger (Beta) 作者好象犯了一个小错误,标准html格式中meta应该放在标题<title>前面。

第三部分是模板的变量定义“Variable Definitions”,这里定义了“模板”选项下“字体和颜色”子选项中各页面元素的颜色:

<b:skin><![CDATA[/*
-----------------------------------------------
Blogger Template Style
Name: Minima
Designer: Douglas Bowman
URL: www.stopdesign.com
Date: 26 Feb 2004
Updated by: Blogger Team
----------------------------------------------- */

/* Variable definitions
====================
<Variable name="bgcolor" description="Page Background Color"
type="color" default="#fff" value="#ffffff">
<Variable name="textcolor" description="Text Color"
type="color" default="#333" value="#333333">
<Variable name="linkcolor" description="Link Color"
type="color" default="#58a" value="#5588aa">
<Variable name="pagetitlecolor" description="Blog Title Color"
type="color" default="#666" value="#666666">
<Variable name="descriptioncolor" description="Blog Description Color"
type="color" default="#999" value="#999999">
<Variable name="titlecolor" description="Post Title Color"
type="color" default="#c60" value="#cc6600">

......

*/

CDATA段在这里开始用于将一个xml文件插入到另一个xml文件,CDATA段开始于<[CDATA]结束于with ]]>,用于使居于其中的语句规避XML解析规则,也就是说不可以将一个CDATA段插入到另一个CDATA 段。

第四部分是CSS定义:

/* Use this with templates/template-twocol.html */
#navbar-iframe {
height: 0px;
visibility: hidden;
display: none;
}
body {
background:$bgcolor;
margin:0;
color:$textcolor;
font:x-small Georgia Serif;
font-size/* */:/**/small;
font-size: /**/small;
text-align: center;
}
a:link {
color:$linkcolor;
text-decoration:none;
}
a:visited {
color:$visitedlinkcolor;
text-decoration:none;
}
a:hover {
color:$titlecolor;
text-decoration:underline;
}
a img {
border-width:0;
}

.....

/** Page structure tweaks for layout editor wireframe */
body#layout #header {
margin-left: 0px;
margin-right: 0px;
}
]]></b:skin>
</head>

注意CDATA段在这里结束于]]>。

第二、第三、第四部分组成了html文档的“head”。

第五部分是“body”

<body>
<div id='outer-wrapper'><div id='wrap2'>

<!-- skip links for text browsers -->
<span id='skiplinks' style='display:none;'>
<a href='#main'>skip to main </a> |
<a href='#sidebar'>skip to sidebar</a>
</span>

<div id='header-wrapper'>
<b:section class='header' id='header' maxwidgets='1' showaddelement='no'>
<b:widget id='Header1' locked='true' title='Blog Behind GFW (标题)' type='Header'/>
</b:section>
</div>

<div id='content-wrapper'>

<div id='main-wrapper'>
<b:section class='main' id='main' showaddelement='no'>
<b:widget id='Blog1' locked='true' title='博客文章' type='Blog'/>
</b:section>
</div>

<div id='sidebar-wrapper'>
<b:section class='sidebar' id='sidebar' preferred='yes'>
<b:widget id='HTML1' locked='false' title='' type='HTML'/>
<b:widget id='BlogArchive1' locked='false' title='Archives' type='BlogArchive'/>
</b:section>
</div>

<!-- spacer for skins that want sidebar and main to be the same height-->
<div class='clear'>&#160;</div>

</div> <!-- end content-wrapper -->

<div id='footer-wrapper'>
<b:section class='footer' id='footer'>
<b:widget id='BloggerButton1' locked='false' title='' type='BloggerButton'/>
</b:section>
</div>

</div></div> <!-- end outer-wrapper -->
</body>
</html>

布局模板的 <body> 部分主要由网页栏目和窗口小部件组成。栏目用于划分网页的各个区,例如侧边栏、页脚等。窗口小部件是各种页面元素,例如图片、blogroll 或其他您想从"页面元素"标签中添加的任何元素。您可以在模板的栏目周围加入任何所需的 HTML 代码。

模板中的每个栏目都有一个起始标记和一个结束标记,看起来像这样:


<b:section id='header' class='header' maxwidgets="1" showaddelement="no">
</b:section>


事实证明,直接从"页面元素"标签中进行修改会更加简单,不过了解新模板的结构对我们的个性定制是很有帮助的。


参考阅读:
用于布局的页面元素标记
窗口小部件标记详述

顺便提下如何隐藏blogger上方的导航工具条(NavBar):
隐藏Blogger导航工具条:在样式标记中间粘贴下面CSS定义:

<style type="text/css">

#b-navbar {
height: 0px;
visibility: hidden;
display: none;
}

</style>


隐藏Blogger Beta (iframe)导航工具条:


<style type="text/css">

#navbar-iframe {
height: 0px;
visibility: hidden;
display: none;
}

</style>

2007年1月1日星期一

祝大家新年快乐



祝你在新年里:睡觉睡到自然醒,数钱数到手抽筋;网络顺畅 ,不要再有地震和GFW。