在上一篇已经介绍了网站开发的准备工作,如果你已经准备好了,并且熟悉了其中必要的工具。可以跟着我继续往下走。
本文主要介绍主题开发的原则与技巧。不同的cms主题的开发方式不同,但是本质却不会有太大的区别。举一反三,希望我自己总结的经验会对你的开发有帮助。
开始一个模板开发
上一篇的最后,我们做的是:
写道
下载dedecms最新版本,建立一个svn版本库,导入到svn中。然后到wamp的www目录下建立一个项目文件夹,然后svn checkout。然后启动wamp,安装一下dedecms,ok,可以开工干活了。
现在我们真正的开始开工干活。
dedecms的主题是基于模板标记的。它自己带了一套dede的标记,如果你使用过velocity或者freemaker之类的工具,相信你对模板标记的使用不会陌生。基于模板的系统的开发应该说还是比较方便的,毕竟模板是通用的,对于一个普通的网站来说,你可能只需要写10个左右的页面设计就足够整个网站的应用了。
用Dreamweaver CS4新建一个站点,将www目录下整个dedecms导入。用dw来管理站点。dw内置了很多工具,对开发界面有极大的帮助。
第一:代码格式化功能。
写多了html代码,会逐渐有点混乱,这是很正常的。用dw的格式化工具可以解决这个问题。目前也支持CSS代码的格式化。
第二:代码兼容性检查。
dw也内置了多个浏览器的代码兼容性检测工具,可以在代码开发过程中随时检查。
第三:dw提供的各种功能,都不错。自带的范例是新手入门的极佳材料,包含了超级详细的注释,新手一定要看看。
导入整个站点后,在dede的templets,模板存放目录下面,新建一个文件夹如wedding,作为我们自己开发的主题的文件夹。dede的模板组织方式我不是很认可,如图所示:
default下面是dede的 默认主题,在default文件夹下面存放了主题的模板。images存放了系统的所有图片,style下面是主题的css文件,而系统的js则又在这里之外,给人的感觉比较凌乱。
而我习惯的做法是将一个主题说需要的文件都包含在一个文件夹下面,这样这个主题可以轻易的移动,删除。而不是到处找文件删改。将整个主题都放在一个目录下,也是很多主流的cms主题的做法。
这里我们建立了一个wedding的文件夹,作为主题的目录。在wedding下面,我建立了3个文件夹,css,js,images,而模板文件直接放在wedding目录下。其实更好的做法应该是再建立一个templet的文件夹,存放所有的模板,不过由于dede自身的一些设置,直接放在wedding下面会比较方便。
推荐的主题目录结构:
theme
theme/css
theme/js
theme/images
theme/templet
CSS开发
上次已经提到了,项目将采用yui css库。yui的css目前是比较完备的,包括base,reset,font,grids。这几个css都会用到,我的做法是将这4个文件合并成一个yui.css来引入。可以减少几个连接数嘛。
关于grids.css的使用,可能对很多人还是个陌生的概念,就是所谓的网格系统。可以自己google一下CSS 网格可以搜索到相关的一些介绍。用上grids.css最大的好处就是,你会发现你开发一个布局的速度真的太快了,改一下class的类名,整个布局都会马上变掉。加上yui css提供了grids的生成器,可以成倍的提供你的工作效率。
有了这样的一个css库,基本上它已经帮你解决了很多部分的浏览器兼容性问题。
在css开发过程中,有很多东西都是通用的,或者很常用的,对于这样的css,我的做法是放在一个lib.css的文件里。这也相当于一个库,但是这个库是给自己用的。而且,做得多了,自己做过的很多网站都会用到,所以渐渐的,这个lib.css自己也可以拿来到处复用了
。至于这个库,要怎么写,怎么整理,我建议你参照开心网的css的写法。例如:
.l {
float:left;
}
.r {
clear:right;
float:right;
}
.c {
clear:both;
}
.tal {
text-align:left;
}
.tar {
text-align:right;
}
.tac {
text-align:center;
}
可能有些人会疑问,这样就一个属性,干嘛用啊?为什么不写在另外的css,写一条属性干嘛?事实是这样的:
在一个站点的开发过程中,你经常会发现,有一个东西,它长得很像,但是有时候它是放在左边,有时候又是放在右边。为此,你可能要为1个长得几乎一样的东西,复制一份几乎差不多的css代码。而这样的lib它就可以起到这样的一个类似patch的作用,例如:
div class="title" ,默认左对齐,但是现在你想在某个页面让这个title是右对齐的,你就可以在用div class="title tr"通过这样的组合,实现这样的效果。
这是lib.css的整理。
剩下的其他的css做法就比较多。对于简单的,可以直接一个pages.css,把剩下的所有需要的css都写在这个里面。对于大一点的项目,还可以分的更细。比如:form.css,application.css,ui.css这些是专门为表单,为独立应用,为实现js特效的ui专门独立的css文件。具体的做法看个人习惯。
对于css,还要注意的一点是,就算用了css库,你也无法保证写出来的代码所有的浏览器都兼容。所以你有必要掌握一些基本的hack,比如!important,IE6跟IE7的*还有_。基于标准的开发,更要保证对于主流的浏览器都兼容。就算IE它不是标准的。
关于css的hack写法,还有我个人认为更好的解决方案,将会在接下来的JS开发篇章中介绍。
关于div+css与表格布局的争议,我认为由于几十年的积淀,所有浏览器都对表格有着最佳的支持。所以其实表格布局比div+css兼容性更好。对于一些大型的,复杂的站点的构建,使用div css,合理的搭配一些表格布局,不仅可以提高开发速度,也可以得到更好的兼容性。而不必为太复杂的界面跟css搞得焦头烂额。
所以,不必学了divcss就对表格弃之不顾了。
关于开发工具,dw的css还提供可视化的选择,css入门的可以用可视化的这种方式来做css代码。如果对css非常熟练的人,推荐用top style,个人觉得ts的代码提示比dw的更便捷,书写更快。
推荐的一个css的目录结构:
css/core.css (本文用yui,所以是yui.css)
css/lib.css (自己常用的自己组织的通用类)
css/pages.css(或者更详细的划分)
Javascript开发
对于一个成熟的cms来说,其实js的开发量很少。这里更多的是介绍一些相关的技巧。
首先是上文提到的,CSS的hack更好的方案。就是采用jquery的插件,jqbrowser2,使用它是不需要写任何js代码的,因为它是用来写css代码用的。只要引入就可以了。它的作用,就是分析浏览器提供的所有信息,然后将这样的信息反应在html的类名上面,使用了一个这样的插件后,你的html标签会变成这样:
html
class
="gecko firefox3 win js
"
这个class反应出来的信息是gecko引擎,ff版本3,window操作系统,支持js。这样的信息能提供什么帮助呢?没错,这就是来编写hack的利器。我们不在需要记住那些复杂的hack,我如果要某个属性只对firefox支持,我只要在css里面写
.firefox3 .ffonly{};
.ie .ie_styel{};
仅此而已。依据这个,包括不同操作系统的样式都可以区分的。
对于js,相信yahoo的14条军规很多人都看过了。没错,将js都放在页面下方,这会提高页面的显示速度。很多人习惯js在头部,所有的js代码写在头部,其实放在底部对js的执行不会有影响,只是习惯问题,你需要改过这个习惯。习惯的将所有js都放在底部。
并且,采用经过压缩的js,体积减小很明显。尤其是js库跟js的插件。工具,yui的压缩工具目前是主流。
另外一个问题是,既然是基于标准化,尽量使用更好的js写法。减少页面上onclick的使用,而是尽量都在js里面指定这个句柄。这个问题,所有的js库都有很好解决方案。
html开发
貌似最简单的东西,其实要想做好也有难度。
首先,基于web标准开发,你需要坚持所有的html页面都采用XHTML strict的标准。
对于开发过程,建议你保持html的正确性。你可以在ff上面安装html validater插件,这个插件可以检查html文档是否符合标准。
保持html的正确性,不仅仅是基于标准的一个要求,其实更主要的是帮助你保持页面的正确显示。可以很大程度的避免你出现标签写错,遗漏了某个标签之类的而导致界面出现奇怪现象的问题
。
经常写html代码的或许会碰到这个问题,我想保持这个正确性会对你很有帮助的。右下角的检测图标总是绿色的,心情都比较舒服。
关于html的工具,dw本身是个不错的选择。不过熟悉html的,或者说想要熟悉的html手写代码的,我更推荐用intype,号称要成为windows的textmate,不过现在版本还比较低,但是已经非常好用了。
更多的做法,比如语义化,微格式,这些靠自己多加研究。
总结
基于web标准开发不是为了标准而标准,它确实能够让我们的开发更加的规范,开发出来的产品更加的良好。关键在于养成一个习惯,坚持基于标准的做法
,丢弃那些过时的做法。
由于行文较为潦草,很多地方或许胡乱带过,不清楚的地方欢迎提问。
- 大小: 9.5 KB
分享到:
相关推荐
Web服务是一种基于...总之,《Web服务开发学习实录》的光盘内容为读者提供了一个实践和探索Web服务开发的平台,结合源代码和视频教程,将理论知识与实际操作相结合,帮助读者深入理解Web服务的精髓,提升开发能力。
ASP.NET Web开发学习实录光盘 视频文件太大,没有加入. 简介: ASP.NET是微软力推的Web开发编程技术,也是当今最热门的Web开发手段之一。ASP.NET 3.5技术提高了网络系统平台开发的效率和安全性,如新增匿名类型、...
本资源“web服务开发学习实录源代码”是针对《Web服务开发学习实录》这本书的配套代码,由作者闫建强和王瑞敬编著。这些源代码旨在帮助读者深入理解书中介绍的概念和技术,通过实际操作来提升开发技能。 Web服务...
jsp web开发学习实录
"Python Web开发实录源代码"是针对这一主题的学习资料,通常包含一系列的示例项目和练习,旨在帮助开发者通过实践掌握Web开发的关键概念和技术。 首先,Python作为服务器端编程语言,其简洁的语法和强大的库支持...
在本" MVC Web开发学习实录"中,我们将会深入探讨这个框架,并通过VS2010的实践操作来深化理解。** **1. 模型(Model)** 模型是应用程序的核心,负责处理业务逻辑和数据管理。在MVC架构中,模型对象获取和存储应用...
在本资源中,"JavaWeb项目开发全程实录源码.rar" 提供了10个完整的JavaWeb项目案例,覆盖了从基础到高级的各种应用场景。这些项目由明日科技开发,旨在帮助开发者深入理解和实践JavaWeb开发技术。让我们逐一探讨每个...
Struts 2 Web开发学习实录
《CSS网站布局实录——基于Web标准的网站设计指南(第2版)》是一本深入探讨CSS(Cascading Style Sheets)技术在构建网站布局中的应用的专业书籍。由李超编著,它针对Web开发人员和设计师,提供了一个全面、实践性...
ASP.NET Web开发是一种微软公司推出的用于构建Web应用程序的框架,它基于.NET Framework,提供了一种高效、可扩展的平台来创建动态网站、Web服务和Web应用程序。本学习实录源码着重介绍了如何利用ASP.NET进行Web开发...
Python Web开发是一个涵盖广泛的主题,包括使用Python语言构建动态、交互式的Web应用程序。这份"PYTHON WEB开发学习实录.pdf"很可能是对这个领域的全面指南,旨在帮助初学者和有一定经验的开发者深入理解Python在Web...
《‘网站’+‘论坛’开发全程实录》是一本专为初学者设计的ASP.NET实战教程,旨在通过详尽的实例代码引导读者深入理解网站和论坛的开发过程。本书的核心在于提供两个实际的开发案例,使学习者能够从实践中掌握关键...
【PHP项目开发全程实录高清版】是一份深入讲解PHP编程和项目开发的教程资源,旨在帮助学习者从基础到高级全面掌握PHP技术。这份资料可能是由一系列章节或部分组成的,例如Z01651PHP项目开发全程实录 第3版.pdf,这...
《PHP Web开发学习实录》
《Python Web开发学习实录》完整版 高清扫描 PDF电子书