CSS选择器及其优先级排序

一、 CSS选择器分类


CSS选择器如下:

CSS的选择器其实大类的话可以分为三类,即id选择器、class选择器、标签选择器

用法如下:

  • id选择器: #id名 { 属性名:属性值; }
  • class选择器 :.class名 { 属性名:属性值; }
  • 标签选择器: 标签名 { 属性名:属性值; }

其中,他们之间又可以以不同的方式进行组合,如下:

  • 后代选择器: 父代名 后代名 { 属性名:属性值; }
  • 子代选择器:父代名>子代名 { 属性名:属性值; }
  • 群组选择器: #name1, .name2, #name div { 属性名:属性值; }
  • 伪类选择器: name:伪类
  • 通用(通配符)选择器:* { 属性名: 属性值; } ……
    常用的也就这些。

完整CSS选择器参考手册

详细的选择器类型

下面列表中,选择器类型的优先级是递增的:

  1. 类型选择器(type selectors)(例如, h1)和 伪元素(pseudo-elements)(例如, ::before)
  2. 类选择器(class selectors) (例如,.example),属性选择器(attributes selectors)(例如, [type=“radio”]),伪类(pseudo-classes)(例如, :hover)
  3. ID选择器(例如, #example)

通配选择符(universal selector)(*), 关系选择符(combinators) (+, >, ~, ’ ') 和 否定伪类(negation pseudo-class)(:not()) 对优先级没有影响。(但是,在 :not() 内部声明的选择器是会影响优先级)。

给元素添加的内联样式 (例如, style=“font-weight:bold”) 总会覆盖外部样式表的任何样式 ,因此可看作是具有最高的优先级。.

例外的 !important 规则

当在一个样式声明中使用一个!important 规则时,此声明将覆盖任何其他声明。虽然技术上!important与优先级无关,但它与它直接相关。
使用 !important 是一个坏习惯,应该尽量避免,因为这破坏了样式表中的固有的级联规则 使得调试找bug变得更加困难了。当两条相互冲突的带有 !important 规则的声明被应用到相同的元素上时,拥有更大优先级的声明将会被采用。

一些经验法则:

  • 一定要优化考虑使用样式规则的优先级来解决问题而不是 !important
  • 只有在需要覆盖全站或外部 css(例如引用的 ExtJs 或者 YUI )的特定页面中使用 !important
  • 永远不要在全站范围的 css 上使用 !important
  • 永远不要在你的插件中使用 !important

取而代之,你可以:

  1. 更好地利用CSS级联属性
  2. 使用更具体的规则。在您选择的元素之前,增加一个或多个其他元素,使选择器变得更加具体,并获得更高的优先级

二、CSS选择器优先级

优先级就是分配给指定的CSS声明的一个权重,它由 匹配的选择器中的 每一种选择器类型的 数值 决定。
而当优先级与多个CSS声明中任意一个声明的优先级相等的时候,CSS中最后的那个声明将会被应用到元素上。
当同一个元素有多个声明的时候,优先级才会有意义。因为每一个直接作用于元素的CSS规则总是会接管/覆盖(take over)该元素从祖先元素继承而来的规则。

  • 最高优先级是 (直接在标签中的设置样式,假设级别为1000)
  • 次优先级是(ID选择器 ,假设级别为100) #myDiv{color:Red;}
  • 其次优先级是(类选择器,假设级别为10).divClass{color:Red;}
  • 最后优先级是 (标签选择器,假设级别是 1) div{color:Red;}
  • 那么后代选择器的优先级就可以计算了啊
选择器优先级通俗的理解

优先级:由高到低(从上到下)

  • !important

  • 内联(1,0,0,0)

  • id: (0,1,0,0)

  • 类:(0,0,1,0)

  • 伪类/属性

  • 元素:(0,0,0,1)

  • 通配符

  • 继承


使用的规则也很简单,就是 选择器的权值加到一起,大的优先;如果权值相同,后定义的优先 。虽然很简单,但如果书写的时候没有注意,很容易就会导致CSS的重复定义,代码冗余。

比如

.divClass span { color:Red;} 优先级别就是:10+1=11


从上面我们可以得出两个关键的因素:

  • 权值的大小跟选择器的类型和数量有关
  • 样式的优先级跟样式的定义顺序有关

关于CSS的执行效率:

  1. 样式系统从最右边的选择符开始向左进行匹配规则。只要当前选择符的左边还有其他选择符,样式系统就会继续向左移动,直到找到和规则匹配的元素,或者因为不匹配而退出。
  2. 如果你非常在意页面的性能那千万别使用CSS3选择器。实际上,在所有浏览器中,用 class 和 id 来渲染,比那些使用同胞,后代选择器,子选择器(sibling, descendant and child selectors)对页面性能的改善更值得关注。

完整CSS选择器优先级

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
-----------------------------<br>DotNetTextBox 更新历史<br>-----------------------------<br>2007/8/18<br>Version 3.3.1 Free<br><br>Updates:<br>1) 改进文件重命名的安全BUG,现在重命名功能不可修改文件后缀名称。<br>2) 改进了自定义插件(弹出窗口)的功能,配置中仅需定义页面名称即可,控件会自动识别系统文件夹位置。<br>3) 优化部分代码。<br>4) 增加商业版的演示地址。<br><br><br>2007/8/15<br>Version 3.3.0 Free<br><br>Updates:<br>1) 修正控件选择框样式会影响页面其它选择框样式的BUG。<br>2) 修正XP风格表情里其中一个图标与其它图标大小不一致的BUG。<br>3) 修正在非简体中文操作系统里控件调用中文字体不正确的BUG。<br>4) 修正选择字体功能中部分中文字体不能正确应用的BUG。<br>5) 优化了控件部分户端代码。<br>6) 清理了table.aspx页面中的多余代码。<br><br>2007/8/13<br>Version 3.2.9 Free<br><br>Updates:<br>1) 修正预览功能不能正常显示动态效果的BUG。<br>2) 修正控件在Opera下切换状态后不能聚集编辑框的BUG。<br>3) 去掉特殊字体格式中飞行效果,因为此效果与文字移动效果雷同。<br>4) 使用帮助.CHM里的常见问题增加对应用全局样式后不能使用功能页面的解决方法。<br>5) 优化了控件部分户端代码。<br>6) 更新了部分多语言的翻译文字。<br><br>2007/8/10<br>Version 3.2.8 Free<br><br>Updates:<br>1) 修正控件添加在页面表格以外的地方时会导致粘贴WORD功能工作不正常的BUG。<br>2) 修正控件在iframe内调用时右键菜单功能失效的BUG。<br>3) 修正上一版因修正BUG而造成的转换预览状态后仍然是设计状态的BUG。<br>4) 修正上传图片功能中生成自定义缩略图名称有误的BUG。 <br>5) 更新了使用帮助.chm里的常见问题说明及CHM的编译方式。<br>6) 优化了控件部分的客户端代码。<br><br><br>2007/8/5<br>Version 3.2.7 Free<br><br>Updates:<br>1) 修正插入MSN、QQ、ICQ在线状态图标时会出现焦点缺失的BUG。<br>2) 修正远程上传图片后自动生成文件名不正确的BUG。 <br>3) 修正使用showModalDialog模态窗口打开控件所在页面时控件无法使用的BUG。<br><br><br>2007/7/31<br>Version 3.2.6 Free<br><br>Updates:<br>1) 修正插入信纸功能中插入空白之后右键菜单失效的BUG。<br>2) 修正状态栏缩减扩展功能图标在某些情况下显示不正常的BUG。 <br>3) 修正在多控件下状态栏转换时样式不正常的BUG。<br>4) 修正IE浏览下禁用编辑源码的时候仍然可以编辑的BUG。<br>5) 修正非IE浏览下无法禁用编辑源码的BUG。<br>6) 修正Opera浏览下转换预览状态后出现内容显示不正确的BUG。<br><br>2007/7/29<br>Version 3.2.5 Free<br><br>Updates:<br>1) 修正有些内容不能在编辑框内正常粘贴(粘贴了在编辑外)的BUG。<br>2) 修改插入超链接的功能使其支持为文本添加超链接。 <br>3) 修改了一些菜单功能的多语言说明。<br>4) 新增按键形式的控件状态栏,可通过toolbar.css样式文件控制其外观,并且按键形式的状态栏为默认状态栏,可通过新增的ImageStatusBar属性设置为True来换回以前图像形式的状态栏。<br>5) 将粘贴功能区分为粘贴内容、粘贴文本、粘贴WORD三种功能。<br>6) 翻译了插入超链接功能里的打开方式说明。<br>7) 更新了部分的菜单功能图标。<br><br>2007/7/26<br>Version 3.2.4 Free<br><br>Updates:<br>1) 修正在线帮助中心功能无法正常使用的BUG。<br>2) 修正Default界面下插入自定义表情脚本出错的BUG。<br>3) 修正了当选择了一个编辑对象的时候再插入表情图标会出现脚本错误的BUG。<br>4) 改进了转换相对及绝对路径的算法,此算法除了修正了上一版本无法正确转换全部路径的BUG外,还修正了以前算法在非IE浏览下可能引起的脚本停止响应的严重BUG。<br>5) 修改Word文档导入功能生成的图片文件名为自动按日期时间命名,避免生成的时候与上传目录已有的图片文件重名。<br>6) 优化了部分控件的客户端脚本代码。<br>7) 改进的插入超链接功能,支持打开窗口方式的选择,并且修正原来功能在FIREFOX浏览下不可用的BUG。 <br><br>2007/7/21<br>Version 3.2.3 Stable<br><br>Updates:<br>1) 修正上传功能设置为自动改名后,上传文件之后网络地址栏的地址仍然是文件原名的BUG。<br>2) 修正控件在浏览滚动条下端位置时弹出DIV窗口会出现显示位置有误的BUG。<br>3) 修改原ImgPathType属性名称为PathType,并且路径形式的切换对插入文件路径和插入图片路径都生效(原来的属性仅对图片路径生效)。<br>4) 更新了使用帮助文件中关于新属性的说明。<br><br>2007/7/20<br>Version 3.2.2 Stable<br><br>Updates:<br>1) 去掉了多个无用的控件内置属性,精简了控件的体积,并且优化了代码。<br>2) 增加ToolBarBgImg的内置属性,此属性用于设置控件菜单栏的背景图片。<br>3) 上传功能增加过滤显示的功能,文件列表将只会显示当前上传功能所允许上传类型的文件。如图片上传功能里文件列表将只会显示*.jpg、*.gif、*.png、*.bmp等图像文件。<br>4) 修正了上传功能中重命名文件的时候文件列表返回顶端的BUG,现在重命名的时候会自动聚焦到要重命名文件名的位置上。<br>5) 修正了上传功能中文件创建日期不正确的BUG。<br>6) 修正了多个使用上出现的细微BUG。<br><br>2007/7/18<br>Version 3.2.1 Stable<br><br>Updates:<br>1) 修正插入QQ,MSN,ICQ在线图标的翻译错误。<br>2) 增加全部内置功能下三行排列样式界面的演示及配置文件。<br>3) 增加上传及插入模板的功能,并在全部内置功能的演示中代替了插入EXCEL表格的功能(由于此功能需要服务安装office2000,使用环境有限制,所以从演示中去掉,但保留此功能,有需要请自行在配置文件中增加<rightarea>excel</rightarea>)。<br>4) 压缩包中附带了word文档导入功能的插件包,有需要的朋友可自行添加此功能(此功能有使用环境的限制)。<br><br>2007/7/06<br>Version 3.2.0 Stable<br><br>Updates:<br>1) 修正上传功能中如果文件名带有空格字符时就会出现插入地址不正确的BUG。<br>2) 修正了一些设计状态时的BUG。<br>3) 修正上一版增加功能引起的不能修改图片的BUG。<br>4) 修正Opera浏览下编辑时出现的一些BUG。<br>5) 修正预览状态下提交内容后图片消失的BUG。<br>6) 插入表情图标功能由原来的弹出式窗口改为DIV窗口,更加美观实用。<br>7) 计算功能由原来的弹出式窗口改为DIV窗口,更加美观实用。<br>8) 右键菜单增加创建和修改链接的功能。<br>9) 插入当前日期功能用更强大的日期选择控件功能代替。<br>10) 去掉插入MSN,QQ,ICQ在线图标功能的脚本弹出窗口,用DIV窗口代替,提高这些功能在IE7下的易用性。<br>11) 上传图像功能增加保持纵横比的选项功能。<br>12) 使用帮助.CHM文件中增加控件内置属性的说明列表(简易形式)。<br>13) 此版本是稳定版本,以后架构将不会再作大的更新,如果有增加功能或者修正BUG将会采用增量更新包形式提供。<br><br>2007/7/04<br>Version 3.1.9 beta<br><br>Updates:<br>1) 增强页面信息采集功能的链接分析能力,当采集图片或超链接的时候会自动将相对路径转化为真实的网络路径,并且修正了采集功能的一些已知BUG。<br>2) 上传功能增加文件查找功能,方便文件较多的时候快速找到自己想要的文件。<br>3) 更新了所有的多语言资源文件的部分翻译。<br><br>2007/7/03<br>Version 3.1.8 beta<br><br>Updates:<br>1) 完全重整目录结构,针对旧版本因为控件目录过多及路径属性设置繁复,现在所有目录都集中到system_dntb这个系统目录底下,而且路径属性设置也精简为一个(同样支持web.config全局设置)。<br>2) system_dntb这个目录名称可以改动名称或者放置到任何位置,只需设置一下systemfolder属性的相对路径,但system_dntb下的所有文件名及目录名请不要改动,否则控件将不能正常工作!<br>3) 修正插入图片功能中引用外部网络地址会出现插入地址错误的BUG。<br>4) 修正控件在Opera浏览使用中出现的一些BUG。<br>5) 修正了控件右键菜单判断选择状态不正确的BUG。<br>6) 优化了非IE浏览下的脚本性能。<br>7) 将编辑设置为在缩放或移动过程中持续更新元素外观,以达到更好的所见即所得效果。<br>8) 增加插入图片的路径类型选择功能,可通过ImgPathType内置的属性选择插入图片地址为相对路径(Relative)如:system_dntb/upload/xx.gif、绝对根路径(AbsoluteRoot)如:/dotnettextbox/system_dntb/upload/xx.gif、绝对全路径(AbsoluteFull)如:http://aspxcn.com.cn/dotnettextbox/system_dntb/upload/.gif。属性默认值为相对路径,此功能将大大方便以后文章的迁移!<br>9) 去掉获取远程页面的功能,改用更强大的远程信息采集功能代替,拥有多种的信息采集方式。<br>10) 增加强大的查找及替换功能,并且默认菜单配置用查找替换功能代替在线帮助中心功能,如果各位有需要用到在线帮助中心功能,请自行在菜单配置文件里添加<rightarea>help</rightarea>。<br>11) 增加对没有安装VS2005的虚拟主机运行控件出现错误的解决办法。<br>12) 特别注意,因为此版改动太大,旧版本升级最好完全覆盖以保证控件正常运行!<br><br>2007/6/29<br>Version 3.1.7 beta<br><br>Updates:<br>1) 修正FIREFOX下修改表格背景颜色无效的BUG。<br>2) 修正在多控件下右键菜单出错的BUG。<br>3) 继续清理了一些无用的JS代码。<br><br>2007/6/28<br>Version 3.1.6 beta<br><br>Updates:<br>1) 增加AdjustSize属性,用于设置扩展及收缩编辑框功能的增减幅度,默认值为50。<br>2) 增加对图片及文字水印的座标位置控制。<br>3) 增加新的右键菜单代替原来的浏览菜单,同时增加右键格式引用及代码样式的功能。<br>4) 右键菜单的粘贴功能支持自动检测并提示清理WORD格式的功能。<br>5) 去掉一些无效的旧属性,清理了一些无用的JS代码。<br>6) 完善了说明帮助的部分说明。<br><br>2007/6/25<br>Version 3.1.5 beta<br><br>Updates:<br>1) 修正在VS2005设计模式中无法动态调整控件高度的BUG。<br>2) 修正height属性无效的BUG。<br>3) 修正CodeHighlighter外挂插件调用图片位置指向不正确的BUG。<br>4) 控件界面的右下角增加了动态扩展收缩编辑框的新功能。<br>5) 更换CodeHighlighter插件为最新的版本,新版本支持更多的语言。<br>6) 将CodeHighlighter插件需要用到的Languages目录移到plugin目录下,以免与DotNetTextBox控件必须目录混淆。<br>7) BIN目录去掉无用的DLL。<br><br>2007/6/24<br>Version 3.1.4 beta<br><br>Updates:<br>1) 修正插入表情图标时出现的BUG。<br>2) 修正控件在非根目录调用的时候在设计模式中会出现控件找不到所需皮肤的BUG。<br>3) 修改web.config里functionfolder和skin的全局设置属性,提高路径的设置易用性。<br>4) 去掉DOC目录及其包括的所有帮助文件,并将这些帮助文件修改完善后编译为"使用帮助.chm"的单一文件。<br><br>2007/6/23<br>Version 3.1.3 beta<br><br>Updates:<br>1) 更换了FLV的播放核心,现在支持即时的自动播放了。<br>2) 更换了自动播放MP3为FLASH核心,现在MP3自动播放可兼容所有浏览。<br>3) 去掉所有插入自动播放文件之后弹出的脚本窗口,提高对IE7.0的易用性。<br>4)播放自动播放文件界面里宽高、音量、循环的属性设置。<br><br>2007/6/21<br>Version 3.1.2 beta<br><br>Updates:<br>1) 修正部分自动播放文件不兼容IE7的BUG。<br>2) 修正在检测自动播放文件格式时javascript代码出现的一些BUG。<br>2) 修正MenuConfig、configFolder属性在VS2005中设置属性值后会自动变为绝对路径的BUG。<br>3)修正在Opera浏览选择字体颜色功能无法取得所选字体原来颜色的BUG。<br>4) 增加对FLV文件自动播放的支持(兼容所有浏览)。<br>5) 默认的自动媒体文件格式增加SWF、WMA、FLV。<br>6) function文件夹增加flv.swf文件(FLV播放核心文件)。<br>7) 更新了所有的多语言资源文件。<br><br>2007/6/18<br>Version 3.1.1 beta<br><br>Updates:<br>1) 修正编辑不支持Opera浏览的BUG,现在已经能完美支持IE5+、Opera、FireFox等主流浏览。<br>2) 修正控件在设计模式时出现找不到config配置文件但运行时却正常的BUG。<br>3)修正控件configFolder属性的一个BUG。<br>4) 修改一处语言文件的翻译。<br>5) 更新文件包括uploadImg.aspx、uploadFile.aspx、table.aspx以及所有的多语言资源文件。<br><br>2007/6/17<br>Version 3.1.0 beta<br><br>Updates:<br>1) 修正在多控件模式下控件部分功能使用不正常的BUG。<br>2) 修正控件使用母版页时FIREFOX浏览无法使用的BUG。<br>3)修正上传页面的一处语言显示BUG。<br>4) 修正当上传索引GIF文件时显示错误信息的BUG。<br>5) 增加上传远程图片到服务的选项,并且远程图片同样支持水印及自动命名等功能。<br>6) 更新文件包括emot.aspx、uploadImg.aspx以及所有的多语言资源文件。<br><br>2007/6/1<br>Version 3.0.9 beta<br><br>Updates:<br>1) web.config中新增configfolder、functionfolder、skin三个必须目录的全局路径设置,以往旧版本如果要在不同级别子目录的页面调用控件都要单独设置控件的configfolder、functionfolder、skin三个目录的路径属性才能正常使用,新版只需要在web.config定义正确的路径设置(详细看web.config中新增的定义),那么这个虚拟目录下所有根目录及子目录的页面调用控件都不需再设置这三个属性的路径,同时也不会像以往版本那样容易引起路径的混乱影响控件正常使用。<br>2) 除新增加的全局设置外,控件也同时保留configfolder、functionfolder、skin三个路径的控件内置属性,并且优先级大于关联的全局设置,比如在web.config的skin全局属性设置为使用default界面,但在调用页面单独设置了skin属性为使用xp界面的话,那么该页面将启用XP界面,如果没有单独设置skin属性,那么就启用全局属性的default界面。<br>3) 控件内置的menuconfig及uploadconfig属性值设置有变,原来menuconfig要默认要设置相对路径如:config/menu/default.config,现在只需设置为defautl.config,即只需指定配置文件的文件名称即可,同样uploadconfig的设置也只需要指定配置文件的文件名称即可(请参考相关例子)。<br>4) DOC目录下增加“控件必须目录的路径设置”说明文件。<br><br>2007/4/12<br>Version 3.0.8 beta<br><br>Updates:<br>1) 修正超过一定时间之后打开上传页面出现读取语言文件目录错误的BUG。<br>2) 修正FireFox浏览下控件打印功能失效的BUG。<br>3) 优化了国际化语言(多语言)模块的代码。<br><br>2007/4/11<br>Version 3.0.7 beta<br><br>Updates:<br>1) 控件添加自适应的国际化语言(多语言)支持,根据检测客户端浏览语言来自动选择最合适的语言界面,如无匹配语言则默认显示英文界面(提供简繁英三种界面语言,用户可自行制作其它国家的语言文件)。<br>2) 修正控件检测浏览版本的BUG,现在已经能支持所有gecko内核的浏览。<br>3) 因自适应多语言的需要,修改了skin/default/及skin/xp下emot.htm为emot.aspx,同时img目录下的edit.gif、source.gif、preview.gif修改为edit_xxx.gif、source_xxx.gif、preview_xxx.gif,其中XXX为相应的语言代码简称,请从旧版本升级的用户注意。<br>4) doc/目录下新增“制作语言文件.txt”的说明文件。<br>5) 感谢热心网友King(qq:153920708)精心翻译英文版本的语言文件。<br><br>2007/4/5<br>Version 3.0.6 beta<br><br>Updates:<br>1) 上传功能的文件列表改为按文件创建日期排序,方便上传文件比较多的时候找到文件插入。<br>2) 优化了控件在IE浏览下的脚本性能。<br><br>2007/4/2<br>Version 3.0.5 beta<br><br>Updates:<br>1) 修正上传功能修改路径时出现地址指向错误的BUG。<br>2) 修正上传自动播放功能插入地址错误的BUG。<br>3) 修正Firefox下字体更改的一处BUG。<br>4) 上传配置增加watermarkOption参数,用以开启上传图片时供用户控制的水印选项。<br>5) 上传图片界面增加显示当前水印的开启状态。<br><br>2007/4/2<br>Version 3.0.4 beta<br><br>Updates:<br>1) 重写控件大部分的客户端脚本,经测试已经能在FIREFOX浏览下正常使用。<br>2) 根据用户建议,将所有颜色选择的模态窗口改为非弹出式的DIV仿OFFICE XP颜色选择框。<br>3) 修正之前版本的已知BUG。<br>4) 修正部分说明文件。<br><br>2007/1/29<br>Version 3.0.3 beta<br><br>Updates:<br>1) 修正母版页中不能取TEXT值的BUG。<br>2) 修正FIREFOX中不能在线编辑的问题,但大部分功能仍不能正常工作,将在下一版本中修正。<br>3) 优化部分客户端代码。<br>4) 更正及增加部分说明文件。<br><br><br>2007/1/18<br>Version 3.0.2 beta<br><br>Updates:<br>1) 修正不支持XHTML的BUG,现在无需删除页面xhtml定义也能正常显示控件。<br>2) 修正IE6浏览打开上传功能等窗口界面时显示不完整的BUG。<br>3) 改进控件height属性,使其与toolbarheight、editheight、statusheight的高度相关联。<br><br><br>2007/1/18<br>Version 3.0.1 beta<br><br>Updates:<br>1) 重新编写控件的所有后台代码,使用基于Asp.Net2.0结构开发的全新控件结构,完全修正旧架构不佳的性能及大部分已知BUG及兼容问题。<br>2) 重新编写控件大部分客户端代码,实现更多功能并且修正部分已知BUG。<br>3) 更新大部分功能模块页面,修正页面BUG。<br>4) 更新大部分控件的属性值及设置。<br>5) 更新控件全部的演示例子。<br>6) 移除字体、字体大小、图标效果等属性值,改由相应skin目录下toolbar.css及editor.css文件控制显示效果。<br>7) 增加更强大的上传管理及控制的功能模块。<br>8) 增加更强大的插入表格功能模块。<br>9) 增加菜单功能模块配置功能,通过配置config文件可随心所欲地排列及增减各种控件内置功能模块。<br>10) 增加上传权限配置功能,通过配置config文件可具体控制不同用户的上传权限。<br>11) 增加外接插件功能(plugin)及相关参数,控件演示中已包括了实现代码高亮功能和执行命令形式的外接插件功能。<br>12) 增加粘贴时自动判断内容是否带word格式并提示是否清除word格式的功能。
1.本书1~16章所附代码的运行环境 操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:Microsoft Visual Studio 2005 数据库:SQL Server 2005 Web服务:IIS 5.1及以上版本 2.本书17~27章所附代码的运行环境 数据库采用MySQL 4.0及以上版本 服务采用Tomcat 5.0 及以上版本 开发工具采用Eclipse 3.1以上版本 3.本书所附光盘范例 第1章(/C01/) JsWeb 传统的JavaScript模式实现刷新 IframeWeb 基于框架的不刷新模式 AjaxWeb 基于Ajax的Web 2.0模式的刷新模式 AsyncAjaxSample Ajax异步调用的完整示例 第2章(/C02/) 2.1.htm 3段JS使用形式 2.2.htm 不同浏览使用“<noscript></noscript>” 2.3.htm 调用单独的JS文件 2.3.js 一个单独的JS测试文件 2.4.htm 完成层的换肤功能 2.5.htm 用于调试JS程序的测试代码 第3章(/C03/) 3.1.htm 判断浏览类型的例子 3.2.htm 演示undefinded如何与null进行比较 3.3.htm 演示同名局部变量和全局变量的调用情况 3.4htm 引用数值型数据的例子 3.5.htm 数组使用的小例子 3.6.htm 一个字符串型转换为逻辑型数据的例子 3.7.htm 使用toLowerCase()方法进行转换的例子 3.8.htm 通过字符串类型来调用toLowerCase()方法 3.9.htm 对数字进行了复制、传递和比较 3.10.htm 复制、传递和比较一个对象 3.11.htm 对字符串进行比较 第4章(/C04/) 4.1.htm 简单表达式的例子 4.2.htm 两个字符串进行加操作的实例 4.3.htm 减号的取反功能 4.4.htm 变量赋值的例子 4.5.htm 把表达式赋值给一个变量的方法 4.6.htm 演示了两个符号的区别 4.7.htm “!==”和“===”的演示 4.8.htm 逗号表达式的连接应用 4.9.htm 对表达式进行“Void”运算 4.10.htm typeof运算符的使用 4.11.htm 创建和删除对象的例子 4.12.htm 用delete移除了myArry的第二个元素 4.13.htm 用“()”改变运算优先级的例子 4.14.htm 一个运算符结合性的例子 第5章(/C05/) 5.1.htm 一个最简单的条件语句 5.2.htm 检查变量x是否赋初值 5.3.htm if..else的使用情况 5.4.htm 一个用else进行更多选择的例子 5.5.htm 一个if语句嵌套的例子 5.6.htm 嵌套语句的另一种应用 5.7.htm 一个switch语句的应用 5.8.htm 利用while循环显示了一个6行的表格 5.9.htm while语句和do-while语句的循环实例 5.10.htm 显示了一个简易的九九乘法表 5.11.htm 用无限循环结构对上面乘法表的改写 5.12.htm 一个显示15以内奇数的程序 5.13.htm 一个函数定义的简单示例 5.14.htm 利用一个函数来显示对登录用户的问候 5.15.htm 定义了一个求阶乘的函数 5.16.htm JavaScript实现阶乘函数 5.17.htm 全局变量和局部变量的区别 5.18.htm 变量实例 5.19.htm 在函数内部使用arguments 5.20.htm 创建并使用动态函数的例子 5.21.htm URI编码处理函数的例子 5.22.htm 数值处理函数的例子 5.23.htm 一个isNaN方法应用的例子 第6章(/C06/) 6.1.htm 简单对象的使用 6.2.htm 如何使用构造函数为对象实例增加属性和方法 6.3.htm 在网页上显示中文形式的日期 6.4.htm 将一个小数四舍五入到指定位数 6.5.htm 以从大到小冒泡排序法为例 6.6.htm 使用Navigator的属性进行浏览检测 6.7.htm 列出了一些可能的浏览类型 6.8.htm Screen对象的使用 6.9.htm 用来检测浏览窗口的实际大小 6.10.htm 可以设置文字大小随窗口大小而改变 6.11.htm 客户端性能检测 6.12.htm 个浏览按键模拟的示例 第7章(/C07/) 7.1.htm 演示了编码和译码使用的方法 7.2.htm 演示了exec方法的用法 7.3.htm 对RegExp对象的综合举例 7.4.htm 演示了字符匹配的使用情况 7.5.htm 正则匹配举例 7.6.htm 用 ^ 匹配目标字符串的开始位置 7.7.htm 用 $ 匹配目标字符串的结尾位置 7.8.htm 用 \b 匹配一个字边界 第8章(/C08/) 8.1.htm XHTML中的事件绑定 8.2.htm 一个表单按钮的click处理 8.3.htm 测试事件处理的作用域 8.4.htm 绑定方法的使用 8.5.htm 使用一段文本来接收按键点击 8.6.htm 绑定处理至对象 8.7.htm 网页中禁止鼠标右键的操作 第9章(/C09/) 9.1.htm 实现了在网页上显示当前时间的功能 9.2.htm 一个显示当前日期和星期的完整示例 9.3.htm 同时显示日期、时间和星期 9.4.htm 一个分时段问候的例子 9.5.htm 实现了显示不同地区的时间代码 9.6.htm 实现悬浮时钟效果的完整代码 9.7.htm 计算的完整程序 9.8.htm 可以进行四则混合运算的计算 9.9.htm 打字效果 9.10.htm 实现图片的随机选择 9.11.htm 一个基本下拉菜单 9.12.htm 下拉菜单 9.13.htm 实现渐显效果的下拉菜单的完整代码 9.14.htm 模拟系统菜单 9.15.htm 图片显示窗口的完整代码 9.16.htm 远程控制窗口 9.17.htm 实现菜单滑动效果的完整代码 9.18.htm 左键弹出式菜单效果的完整代码 9.19.htm 实现浮动菜单效果的完整代码 9.20.htm 实现树型导航菜单的完整代码 第10章(/C10/) ReturnText Ajax返回字符串数据 ReturnXML Ajax读取XML类型数据 PostUser Ajax提交数据更新服务内容 xmlhttpWeather 获取天气网站的内容 第11章(/C11/) 11.1.htm 采用标准的DOM方法创建一个表格并将其插入到页面中 11.2.htm 添加单元格 11.3.htm 删除表格的第一行和第一列 11.4.htm 实现单元格行顺序的改变 dynamicTable 完整的Ajax调用DOM的实例 第12章(/C12/) 12.1.htm 一个在元素内定义CSS的范例 12.2.htm 一个在Head元素内定义CSS的范例 12.3.htm 引用CSS文件的页面 12.4.htm 通过下拉列表框来改变<div>容的背景色 12.5.htm 实演示如何创建CSS文件 12.6.htm 演示一个在网页中应用投影的范例 12.7.htm 使用Ajax动态改变局部元素样式 CSSmenu 使用Ajax+CSS实现动态菜单效果 第13章(/C13/) 13.1.xml 一个简单的xml文件 13.1.xsl 使用XSLT将XML转换为HTML 13.2.xml 一个雇员列表xml文件 13.2.xsl 一个XSL样式表的例子 13.3.htm Internet Explorer 浏览中XML的应用 13.4.htm 直接对XML文档进行添加、删除和显示数据的操作 13.5.js Mozilla 浏览中xml的应用 13.5.xml 简单的xml文件 13.6.htm 格式化输出xml文件 13.7.htm 一个添加/删除记录的例子 第14章(/C14/) MenuSample 级联菜单实例 PageSample 实现Ajax翻页效果 数据库备份 本章实例所需要的数据库 第15章(/C15/) AjaxCallerSchedul 使用AjaxCaller实现简单的定时任务 RicoColor 使用Open Rico实现动态调色板 RicoDrag 使用Open Rico实现可拖拽的层 WebSitetestdojo 使用dojo组件实现卷帘效果的div隐藏 第16章(/C16/) 留言板源代码 所有留言板实例的源代码 数据库备份 留言板数据所需要的数据库 第17章(/ch17) 程序描述:本章介绍开发AJAX的开源框架GWT(Google Web Toolkit) 。最典型的Google Maps和Gmail等Google服务也正是基于此框架开发的。读者将能够快速掌握GWT的各种开发所涉及到的内容。 /firstgwt/FirstGWT.html 第一个GWT示例 /calculator/TexCalculator.html 个税计算 第18章(/ch18) 程序描述:本章将介绍 GWT应用中高级应用的部分,包括各中组件和布局、如何发送XMLHttpRequest请求,以及如何解决浏览历史记录问题等等,同时读者还将详细的了解RPC应用的开发过程。 /xmlsample/AjaxSample.html 读取XML文件 /history/HistoryExample.html 保存历史记录 /rpc/RPCExample.html RPC调用 第19章(/ch19) 程序描述:本章模仿Google ig,使用Ajax技术实现一个个性化主页系统。通过拖拽方式设置主页,当完成拖拽窗口时,自动保存布局,使用户可以随时根据喜好来设置布局。 /login.jsp 登录页面 /homepage.jsp 自定义主页 /all.css CSS样式表文件 /js JavaScript脚本文件 /graphics 系统使用的图片文件夹 第20章(/ch20) 程序描述:本章使用Prototype封装的Ajax对象实现上传文件时显示进度条的功能。当上传文件时,客户端同时显示文件上传的进度,从而及时了解文件传送情况。 /test.html 上传文件 /periodcal.jsp 上传文件后台处理页面 / prototype.js prototype框架类库文件 第21章(/ch21) 程序描述:本章将实现通过滑块来显示分页数据的功能。传统的分页方式,多数是通过单击按钮的方式来显示分页的。利用Ajax可以通过使用滑块的滑动来选择所显示的分页,这种拖拽的方式有很好的用户体验。 /test.html 滑动显示分页页面 /js JavaScript脚本文件 /img 系统使用的图片文件夹 第22章(/ch22) 程序描述:本章将利用开源框架Prototype,讲述如何在网页中实现Windows关机效果,使读者对Prototype框架有进一步的认识。 /lightbox.html 仿Window关机效果 /lightbox.js JavaScript脚本文件 第23章(/ch23) 程序描述:本章将使用Ajax技术实现动态获取数据的树状菜单。当展开菜单时,自动向服务发送请求,查询该菜单下的子菜单,并在客户端显示子菜单,而无需刷新整个页面。 /simpleTree.jsp 简单树 /staticTree.jsp 静态树 /dynamicTree.jsp 动态树 /css/tree.css CSS样式表文件 /js/all.js JavaScript脚本文件 /images 图片文件 第24章(/ch24) 程序描述:本章将使用Ajax技术实现无刷新即可浏览RSS的阅读。添加一个RSS地址时,自动保存到数据库。打开阅读RSS时,自动获取最新的RSS内容,而无需刷新页面。 /RSSReader.jsp RSS阅读 /rss.js JavaScript脚本文件 第25章(/ch25) 程序描述:本章将仿照Google Suggest,使用Ajax技术实现动态获取搜索提示的功能。当输入搜索关键字时,自动向服务发送请求,查询相关的关键字,并及时提示用户可输入的关键字。 /suggest.html 搜索提示 /ajax_search.js JavaScript脚本文件 第26章(/ch26) 程序描述:本章将使用Ajax技术实现无刷新即可浏览图片的相册。浏览图片时,自动向服务发送请求,查询该类别下的照片,并显示到客户端。用户也可以根据喜好随时改变相册的风格。浏览相册的整个过程无需刷新页面。 / show.jsp 图片浏览 /all.js JavaScript脚本文件 /new.css CSS样式表文件 /styles.css CSS样式表文件 /images 图片文件 第27章(/ch27) 程序描述:本章将使用Ajax技术实现聊天室程序。使用Ajax来动态获取聊天记录,可以避免因屏幕不断刷新而出现的闪动现象。另外,使用Ajax可以减少服务端的负荷,对这种客户端与服务端通信量极大的程序是非常有意义的。对用户来讲,有很好地用户体验。 /welcome.jsp 聊天室欢迎页面 /room.jsp 聊天室页面 /ajax_chat.js JavaScript脚本文件 /styles.css CSS样式表文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值