• 全部
  • 问答

网站?XML?我的思考

taowen2002 2004-02-12 06:57:33
网站?XML?我的思考
作者:taowen(taowen.bitapf.org 或者 www.noasia.net/taowen)
1、我用HTML进行设计
曾经我以为我蛮特别的,我喜欢用记事本来写很简单很简单的HTML。而且,我看的关于网页的第一个教程也就是教你<h1>啊这些标签的教程。相信那个著名的教程,很多人都有看过。只是很多看过了之后不一定会自己去手写这些代码,只是知道frontpage这样的工具背后的原理就好了。
但是时间久了还是觉得蛮累的。因为我写代码的时候毕竟是要靠自己的大脑去想象最终的外观会是什么,所以有的时候还是蛮想去用Dreamweaver这样的工具。也难怪那些所见即所得的工具会有那么多用户了,因为写的时候就直接看到了最终的呈现。
手写代码的时候,如果遇到了重要的内容,我会用<font>这样的标签特意去改变一下外观。遇到了列表的内容的时候会用<ul>啊这样的标签,产生1234的标号,或者一个个的圆点。其实有的时候觉得html挺简单的,因为标签的数量很有限嘛。
2、我使用HTML的表格
HTML的表格是很有意思的东西。当你遇到了要列表的东西的时候,如果是没有表头而且是一列的时候,你可能会用<ol>这样的单列。如果是两列,可能就会用<table>了。而且用起来也不是很复杂,<tr>就是开一行,<td>就是一列。当然还有很多种排法了。基本的也就是分方格,然后放东西。
表格有趣的地方是,你设计form这样的东西的时候也会用表格。虽然每个单元格的内容之间没有什么意义上的关联了。不像你的成绩单列表那样,数学成绩一列,语文成绩一列。在form中使用表格仅仅是为了最终的版式上的问题。利用单元格把form中的元件进行定位。
后来表格的排版作用用到了整个页面的排版,而且越用越复杂,表格加表格。直接导致了我这样手写代码的人无法去修改,去编写这样的页面。一度让我很伤心,觉得这个世界被Dreamweaver这样的工具的使用者掌握者,因为只有利用所见即所得才能够去设计这样外观丰富的主页。
3、我还用过css
css是让我激动的东西。我承认这点。我曾经梦想,我写网页的时候只要把每块内容指定好了class。以后要改变网页的外观就只需要把css换调就可以了。而且css可以是内含的也可以是外部用<link>链接的。我要把网站改版把css的内容换一下就可以了。
而且css还有@import,利用它我还可以在网站的每个目录下都放一个style.css,然后利用@import包含站点的样式表。这样每个网页就不用..这样的目录选择符来选择在父目录中的样式表了。这个特性着实让我很兴奋。
我的梦想越来越清晰,就是有朝一日,我写的网页能够很轻易的更改外观,而且编写的时候再也不用自己去使用<font>这样的标签了。
4、javascript也是让人好奇的东西
我相信网络发展还不如现在这么发达的时候就开始设计网页的朋友,一定对于各式各样的javascript非常熟悉。比如跟随鼠标的星星,跑马灯之类的东西。javascript设计出来是为了实现客户端的一定交互性的。javascript之所以能够交互是因为,它能够通过DOM操纵你看到的html页面,而且能够通过html元素中的事件属性得到你的输入。
因为javascript能够通过DOM把html的页面进行改变。这个性质其实也让我激动了好久。比如leoboard的最新帖子这样的信息,就是通过一个<script>的链接,链接到一个cgi上面,它产生的就是一段js脚本,通过document的函数写出一段html代码。也就是说,javascript能够“动态”的产生html代码。
由于javascript的这个功能,我又开始做梦了。希望能够整个网站都是通过互相包含的javascript组成。我把我的内容都写在javascript的变量之中,然后通过一定规则组合通过DOM的函数把内容以一定的模板风格写入到最终的html输出之中。
5、再闻css
一开始听说css,也许那个时候还是css1的时代吧。只知道css能够设定一定元素的外观显示,比如字体啊,空白什么的。关于css的排版功能一概不知。第一次做css的梦的时候,其实就是因为要把html进行排版控制,不得不用很多的table这个原因破灭的。所以当我知道css的功能很强大,可以进行各种版面控制的时候,就又开始做梦了。
把内容按照其性质放到一些<div class="...">这样的标签之中,用不同的css样式表,能够把这些div定位到页面的不同地方,而且显示也是不一样的。这样我就能够在写html的时候以任意的顺序来写,只管内容。而css会根据你对内容的描述(class是什么)把内容进行定位排版和显示。
所以说,以前我知道的css只把元素的内容和显示分开了,但是元素的位置还是与在源代码中的位置相关。而现在知道的css,能够让元素只管自己的事情,告诉css自己是什么(class是什么),不用再考虑自己在文档中的位置了。这样不就实现了内容与表现分离了吗?不就是我等用记事本写网页的网页设计者追求的吗?
6、内容与外观分离
我相信这句话很多人都听说过,梦想过。我的梦从模糊,到清晰,一直都在想着有朝一日我能够只管把我要传达的内容写下来,让其他的人来给我排版给我定外观。It is a Dream。
我们只从一个网页设计者的角度,而且是一个普通网页设计者的角度来谈这个问题。不要把什么中间件,应用服务器什么程序高手津津乐道的术语来压“我们”。
为什么要把内容和外观分离我相信很多人都有自己的体会。我的体会很简单。当年自己手写html的时候,我对我的内容很有信心,我知道我要说什么,我有内容。但是我对于如何排版很没有信息,我想让别人,或者自己以后来把内容进行排版。但是事情是很让人失望的,我基本上只有两个对策。把内容的格式变得简单得不能再简单,只是html的最基本元素的线性排列。除了<p>就是<p>这样的页面,朴素得不能再朴素。要么就是设计一个很好看,很复杂的页面。我自己手工的把内容粘贴到页面的模板之中去。如果有很多类似的网页,还要保证它们的风格是一致的。如果每个页面还有到其他页面的链接,比如是上一页,下一页之类的,It is a nightmare。
把内容与外观分离,就这样成为了我16岁的梦想。
7、perl,php,asp
我很坦白,我从来没有用过jsp,我不喜欢java提供的那些东西(请不要因此骂我浅薄,我知道它们的商业价值,但是现在仅仅是说网页设计)。
按照顺序,我用过的是这么三种网络脚本。perl是我接触的最早的一个网络脚本,那个时候一般都是用cgi这个名字。后来我有遇到了php,最后才是asp。
这里我只是谈网页的问题,不涉及到这些网络脚本怎么实现网络的交互的。也只是就着网络脚本,说说它们怎么又能实现内容与外观分离的。而且这三种虽然在访问文件,访问数据库,使用模板,产生html输出各个阶段和模块上各有不同,但是原理一样,方法相似,所以通称网络脚本。
网络脚本是让我激动的东西,而且同样作为engine驱动着很多现在正在运行的网站,比如经典的LAMP组合。它们关键的地方是能够产生html输出。因为html不再是你自己手写的了,所以不需要经过你的手就能把html的输出产生变动,这样就有灵活性。
为了文章能够分出更多的节,我按照我个人的认识顺序来看看网络脚本使用
8、网络脚本和文件
我最先看到网络脚本的使用,是leoboard这样的cgi程序,它使用文本作为数据的存放媒介。数据来源是文本,然后cgi中的perl程序会对文本进行解析,然后把解析的结果可能会放到变量之中,最后变成html的输出。
这里就是通过cgi程序作为中介,把文本的内容表现到了html之中。
9、网络脚本和数据库
后来我才看到了网络脚本和数据库的连用。经典的搭配有php+mysql和asp+access,我都有用过,不过都是很简单的。把数据储存在数据库中好处当然是多多,专业人士可以有很多事务啊之类的术语来描述其好处。不过显而易见的是,储存和获取的方法是标准化的,通过SQL嘛。而用文本作为存放媒介,文件格式以及解析,还有文件的完整性,容错这些都需要网络脚本设计者自己来控制,虽然很自由,但是更多的是劳累。同样,一种脚本有自己的一种格式,多浪费。要换论坛程序这样的情况出现的时候,又需要了很多麻烦。
10、网络脚本和模板
我记得当时我学asp的时候,很多文章就是这么介绍的。asp能够夹杂在html的代码之中,可以很方便的使用。而我使用perl的cgi的时候,很多程序又是使用满是$xxx的模板来做html输出的。这个时候,我就想who is better?
模板我还是蛮欣赏的。初级阶段的模板就是很多以前的cgi的网络文章程序中的那样,在html中放perl的变量名,然后最后输出的时候做一个替换。现在的模板当然要复杂好多,理论也很多。但是,我们可以看到的一点是模板做到了“把业务逻辑和表现逻辑分离”。
一般模板和脚本的关联就是通过一些两方面都知道名字的变量或者数组。然后脚本在变量中预先把内容存入这些变量之中,模板再把变量和数组中的内容提取出来插入到html之中。由于模板大部分是由html组成,所以比较适合给设计人员来设计。而且脚本的任务也就仅仅致力于从数据库也好,文本也好,这样的数据源中取出内容,进行一些加工,然后存入到变量之中。至少让脚本程序员免于考虑最终的外观问题。
...全文
8 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复

还没有回复,快来抢沙发~

发帖
CSS
创建于2007-09-28

6.0w+

社区成员

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
申请成为版主
帖子事件
创建了帖子
2004-02-12 06:57
社区公告
暂无公告