第1篇:Web前端开发
Web前端开发_Tip 理论篇
WEB标准
WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些标准大部分由W3C起草和发布,也有一些是其他标准组织制订的标准,比如ECMA(European Computer Manufacturers Aociation)的ECMAScript标准。
结构标准语言 XML XML是The Extensible Markup Language(可扩展标识语言)的简写。目前推荐遵循的是W3C于2000年10月6日发布的XML1.0,参考(知识就已经足够了?
自从99年以后,网页制作技术在国内就没有怎么进步和变革过(除了flash的兴起),而在国外前进的脚步就一直没有停止过,xhtml1.0、xhtml1.1、xml、xsl...,W3C和各大软件公司都在不断的研究和推进web技术,使它更方便、更有效、更强大。web标准的应用和推广国外已经开展了八年多(以zeldman的web标准组织网站为起点),虽然困难重重,但正在逐步被人们接受和认可。为什么我们依然陶醉在网站表面的“繁华”上,不去思考页面背后本质的东西。比较AS2.0和AS3.0在面向对象方面的异同 1.定义
ActionScript 2.0:实际上是as1.0的升级版,首次将OOP(Object Oriented Programming,面向对象的程序设计)引入Flash,但并不是完全面向对象的语言,只是在编译过程中支持OOP语法。
ActionScript 3.0:是一个完全基本OOP的标准化面向对象语言,最重要的就是as3.0不是as2.0的简单升级,而完全是两种思想的语言。可以说,as3.0全面采用了面向对象的思想,而as2.0则仍然停留在面向过程阶段,举个例子,就像VB和C#的感觉。在as3.0里,可以看到java和c#的影子,确实,这三种语言大部分思想都是一致的,只有一些小的区别,比如as3.0引入了命名空间的概念,但是不支持比如委托,在包封装及外部访问上也引入了一些新概念。
2.发展过程
一、ActionScript 1.0最简单、最灵活、比较容易理解。既可以用原始的方式一个个地创建影片、设置对象的事件处理函数,等等。
早期的flash 3中的ActionScript 1.0语法冗长,主要的应用是围绕着帧的导航和鼠标的交互.这种状况一直保持到flash 5。到flash 5版本时ActionScript已经很象JavaScript了。它提供了很强的功能和为变量的传输提供了点语法。ActionScript同时也变成了一种prototyped(原型)语言,允许类似于在javscript中的简单的oop功能。这些在随后的flash mx(6)版本中得到的增强。
二、ActionScript 2.0则相对比较规范,是1.0的升级版。首次将OOP引入FLASH。
Flash MX2004(7)引入了ActionScript 2.0,它带来了两大改进:变量的类型检测和新的cla类语法。ActionScript 2.0的变量类型会在编译时执行强制类型检测。它意味着当你在发布或是编译你的影片时任何指定了类型的变量都会从众多的代码中剥离出来,检查是否与你现有的代码存在矛盾冲突。如果在编译过程中没有发现冲突,那么你的swf将会被创建,没有任何不可理解变量类型的代码将会运行。尽管这个功能对于flash player的回放来说没有什么好处,但对于flash创作人员来它是一个非常的好工具,可以帮助调试更大更复杂的程序。
在ActionScript 2.0中的新的cla类语法用来在ActionSctipt 2.0中定义类。它类似于Java语言中的定义。尽管Flash仍不能超越它自身的原型来提供真正的cla类,但新的语法提供了一种非常熟悉的风格来帮助用户从其它语言上迁移过来,提供了更多的方法来组织分离出来As文件和包。
三、ActionScript 3.0更加系统、规范。完全OOP。
接下来我们进入到flash CS3(9;在flash8中没有发生多大的变化)ActionScript 3.这里我们不光有一个带有新的版本号的ActionScirpt 语言,还有一个全新的虚拟机即—Flash Player在回放时执行ActionScript的底层软件。ActionScript 1.0和ActionScript 2.0都使用是AVM1(ActionScript 虚拟机1),因此它们在需要回放时本质上是一样的,记得我们在ActionScript2上说过它增加了强制变量类型和新的类语法,它实际上在最终编译时变成了ActionScript 1,而ActionScript 3.0运行在AVM2上,一种新的专门针对ActionScirpt 3代码的虚拟机。基于上面的原因,ActionScript 3.0影片不能直接与ActionScript 1和ActionScript 2影片直接通讯(ActionScript 1和ActionScript 2的影片可以直接通讯,因为他们使用的是相同的虚拟机;如果要ActionScirpt 3影片与ActionScirpt 1.0和ActionScript 2.0的影片通讯,只能通过local connection),但是你会发现ActionScript 3.0的改变更深远更有意义。
3.flash as2.0 与as3.0的本质区别
一、虚拟机
在编译阶段,as2采用的是AVM1(actionScript vitual machine),而as3采用的是AVM2。新一代虚拟机采用了OOP思想,在执行速度上比起avm1也快了10倍。还提供了异常处理。以前我们在使用AS2时,一旦出错,AVM1选择的是静默失败,让人根本不知道什么地方出错了,会浪费大量的时间去查错,而AVM2与目前主流的编译器一样,会有异常处理,运行出错会输出错误提示,工作效率大大提高。如果做个对比,我想说,AVM1就是大刀长矛,而AVM2就是手枪,大刀和长矛也能杀敌,但是只在面对弱智的敌人才能发挥作用,面对一个大型项目,不用点现代化工具是不行滴。
二、事件机制
这也是很多人拿起as3就不知所措的原因,初学者会发现连一个按钮点击的方法都写不出来。实际上as3的事件机制采用的是监听的方式,和as2的onClipEvent不同,as3里所有的事件都是需要触发器,监听器,执行器三种结构的,这样做的好处就是使得这个语言非常的坚强,非常大标准化。不像as2,奇形怪状的代码漫天飞,可以这样写,也可以那样写,代码变得繁复难懂,可读性太差,执行效率也大大降低。要特别说明的是,as3的所有事件都直接继承event对象,而event是直接继承自BOSS类object,结构多么完美。所以在as3中,所有的事件都继承自相同的父亲,结构相同,提高了重用性。
三、封装性
这是as3与as2最大的不同,as3引入了封装的概念,使得程序安全性大大提高,各个对象之间的关系也通过封装,访问控制而得以确定,避免了不可靠的访问给程序带来的意外产生。
四、XML 我觉得这是最令人激动人心的改变,现在as3程序员可以很轻松也很自豪的说,我们是使用XML人群中最快乐的人。AS2时代对XML的存取仍然需要解析,而AS3则创新的将XML也视作一个对象,存取XML就像存取普通对象的属性一样方便,用点语法就可以,无疑大大提高了效率。
五、容器的概念
AS3.0采用了容器的思想,告别了as2.0一个MovieClip打天下的局面。对于as2程序员来说,可能不能理解,我mc用的好好的,干嘛不让我用啊。但是当你真正的了解as3.0的思想的时候,当你真主的体会到OOP的好处的时候,你会觉得as3.0的容器的思想的完全正确的。as2.0时代,我们做什么都用mc,而as2.0时代的mc也是直接继承自object,这给了mc极大的权限,极其多大方法属性,而有时我们只需要放一个背景图,这样做就造成了极大的浪费。说实在话as2.0和as3.0比起来就是浪费之神,所以as2.0编出的swf绝对比as3.0编译出来的swf要大上几倍。as3.0把所有你用到的显示对象都分开,mc的属性方法都被瓜分开来,举个例子,你去水果超市买水果,就肯定比直接去大型超市买要方便,更节约时间,时间就是金钱,那就是很大的节省。
4.AS3.0新特性
一、OOP方面的增强
通过类定义而生成的实例,在 AS3 中是属于 Sealed 类型,即其属性和方法无法在运行时修改。这部分属性在 AS2 中是通过类的 prototype 对象来存储,而在 AS3.0中则通过被称为 Trait 的概念对象存储管理,无法通过程序控制。这种处理方式一方面减少了通过 prototype 继承链查找属性方法所耗费的时间(所有父类的实现方法和属性都会被直接复制到对应的子类的 Trait 中),另一方面也减少了内存占用量,因为不用动态的给每一个实例创建 hashtable 来存储变量。如果仍然希望使用 AS2 中类实例在运行时的动态特性,可以将类声明为 dynamic。
二、API方面的增强
新增 Display API,使 AS3 可以控制包括 Shape, Image, TextField, Sprite, MovieClip, Video, SimpleButton, Loader在内的大部分 DisplayList 渲染单位。这其中 Sprite 类可以简单理解为没有时间轴的 MovieClip,适合用来作为组件等不需要时间轴功能的子类的基础。而新版的 MovieClip 也比 AS2 多了对于 Scene(场景)和 Label(桢标签)的程序控制。另外,渲染单位的创建和销毁通过联合 new 操作符以及 addChild/removeChild 等方法实现,类似 attachMovie 的旧方法已被舍弃,同时以后也无须去处理深度值。
新增 DOM Event API,所有 在DisplayList 上的渲染单位都支持全新的三段式事件播放机制,以 Stage 为起点自上而下的播报事件到 target 对象(此过程称为 Capture Phase),然后播报事件给 target 对象(此过程称为 Target Phase),最后在自下而上的播报事件(此过程称为 Bubbling Phase)。
新增内置的 Regular Expreions(正则表达式)支持,使 AS3 能够高效地创建、比较和修改字符串,以及迅速地分析大量文本和数据以搜索、移除和替换文本模式。
新增 ECMAScript for XML(E4X)支持。E4X 是 AS3 中内置的 XML 处理语法。在 AS3 中 XML 成为内置类型,而之前的 AS2 版本 XML 的处理 api 转移到 flash.xml.*包中,以保持向下兼容。
新增 Socket类,允许读取和写入二进制数据,使通过 AS 来解析底层网络协议(比如 POP3, SMTP, IMAP, NNTP 等)成为可能,使 Flash Player 可以连接邮件服务器和新闻组。
新增 Proxy 类来替代在 AS2 中的 Object.__resolve 功能。新增对于 Reflect(反射)的支持,相关方法在 flash.util.* 包中。
5.总结
一、AS3.0和2.0的代码不能混用,且不能和装载的as2.0或1.0的swf相互通信
使用AS3.0可以加载AS2.0 或者 1.0的swf。但是AS3.0不可以访问加载swf中变量和函数。为了方便理解,我们可以想成两个虚拟机并行工作,但是不能通信。事实上,我猜实现机制可能就和这个差不多LocalConnection。
使用AS2.0或1.0编写的swf是不可以加载AS3.0的。换句话说Flash 8&Flex 1.5及之前所有工具生成的swf都不可以加载(load)AS 3.0 swf的。
如果想让AS2.0或1.0的swf与AS3.0 swf协同工作,那么AS2.0&1.0的文件必须进行移植。就是说转成3.0。
单个的swf文件中是不能混合使用AS3.0&AS2.0(或者1.0)的。不会像AS2.0&1.0那样混用了,毕竟是AS2.0&AS3.0是两个不相同的虚拟机。
一句话总结,就是AS3.0可以加载以前的所有版本的swf,但是只是简单加载,不能访问AS2.0(或1.0)的swf内部变量&函数,无法交互。
二、所采用的编程方式
as 3.0所采用的编程方式是与java C++非常类似的面向对象编程方式,不论在语法上还是在设计思路上。只要你有java C++基础,那学 AS是非常轻松的。不过AS3.0不能像java C++那样操作底层数据,如存储数据等,必须通过后台语言如php asp 等来实现,而且运行大规模数据时会慢一些。as 2.0以往是主要面向过程的编程方式,也就是说想到哪就可以写到哪,但到3.0之后就不行了,你必须把每一块程序都写到一个类中,让类和类之间进行联系。凡事都是类的理念。
其实不同的事情有很多,但是也可以这么讲,AS3.0与AS2.0是一样的,只是语法不同了,编程思路不同了,但核心内容不变,也就是说,如果你精通AS2.0,那么,你离精通3.0就不远了。因为你在编程进对算法的掌握和思想都是相通了。
三、as2.0到as3.0的转换
在AS2项目往AS3转换/移植的过程中,不要想象这只是一个语法转换的过程,实际上,你不得不考虑AS3以及其类库中的一些新机制,所能带来的性能以及程序结构良好性的提升。因此,可能很多东西,你得重新设计,特别是可视元素和事件相关的,也就是用户交互方面的东西,我认为是必须得根据AS3的特点重新设计的,否则转换是无价值的,甚至会得到更差的程序。一些纯算法方面的代码,可能不需要重新设计,直接替换一些语言层面的东西即可。还有FlashPlayer的速度提升使代码执行速度提升10倍左右,可视元素运行/渲染速度平均提升2倍左右,位图渲染速度有比较明显的提升。
一些在AS2里面我们需要的东西,在AS3里面,我们不再需要了;一些用AS2做出来的东西,运行起来效率不够理想,用AS3做出来,运行得更快了;一些AS2里面不可能做到的东西,在AS3里面,我们可以做了。CSS盒子 前言
如果你想尝试一下不用表格来排版网页,而是用CSS来排版你的网页,也就是常听的用DIV来编排你的网页结构,又或者说你想学习网页标准设计,再或者说你的上司要你改变传统的表格排版方式,提高企业竞争力,那么你一定要接触到的一个知识点就是CSS的盒子模式,这就是DIV排版的核心所在,传统的表格排版是通过大小不一的表格和表格嵌套来定位排版网页内容,改用CSS排版后,就是通过由CSS定义的大小不一的盒子和盒子嵌套来编排网页。因为用这种方式排版的网页代码简洁,更新方便,能兼容更多的浏览器,比如PDA设备也能正常浏览,所以放弃自己之前钟爱的表格排版也是值得的,更重要的是CSS排版网页的优势远远不只这些,本人在这里就不多说,自己可以去查找相关信息。
理解CSS盒子模型
什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充(padding)、边框(border)、边界(margin),CSS盒子模式都具备这些属性。
这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,看到的图形和结构就类似我们要做的网页版面设计了,如下图。
现在对CSS盒子模式理解多少了,如果还不够透彻,继续往下看,我会在后面举例,并延用盒子的概念来解释它。
转变我们的思路
传统的前台网页设计是这样进行的:根据要求,先考虑好主色调,要用什么类型的图片,用什么字体、颜色等等,然后再用Photoshop这类软件自由的画出来,最后再切成小图,再不自由的通过设计HTML生成页面,改用CSS排版后,我们要转变这个思想,此时我们主要考虑的是页面内容的语义和结构,因为一个强CSS控制的网页,等做好网页后,你还可以轻松的调你想要的网页风格,况且CSS排版的另外一个目的是让代码易读,区块分明,强化代码重用,所以结构很重要。如果你想说我的网页设计的很复杂,到后来能不能实现那样的效果?我要告诉你的是,如果用CSS实现不了的效果,一般用表格也是很难实现的,因为CSS的控制能力实在是太强大了,顺便说一点的是用CSS排版有一个很实用的好处是,如果你是接单做网站的,如果你用了CSS排版网页,做到后来客户有什么不满意,特别是色调的话,那么改起来就相当容易,甚至你还可以定制几种风格的CSS文件供客户选择,又或者写一个程序实现动态调用,让网站具有动态改变风格的功能。
实现结构与表现分离
在真正开始布局实践之前,再来认识一件事——结构和表现相分离,这也用CSS布局的特色所在,结构与表现分离后,代码才简洁,更新才方便,这不正是我们学习CSS的目的所在吗?举个例来说P是结构化标签,有P标签的地方表示这是一个段落区块,margin是表现属性,我要让一个段落右缩进2字高,有些人会想到加空格,然后不断地加空格,但现在可以给P标签指定一个CSS样式:P {text-indent: 2em;},这样结果body内容部分就如下,这没有外加任何表现控制的标签:
加进思源社区有一段时间了,但一直没有时间写点东西,今天写了一篇有关CSS布局的文章,并力求通过一种通俗的语言来说明知识点,还配以实例和图片,相信对初学CSS布局的人会带来一定的帮助。
如果还要对这个段落加上字体、字号、背景、行距等修饰,直接把对应的CSS加进P样式里就行了,不用像这样来写了:
段落内容
这个是结构和表现混合一起写的,如果很多段落有统一结构和表现的话,再这样累加写下去代码就繁冗了。
再直接列一段代码加深理解结构和表现相分离:
用CSS排版
height:80;
width:100;
margin:5px auto;}-->
第2篇:web前端开发知识点总结
HTML知识总结
span
行级元素,多个
同行块级元素,独占
一行块级元素,前后
保留一行
标题标签,h1~h6表6个等级,加粗,前后保留一行width:设置宽
度height:设置高
度alt:图片加载失败显示的文本
div
文本类
p
h
图片标签img
color:颜色
水平线常用标签
hr
size:高度(粗
细)width:宽度(长度)herf:超链接转到的地址
超链接a
target
_self:默认值,在当前页面打开_blank:在新窗口
打开
带标题的框fieldsetlegend设置标题
disc:实心圆
无序列表
列表标签
有序列表
ul
square:小方块
olcircle:空心圆
tr表示行
th
表示标题单元格,居中、加粗
td
表格标签
caption
表示一个单元格
表示标题,定义在第一行,居中
rowspan
设置单元格占的行
数
colspan
设置单元格占的列
数
action表单提交地址
get:显示提交参数,将参数用?和&拼接到url上
带到服务器端
method
post:隐式提交参
数optgroup 表示分组,分组不能选,只能选分组中的option
下拉菜单
selected默认选中
multiple 设置下拉菜单为多选模式
表单项
rows: 显示文本的行数(高度)
文本域
cols: 显示文本的列
数(宽度)
name:参数名
size:显示字符长度(控制文本框长
度)maxlength:最大可
输入字符数
input文本框type=“text”
placeholder:提示
内容
disabled:不会被提交到服务器readonly:只读(会被提交到服务
器)
value:默认值
密码框
type=“paword”单选按钮type=“radio”复选框
type=“checkbox”文件选择框type=“file”
按钮
type=“button”提交
type=“submit”checked:默认选
中
input
按钮
重置type=“reset”
noresize:不能改变框架大小
frame:表示框架
scolling:是否显示滚动条(yes、no、auto)设置框架集在纵向上的拆分策略设置框架集在横向上的拆分策略
rows
cols
border
框架集
框架边框的宽度
borderColor框架边框颜色
frameBorder
设置框架是否有边框(yes|no)_blank:新窗口中
打开_self:在当前窗口
打开
框架集中的超链接打开方式target_parent:父窗口
中打开_top在最顶层窗口中打开frameName:在对应name框架打
开
ifame
在页面中嵌入框架
dl、dt、dd其他标签
数码 手机
marquee:滚动标签
shape=“circle”
coords=“309,257,20”target=“_blank”
href=“http://5新标签
number:数字输入
date picker:日期选择
datalist:自动提示
sichuanchongqingguangzhoushanghaibeijingtianjin
video:动画
媒体
radio:音频
autocomplete:是否关闭自动提示(off |
on)html5新标签
autofocus: 自动获得
焦点
required: 表示控件
必须输入内容
controls : 播放控制条
autoplay :自动播放
loop :循环播放preload :预加载,如果设置了autoplay,就可以不用设置preload
CSS知识点总结
内联:直接在标签的style属性上编写
样式样式定义方式
样式块:在style标签中编写样式块,并通过一定规则(选择器)应用到对应的那些标签上(通常写在head中)
span {
color: green;
background-color: #eeffee;}
外部样式文件:将样式块编写在外部的c文件中(不用写style标签)* 在需要使用样式的页面通过link标签引入样式文件(通常写在head中)
id选择器#xxx 针对id为xxx的标签
类选择器.xxx 针对cla属性为xxx的标
签
标签选择xxx 针对标签名为xxx的标签
*选择器选择所有元素选择器
后代元素关系选择selector1 selector2 {...} 针对selector1下的所有的selector2
子元素关系选择selector1 > selector2 {...} 只针对selector1的selector2子元素(如果有后代selector2元素则不会应用)
紧邻兄弟关系选择selector1 + selector2 {...} 只针对紧接在selector1后的selector2元素
所有随后的兄弟关系selector1 ~ selector2 {...} 针对selector1后的所有的selector2兄弟元素
color:字体颜色
font-size:字体大小
font-family:字体样式
字体
font-weight: bolder(加粗)| normal(不加粗)font-style: 设置字体倾斜(normal | italic | oblique)*italic和oblique实际显示效果
几乎一致font-variant: 设置字体显示为小型大写字母
text-align: 水平对齐方式(left | center | right)常用属性
vertical-align: 垂直对齐方式(top | middle |
bottom)
line-height: 设置行高(通常用于设置文本居
中)
white-space: nowrap 不换行, pre 当做pre标签
border: 边框(1px solid
red)
文本
width: 宽度
underline 下划线
height: 高度
overline 上划线
text-decoration: 文本装
饰
line-through 贯穿线(删
除线)
blink 闪烁
none 无
dtext-shadow: 3px 3px 5px red;第一个参数: 阴影水平位置(x轴上的偏移量)
text-shadow: 文本阴影
第二个参数: 阴影垂直位置(y轴上的偏移量)
第三个参数: 模糊程度第四个参数: 阴影颜色
padding:内边距
padding: xxpx;
padding: xxpx xxpx;
padding: xxpx xxpx xxpx;
padding: xxpx xxpx xxpx xxpx;padding: auto;
padding: xxpx auto;padding-toppadding-leftpadding-rightpadding-bottom盒子模型
margin:外边距
margin: xxpx;
margin: xxpx xxpx;
margin: xxpx xxpx xxpx;
margin: xxpx xxpx xxpx xxpx;margin: auto;
margin: xxpx auto;margin-topmargin-leftmargin-rightmargin-bottom
border:边框
color:颜色;width:宽度;
style:outset|inset|solid|double|dottedborder-radius: 10px;/* 同时设置4个角*/
background-color: 背景颜色
background-image: 背景图片
background-repeat: no-repeat | repeat-x |
repeat-y | repeat背景
background-position: xxxpx xxpx | xx%
xx%;(可以为负数)
background-size: xxxpx xxpx | xx% xx% |
cover | contain;(不能为负数)
cover: 拉伸,可以超出contain: 拉伸不能超出
background-attachment: scroll(随着内容
一起滚动)| fixed(不滚动)
hidden:隐藏
scroll:滚动
overflow:当内容溢出
时的处理方式
visible:直接显示
auto:如果溢出就滚动,否则不显示滚动条
visible 显示
visibility:设置元素是
否显示
hidden 隐藏,保留占位
none:隐藏,不保留占
位
block:设置为块级元
素
display:设置元素是否
显示
inline:设置为行级元
素
布局
inline-block:设置为行
内块元素
left 左浮动
float: 浮动right 右浮动
none 不浮动
left 不允许左边有浮动
clear: 清除浮动right 不允许右边有浮动
both 不允许两边有浮动
ul或ol 自带样式:
列表样式
list-style-type: 列表项的样式
margin: 16px 0px;padding: 0px 0px 0px
40px;
absolute:如果有父元素被定位按照父元素的原点进行定位,否则按照浏览器原点进行定位
position
定位
z-index: 设置z轴的值,越大越在最前
relative:相对定位参照元素本身的位置
fixed:固定位置,不
会滚动
link 超链接默认样式
hover 鼠标悬停样式
active 鼠标点击样式
visited 访问之后的样式(主要控制颜色)
伪类
focus 获得输入焦点的样式
first-child 第一个元素
last-child 最后一个元素
:not 不包含指定的选
择器
:noly-child 是父元素的唯
一子元素
cursor 鼠标样式
其他样式
box-shadow 阴影
translate:平移
rotate:旋转transform:变换
scale:缩放
skew:扭曲
matrix:以变换矩阵变换
第一个值表示需要过渡的样式属性transition 过渡
transition:transform2s,background-color.5s;
第二个值表示整个过渡过程需要的时间第三个值表示过渡时的贝塞尔曲线第四个值表示延迟多久才开始过渡animation 动画
@keyfarmes 关键帧用于定义动画的细节(每一帧如何显示)
@keyframes myanimation {0% { background-color: #cfc;}30% {
background-color: #ccf;border-radius: 50px;}80% {
width: 300px;
background-color: #fcc;}
100% {
width: 300px;height: 300px;
background-color: #000;}}
@-o-keyframes myanimation {}@-ms-keyframes myanimation {}@-moz-keyframes myanimation {}@-webkit-keyframes myanimation {}
需要显示动画的地方通过animation属性来使用声明的关键帧
.ac:active {
animation: myanimation 5s;-o-animation: myanimation 5s;-ms-animation: myanimation 5s;-moz-animation: myanimation 5s;-webkit-animation: myanimation 5s;}opacity透明度从0.0 ~ 1.0 0.0完全透明,1.0 完全不透明浏览器兼容前缀
-webkit-chrome,safari, opera-o-opera
-moz-firefox
-ms-ie(ie9以上)
JavaScript
javascript代码必须包含在标签中
也可以书写到外部的.js文件中,通过来引入
script标签只能同时做一件事情.如果既有src属性也包含代码则只会执行外部文件的代码
通过alert来弹出提示框
通过document.write来输入文本到页面上(可以输入标签)Number: 数值型整数和小数Boolean: 布尔型(true |
false)
String: 字符串
字符串必须被”“或''包含必须对称
如果字符串中包含引号可以单引号中包含双引号或者是双引号中包含单引号
也可以使用'来表示一个单引号”来表示一个双引号
n 表示换行数据类型
t 表示制表符表示书写方式
NaN: Not A Number 当使用非数字来进行运算时的值
undefied: 未定义
null: 空值
substring 截取子串, 从start到end-1处,如果
没指定end则取到最后一个字符
toUpperCase 将所有字符变成大写
toLowerCase 将所有字符变成小写
indexOf 查找子串首次出现的位置, 如果找不到则
返回-1字符串处理
lastIndexOf 查找子串最后一次出现的位置, 如果找不到则返回-1charAt 取指定位置上的字符slice 也是取子串,效果和substring一样可以用-1,-2,-3...从末尾
开始计数split 将字符串按照指定的字符进行拆分成为数组
获取当前时间var now = new Date()
获取指定时间的日期对象
var date = new Date(yyyy,MM,dd,HH,mm,)
设置指定时间(将时间对象设置为一个指定时间)
now.setFullYear(yyyy,MM,dd,HH,mm,)
now.setMonth日期Date
now.setDatenow.setHours
...获取指定时间信息
now.getFullYear()// 年只能取出年份,如: 2015
now.getMonth // 月0-11月
now.getDate // 日
now.getDay // 星期0-6(0表示星期天)
now.getHours // 时24小时制
now.getMinutes // 分now.getSeconds // 秒now.getMilliseconds// 毫秒
通过new Array()来创建数组var names = new Array();
var names = new Array(“小王”, “大王”, “炸弹”);// 创建时给数组设置默认值
//用json格式表示数组
var names = [];
var names = [“小王”, “大王”, “炸弹”];数组Array
可以通过length来设置或获取数组的长度
push : 往数组末尾添加元素
pop: 删除并返回数组的最后一个元素unshift: 往数组的开头添加元素shift: 删除并返回数组的第一个元素reverse: 颠倒数组顺序
sort: 按“字符串”的自然排序规则进行升序
splice: 删除指定位置处的指定个数元素并将第三个参数之后的参数添加到被删除位置(设置第二个参数为0则实现只添加不删除, 之传入两个参数实现只删除不添加)
slice: 获取start到end处的子数组
join: 将数组元素以指定分隔符进行连接成为字符串
function xxx(....){
声明函数
....}
var xxx = function(...){
...函数变量
}var ooo = xxx;
ooo();函数
function fn(fx){
fx();
将函数作为参数
}fn(function(){
...});(function(...){
立即执行函数
....})(...);
getElementById 根据id获取唯一的元素var xx = document.getElementById(“xx”);DOM(Document Object Model)文档对象模型
获取元素
getElementsByTagName 根据标签名获取元
素数组
onclick 鼠标点击事件
getElementsByClaName 根据类获取元素数组(如果元素被改变了cla值将会从数组
中删除)
onmouseover 鼠标进入事件
onmouseout 鼠标离开事件
onmousemove 鼠标被移动
onmousedown 鼠标按钮被按下事件机制
onmouseup 鼠标按钮被松开
onkeydown 某个键盘按键被按下
onkeyup某个键盘按键被松开
onload 一张页面或图像被完成加载
onchange 域的内容被改变
onfocus 元素获得焦点
onblur 元素失去焦点
setTimeout: 延迟执行(只会执
行一次)var xx = setTimeout(xxx, 1000);setTimeout(“fn();”, 3000);BOM(Browser Object Model)
window
清除使用clearTimeout(xx);setInterval: 定时执行(间隔指
定时间循环执行)
xx.offsetLeft获取元素的位置和尺寸(只读)
xx.offsetTopxx.offsetWidthxx.offsetHeight
var xx = setInterval(xxx,1000);
清除使用clearInterval(xx);
[] 表示[]中的字符任意取一个
在[] 中的^ 表示非不包含该字符
()表示将多个表达式合并为一个表达式
在()中的|表示将两个匹配条件进行逻辑“或”(Or)运算。+ 前一个表达式出现至少一次1~n {1,}* 前一个表达式出现任意次0~n {0,}? 前一个表达式出现0~1次{0,1}{n} 前一个表达式出现n次
{n,} 前一个表达式出现至少n次{n,m} 前一个表达式出现n~m次.任意字符(不包含rn)正则表达式
^ 匹配字符串的开头$ 匹配字符串的结尾
w 表示一个任意的单词字符包括_ [a-zA-Z0-9_] * 不包含破折号
W 对w取反(不包含单词字符)[^a-zA-Z0-9_]d 表示一个数字字符[0-9]D 对d取反[^0-9]s 表示一个任意空白字符空格中文状态的空格制表符全角空格
S 对s取反非空格n 换行符b 单词边界
B 不是单词边界(对b取反)
eval
执行字符串形式的代码。
for(var i in array){var item = array[i];
}
for(var key in obj){var value = obj[key];
}
迭代数组迭代出的值为数组的下标
for...in
迭代对象迭代出的值为对象的属性名其他
with
设置以某个对象为代码块作用域对象
delete attribute删除属性
isNaN
如果被判断值不是一个数字则返回true,否则为false
第3篇:WEB前端开发经验总结
ASP.NET前端开发经验总结
通过此次大作业的设计到完成,我负责的是web前端的开发,经过此次作业和结合W3C上的自学,我渐渐有了一些对前端开发的小小经验(仅为个人意见)。WEB标准是什么?
说是WEB标准,不过我这里主要是对HTML5 和 CSS3.0的一些经验总结。因为WEB含盖的内容实在是太多了,“WEB标准”是一系列标准的总称,包括HTML5.0、HTML4.0、XHTML1.1、CSS3.0、CSS2.1、XML1.0、RSS2.0、ECMAScript1.1、DOM1.0等等。所以这里要跟大家指出来一下,WEB标准不是我们所说的DIV+CSS。刚刚上面提到了――DIV+CSS,这里要说明下,这样说其实是不正确的。DIV+CSS准确的说法(个人的理解)应该是:采用W3C推荐的WEB标准
第4篇:WEB前端开发经验总结
WEB前端开发经验总结
发布时间:2009-04-20 09:05:33来源:作者:shengman点击:21015
这里跟大家谈谈个人对WEB前端开发的一些经验(当然都是个人的一些理解,有什么地方说的欠妥或不对的地方还请包含和指正),这里我就从WEB标准开始吧。
WEB标准是什么?
说是WEB标准,不过我这里主要是对XHTML1.1 和 CSS2.1的一些经验总结。因为WEB含盖的内容实在是太多了,“WEB标准”是一系列标准的总称,包括HTML4.0、XHTML1.1、CSS2.1、XML1.0、RSS2.0、ECMAScript1.1、DOM1.0等等。所以这里要跟大家指出来一下,WEB标准不是我们所说的DIV+CSS。刚刚上面提到了――DIV+CSS,这里要说明下,这样说其实是不正确的。DIV+