先从Firefox说起吧, 在https://developer.mozilla.org/zh-CN/ 上Firefox提供了众多的教材来帮助新手进入到web开发的队伍。
Firefox开发分插件和扩展两种形式的东东,要细分的话,扩展(externtion or add-on)是利用Firefox提供的API来增强其功能,比如各种书签同步的扩展。而插件则是专门的程序实现的功能,一般是Firefox自身无法完成的,因此需要通过插件的功能来增加浏览器的功能,比如常用的支付宝插件、adobe的pdf生成插件。
讨论这里,我们需要根据情况选择是开发扩展还是开发插件。这样就需要判断Firefox提供了哪些API来完成什么功能,判断实现一个扩展是否能完成所要的需求。如果不能就需要实现一人插件。
在https://developer.mozilla.org/zh-CN/addons ,firefox提供了开发adons的各种API说明和开发工具帮助开发者快速的开发出一个adons。说到开发addons,就不得不学习XUL,XUL是一个支持多种WEB技术的、基于XML的界面开发语言。在XUL中内置了很多界面元素,如菜单、按钮、分页等等,这样就不需要自己编写很多JS来维护和控制很多界面元素了。而且,这些界面是按照所在的OS外观来展现的,这样就提高了移植性。另外XUL也允许用JS和CSS来定制个性化界面。XUL的主要作用就是用来展现Extension的UI的。
https://developer.mozilla.org/En/XUL 这个网址可以帮助了解XUL的细节。
https://addons.mozilla.org/en-US/developers/tools/builder 提供了一个生成addons的向导,只用点点鼠标即可生成addons。
当然在开发之前,最好先学习一些HTML/XHTML/XML/CSS/Javascript的东西,这样理解起来会更快。
在http://www.w3school.com.cn/ 提供了上面所列的要学习的基础知识的教程。
首先对HTML/XHTML/XML/CSS来做些说明。
HTML是浏览器用来格式化网页显示的语言,当然为了达到相应的显示效果,人也需要掌握这门语言,这样才能让浏览器正确识别。HTML主要使用各种标签和对应的属性来告诉浏览器如何显示。支持有限的用户交互和动态效果。然而随着HTML的演进,这个语言吸收了一些不规范的东西,导致开发及浏览器的兼容性难度加大。因此XHTML应运而生,可以说XHTML本身就是HTML,它对HTML的语法及使用进行了规范。打个比方,HTML是一群写字不规范的家伙,而XHTML则是要求这这群人都用工整的字来写,不工整就是错误。XML则是一种元语言,有许多用途,它可以用来描述数据,也可以用来定义新的标记语言。XHTML正是借鉴XML良好的结构性来要求HTML的。刚才说到HTML的不规范,它本身后来包含了一些页面布局的标签,这导致HTML中硬编码了页面的格式,当页面在不同的设备上显示时,需要重新编辑HTML源文件,十分不方便。于是人们把页面布局等这些东西拿出来,用CSS的方法实现,CSS本身是一个文件,它与HTML源文件分离,这样就方便HTML的编写和具体的显示了。
下面定义了所有HTML5支持的标签及各个标签的定义:
标签 | 描述 | 4 | 5 |
---|---|---|---|
<!--...--> | 定义注释。 | 4 | 5 |
<!DOCTYPE> | 定义文档类型。 | 4 | 5 |
<a> | 定义超链接。 | 4 | 5 |
<abbr> | 定义缩写。 | 4 | 5 |
<acronym> | HTML 5 中不支持。定义首字母缩写。 | 4 | |
<address> | 定义地址元素。 | 4 | 5 |
<applet> | HTML 5 中不支持。定义 applet。 | 4 | |
<area> | 定义图像映射中的区域。 | 4 | 5 |
<article> | 定义 article。 | 5 | |
<aside> | 定义页面内容之外的内容。 | 5 | |
<audio> | 定义声音内容。 | 5 | |
<b> | 定义粗体文本。 | 4 | 5 |
<base> | 定义页面中所有链接的基准 URL。 | 4 | 5 |
<basefont> | HTML 5 中不支持。请使用 CSS 代替。 | 4 | |
<bdo> | 定义文本显示的方向。 | 4 | 5 |
<big> | HTML 5 中不支持。定义大号文本。 | 4 | |
<blockquote> | 定义长的引用。 | 4 | 5 |
<body> | 定义 body 元素。 | 4 | 5 |
<br> | 插入换行符。 | 4 | 5 |
<button> | 定义按钮。 | 4 | 5 |
<canvas> | 定义图形。 | 5 | |
<caption> | 定义表格标题。 | 4 | 5 |
<center> | HTML 5 中不支持。定义居中的文本。 | 4 | |
<cite> | 定义引用。 | 4 | 5 |
<code> | 定义计算机代码文本。 | 4 | 5 |
<col> | 定义表格列的属性。 | 4 | 5 |
<colgroup> | 定义表格列的分组。 | 4 | 5 |
<command> | 定义命令按钮。 | 5 | |
<datalist> | 定义下拉列表。 | 5 | |
<dd> | 定义定义的描述。 | 4 | 5 |
<del> | 定义删除文本。 | 4 | 5 |
<details> | 定义元素的细节。 | 5 | |
<dfn> | 定义定义项目。 | 4 | 5 |
<dir> | HTML 5 中不支持。定义目录列表。 | 4 | |
<div> | 定义文档中的一个部分。 | 4 | 5 |
<dl> | 定义定义列表。 | 4 | 5 |
<dt> | 定义定义的项目。 | 4 | 5 |
<em> | 定义强调文本。 | 4 | 5 |
<embed> | 定义外部交互内容或插件。 | 5 | |
<fieldset> | 定义 fieldset。 | 4 | 5 |
<figcaption> | 定义 figure 元素的标题。 | 5 | |
<figure> | 定义媒介内容的分组,以及它们的标题。 | 5 | |
<font> | HTML 5 中不支持。 | 4 | |
<footer> | 定义 section 或 page 的页脚。 | 5 | |
<form> | 定义表单。 | 4 | 5 |
<frame> | HTML 5 中不支持。定义子窗口(框架)。 | 4 | |
<frameset> | HTML 5 中不支持。定义框架的集。 | 4 | |
<h1> to <h6> | 定义标题 1 到标题 6。 | 4 | 5 |
<head> | 定义关于文档的信息。 | 4 | 5 |
<header> | 定义 section 或 page 的页眉。 | 5 | |
<hgroup> | 定义有关文档中的 section 的信息。 | 5 | |
<hr> | 定义水平线。 | 4 | 5 |
<html> | 定义 html 文档。 | 4 | 5 |
<i> | 定义斜体文本。 | 4 | 5 |
<iframe> | 定义行内的子窗口(框架)。 | 4 | 5 |
<img> | 定义图像。 | 4 | 5 |
<input> | 定义输入域。 | 4 | 5 |
<ins> | 定义插入文本。 | 4 | 5 |
<keygen> | 定义生成密钥。 | 5 | |
<isindex> | HTML 5 中不支持。定义单行的输入域。 | 4 | |
<kbd> | 定义键盘文本。 | 4 | 5 |
<label> | 定义表单控件的标注。 | 4 | 5 |
<legend> | 定义 fieldset 中的标题。 | 4 | 5 |
<li> | 定义列表的项目。 | 4 | 5 |
<link> | 定义资源引用。 | 4 | 5 |
<map> | 定义图像映射。 | 4 | 5 |
<mark> | 定义有记号的文本。 | 5 | |
<menu> | 定义菜单列表。 | 4 | 5 |
<meta> | 定义元信息。 | 4 | 5 |
<meter> | 定义预定义范围内的度量。 | 5 | |
<nav> | 定义导航链接。 | 5 | |
<noframes> | HTML 5 中不支持。定义 noframe 部分。 | 4 | |
<noscript> | 定义 noscript 部分。 | 4 | 5 |
<object> | 定义嵌入对象。 | 4 | 5 |
<ol> | 定义有序列表。 | 4 | 5 |
<optgroup> | 定义选项组。 | 4 | 5 |
<option> | 定义下拉列表中的选项。 | 4 | 5 |
<output> | 定义输出的一些类型。 | 5 | |
<p> | 定义段落。 | 4 | 5 |
<param> | 为对象定义参数。 | 4 | 5 |
<pre> | 定义预格式化文本。 | 4 | 5 |
<progress> | 定义任何类型的任务的进度。 | 5 | |
<q> | 定义短的引用。 | 4 | 5 |
<rp> | 定义若浏览器不支持 ruby 元素显示的内容。 | 5 | |
<rt> | 定义 ruby 注释的解释。 | 5 | |
<ruby> | 定义 ruby 注释。 | 5 | |
<s> | HTML 5 中不支持。定义加删除线的文本。 | 4 | |
<samp> | 定义样本计算机代码。 | 4 | 5 |
<script> | 定义脚本。 | 4 | 5 |
<section> | 定义 section。 | 5 | |
<select> | 定义可选列表。 | 4 | 5 |
<small> | 定义小号文本。 | 4 | 5 |
<source> | 定义媒介源。 | 5 | |
<span> | 定义文档中的 section。 | 4 | 5 |
<strike> | HTML 5 中不支持。定义加删除线的文本。 | 4 | |
<strong> | 定义强调文本。 | 4 | 5 |
<style> | 定义样式定义。 | 4 | 5 |
<sub> | 定义下标文本。 | 4 | 5 |
<summary> | 定义 details 元素的标题。 | 5 | |
<sup> | 定义上标文本。 | 4 | 5 |
<table> | 定义表格。 | 4 | 5 |
<tbody> | 定义表格的主体。 | 4 | 5 |
<td> | 定义表格单元。 | 4 | 5 |
<textarea> | 定义 textarea。 | 4 | 5 |
<tfoot> | 定义表格的脚注。 | 4 | 5 |
<th> | 定义表头。 | 4 | 5 |
<thead> | 定义表头。 | 4 | 5 |
<time> | 定义日期/时间。 | 5 | |
<title> | 定义文档的标题。 | 4 | 5 |
<tr> | 定义表格行。 | 4 | 5 |
<tt> | HTML 5 中不支持。定义打字机文本。 | 4 | |
<u> | HTML 5 中不支持。定义下划线文本。 | 4 | |
<ul> | 定义无序列表。 | 4 | 5 |
<var> | 定义变量。 | 4 | 5 |
<video> | 定义视频。 | 5 | |
<xmp> | HTML 5 中不支持。定义预格式文本。 | 4 |