简单地总结了一下前端用过的html、javascript、css技术,算是清点一下,做个大略的小结,为进一步的学习给个纲领。
一、HTML
由于HTML5的兴起,简单地判断一个网页是否是html5网页,只需要找找内部是否有html5的标志性标签就行了。然而平时虽然写了不少html,却没怎么关注它的发展史:
GML(Generalized Marcup Language)通用标记语言 和SGML(Standard Generalized Markup Language)标准通用标记语言。 |
||
由Tim Berners-Lee于1982年创建,由IETF用简化的SGML(标准通用标记语言)语法进行进一步发展的HTML,后来成为国际标准,由万维网联盟(W3C)维护。 .htm后缀是由于DOS等旧操作系统限制的扩展名最多为3个。 |
||
1.0 |
在1993年6月作为互联网工程工作小组(IETF)工作草案发布(并非标准) |
不含img标签 |
2.0 |
1995年11月作为RFC 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时 |
|
3.2 |
1997年1月14日,W3C推荐标准 |
3.0表格、文字绕排和复杂数学元素的显示 |
4.0 |
1997年12月18日,W3C推荐标准 |
|
4.01 |
1999年12月24日,W3C推荐标准 |
|
XHTML1.0 |
发布于2000年1月26日,是W3C推荐标准,后来经过修订于2002年8月1日重新发布 |
语法如同XML严格 |
XHTML1.1 |
于2001年5月31日发布,W3C推荐标准 |
完全的XML,无法利用text/html mime-type直接输出 |
XHTML 5 |
,从XHTML 1.x的更新版,基于HTML 5草案。 |
|
5.0 |
2008年1月22日草案,2012年12月17日正式定稿 |
Firefox(火狐浏览器),IE9及其更高版本,Chrome(谷歌浏览器),Safari,Opera等;国内的傲游浏览器(Maxthon),以及基于IE或Chromium(Chrome的工程版或称实验版)所推出的360浏览器、搜狗浏览器、QQ浏览器、猎豹浏览器等国产浏览器同样具备支持HTML5的能力。集成SVG可缩放矢量图形 |
5.1 |
2013年5月6日正式草案 |
由于浏览器内核的不同,平时写网页的时候,总是时不时地需要判断一下当前的浏览器
<!--[if lte IE 6]> / 如果IE版本小于等于6 /<![endif]-->
<!--[if !IE]> / 如果浏览器不是IE /<![endif]-->
lte:就是Less than or equal to的简写,也就是小于或等于的意思。
lt :就是Less than的简写,也就是小于的意思。
gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
gt :就是Greater than的简写,也就是大于的意思。
! :就是不等于的意思,跟javascript里的不等于判断符相同.
二、Javascript
貌似最近遇到了各种JS,对于一个JS的门外汉来说,实在是头疼。JQuery、Extjs、Mobile JS相关的各种框架等,看着略略地发愁,而且各种JS库的写法也不一样,虽然知道是当前的库内部定义的一些函数,调用方法等也是五花八门,使用文档很多,介绍更多,可是更乱了。想了想还是找找最原始的JS,看看它的原生态面貌,不管怎样,总结总结也知道其中的门道了。
背景 |
|||||
前身 |
开发商 |
内容 |
特点 |
是否区分大小写 |
基本功能 |
Livescript |
Netscape (Brendan Eich) |
ECMAScript、 文档对象模型、(DOM) 浏览器对象模型(BOM) |
用于客户端、基于对象、 事件驱动 |
区分,动态、弱类型、基于原型、内置支持类 |
数据验证、给HTML网页添加动态功能 |
库及工具 |
||||
前端JS类型 |
Javascript库 |
测试工具 |
调试工具 |
压缩工具 |
Netscape Navigator 3.0 的 Javascript; IE 的 Jscript; CEnvi 的 ScriptEase。
|
JQuery JSer Dojo Prototype YUI Extjs (避免CGI验证) |
JSLint JsUnit YUITest Obtrusive JS Checker Cross Check JSLitmus |
Firebug:Firefox Venkman:Gecko NitobiBug DamnIT JS Bin Blackbird |
Online Javascript Compression Tool; Scriptalizer; Dojo ShrinkSafe; YUI Compressor |
引用方式 |
|||
直接方式 |
代码行 |
<a href="javascript:alert(1)">aa</a> |
调试工具 |
代码块 |
<script language="javascript" type="text/javascript"><!--//--><!CDATA[[//><!--//javascript代码//--><!]]></script> |
!--//--用于注释html; CDATA用于纯文本化中间的内容 |
|
引用方式 |
外部文件 .js后缀 |
<script src=“url” type="text/javascript"></script> |
指定了src的标签中的内容均不显示 |
三、CSS
刚刚开始了解前端的时候,单纯地以为所有的效果都是由html写出来的,后来才知道很多漂亮的效果都是CSS的功劳。平时都是需要什么特效,就从各种猪八戒、源码爱好者、站长之家等地方随便弄点来用,从来都没有对css做过系统的了解。直到毕业找工作时,决定做前端的那几天,才突然发现这个东西还是有它的成长期的,比如版本,各种特效的滑动效果等的发展状况。
CSS主要特点概览 |
||
CSS的目前版本是CSS3。CSS的功能是将网页的表现与内容分离。百度了一下,关于CSS的版本年代表很长,所以就不单独地研究它的“历史”了,那就研究一点别的地方。 |
||
对象位置的像素级精确控制 |
支持所有字体字号 |
网页对象模型样式编辑、简单交互 |
选择器分组: |
h1,h2,h3,h4,h5,h6{color:green;} |
|
继承:嵌套支持 |
并不是所有属性都能继承,比如CSS盒子模型相关属性就是不能继承的 |
CSS版本 |
||
版本 |
时间 |
特点 |
CSS1 |
发布于 1996年12月17 日。1999 年1月11日,此推荐被重新修订 |
|
CSS2 |
发布于 1999年1月11日 |
添加了对媒介(打印机和听觉设备)和可下载字体的支持。 |
CSS3 |
2001 年 5 月 23 日 |
计划将 CSS 划分为更小的模块 |
Id、class选择器:类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用。CSS 对大小写不敏感;与html一起时,class 和 id 名称大小写敏感。 |
||
类型 |
定义 |
实例 |
id
|
# |
Html: id="para1" Css: #para1 { text-align:center; color:red;} |
class |
. |
Html: class="center" Css: .center{text-align:center;} 在标签(p)内则: p.center{……} |
使用方法 |
举例 |
备注 |
外部样式, 扩展名.css |
<linkhref="style.css"rel="stylesheet"type="text/css"/> |
统一简洁地更改所有引用了文件的页面 |
内页样式, Html<head>标签内 |
<style type="text/css"> <!--/*把声明的样式包含在一个网页注释中,这样可以解决较老的浏览器不识别style的问题*/ body{background:grey;} --> </style> |
只能用于当前网页,内嵌的多了,蜘蛛不好爬,网站SEO大忌。div+CSS比table更易浏览器不兼容,但是SEO优化友好,易抓。 |
行内样式 |
<p style="border-style: solid"> <p style="@importurl('BaiduBaike_Daima_Shili.css');">层叠样式表文档</p> <!--不能在“样式”style属性中使用@import,这一种我没有用过,是百度百科里的,先放着--> |
属性设置的自动嵌入 |
Css+div 常见错误及改正方法 |
|
1. 检查HTML元素是否有拼写错误、是否忘记结束标记 |
用dreamweaver的验证功能检查 |
2. 检查CSS是否书写正确 |
用CleanCSS来检查 CSS的拼写错误 |
3. 用删除法确定错误发生的位置 |
逐个删除div块 |
4. 利用border属性确定出错元素 |
添加border属性确定元素边界 |
5. float元素的父元素不能指定clear属性 |
MacIE下如果对float的元素的父元素使用clear属性,周围的float元素布局就会混乱。这是MacIE的著名的bug |
6. float元素务必指定width属性 |
很多浏览器在显示未指定width的float元素时会有bug。 |
7. float元素不能指定margin和padding等属性 |
IE在显示指定了margin和padding的float元素时有bug。因此不要对float元素指定margin和padding属性(可以在float元素内部嵌套一个div来设置margin和padding)。也可以使用hack方法为IE指定特别的值。 |
8. float元素的宽度之和要小于100% |
如果float元素的宽度之和正好是100%,某些古老的浏览器将不能正常显示。因此请保证宽度之和小于99%。 |
9. 是否重设了默认的样式 |
某些属性如margin、padding等,不同浏览器会有不同的解释。因此最好在开发前首先将全体的margin、padding设置为0、列表样式设置为none等。 |
10. 是否忘记了写DTD |
如果无论怎样调整不同浏览器显示结果还是不一样,那么可以检查一下页面开头是不是忘了写下DTD声明。 |