web前端的渐进增强式开发模型
渐进增强是前端开发的根本基础。从根本的层面上讲,它可以将HTML,CSS,JavaScript这三者的功能分离开来,这能让当前的项目开一个好头。我们在创建项目的开始要将这三者分开,它们对应的称呼是结构层、表现层、行为层。这种方式可以原封不动地套用在网页设计之外的其他领域中,无论怎么说,他都是一种自底向上或由内而外的模型,我们应该以此来构建网站。
渐进增强是一种分层设计的网页开发方式,其重点是强调内容,用户和易访问性。模型的目的是让这三层自上而下依赖:javascript依赖CSS,CSS依赖HTML,这样做的好处是自上而下的一除每一层,都不会损失网站中最重要的内容,也就是内容。
只要把这三层隔开,让网站在只有HTML代码的情况下运行,同时在逐层添加CSS美化页面,以javascript程序平滑的控制浏览器的行为,那么你就能确保用户可以访问到网站中的内容。
1 结构层
2 <body>
3 <headerid="header">
4 <h1><ahref="/">这是一个主页</a></h1>
5 </header>
6 <navid="nav">
7 <ul>
8 <li><ahref="/">页面一</a></li>
9 <li><ahref="/">页面二</a></li>
10 <li><ahref="/">页面三</a></li>
11 <li><ahref="/">页面四</a></li>
12 </ul>
13 </nav>
14 <articleid="main">
15 <!--网页主体/-->
16 <buttonid="about"type="submit"></button>
17 </article>
18 <footerid="footer">
19 <p>2006版权所有</p>
20 </footer>
21 </body>
1 表现层
2 #nav{
3 background-color:#201F1F;
4 padding:10px;
5 overflow:hidden;
6 }
7 #navul{
8 list-style:none;
9 margin:0;
10 padding:0;
11 }
12 #navli{
13 float:left;
14 }
15 #navlia{
16 padding:010px;
17 color:#03a9f4;
18 }
1 行为层
2 function doTheThing(){
3 alert("这是一则弹窗消息");
4 }
5
6 Var elem=document.getElementById("about");
7 elem.addEventListener(click,doTheThing,false);
可以发现,当移去(浏览器出错)css或javascript外部文件时,用户仍能访问到网页中的主体内容,只不过不漂亮而已。这种更加符合开发者的思维模式,能精准的找到所需的信息,可以更好的维护团队的项目,间接地改善了开发流程。
另外,在性能方面,如果CSS文件和javascript文件是通过外部文件(务必使用外链)的方式链接进来的,那么每个访问者的浏览器可以单独缓存它们,也就是说,只要用户打开一次过本网站的一个网页,在浏览其他页面的同时就不再下载这些资源了,这样也以减少页面的加载时间,并且将HTTP请求数量降至最低。
这是我认知的一些简显得前端知识,希望对一些朋友能有所帮助!
web前端的渐进增强式开发模型的更多相关文章
- 最受Web前端开发者欢迎的五大开发工具
工其事,必利于器.好的开发工具毋容置疑会帮助Web前端开发者事半功倍,51CTO在上期主办的技术沙龙<大型网站PHP开发之道> 对现场的百余位Web开发者做了问卷调查,后经51CTO调研小 ...
- Web前端框架与移动应用开发第八章
Web前端框架与移动应用开发:制作58招聘专题页 1.html代码: <!DOCTYPE html><html><head> <meta charset=&q ...
- Web设计思想——渐进增强
最近在拜读一本Web体验相关的书<渐进增强--跨平台用户体验设计 >,阅读后做些总结,消化一下书中的精髓. 在阅读本文前,可以先思考下面几个问题. 1. 浏览网页的目的是什么? 2. 浏览 ...
- Web前端工程师需要注意的开发规范有哪些?
从事web前端开发工作我们就需要了解web前端开发的规范,这样才能保证高效快速的完成工作,本篇就和大家分享一下web前端开发工程师需要注意的web前端开发规范有哪些,希望对小伙伴们有所帮助. web前 ...
- 【从0到1学Web前端】CSS定位问题一(盒模型,浮动,BFC) 分类: HTML+CSS 2015-05-27 22:24 813人阅读 评论(1) 收藏
引子: 在谈到css定位问题的时候先来看一个小问题: 已知宽度(假如:100px)div框,水平居中,左右两百年的分别使用div框填充.且左右div自适应. 效果如下图: 这个问题的难点主要是浏览器宽 ...
- Web前端面试指导(九):盒子模型你是怎么理解的?
问题分析 这道题问得比较宽泛,一定要找准切入点,如果切入点找不准,很容易乱答,甚至答偏,所以找准切入点是非常的重要的. 解答思路 1)盒子模型有两种,W3C和IE盒子模型 (1)W3C定义的盒子模型包 ...
- web前端-移动端响应式与自适应
一. 在HTML的头部加入meta标签 在HTML的头部,也就是head标签中增加meta标签,告诉浏览器网页宽度等于设备屏幕宽度,且不进行缩放,代码如下: <meta name="v ...
- Web前端框架与移动应用开发第七章:二
3.练习3:抽奖大转盘 注意事项:需要使用Zepto.js,区别于zepto.min.js 实现效果:转盘转动抽奖 html <!DOCTYPE html><html>< ...
- Web前端框架与移动应用开发第七章
1.练习1:焦点图切换 html: <!doctype html><html><head> <meta charset="utf-8" / ...
随机推荐
- .NET初学者推荐课程 asp.net错误代码大全
错误 CS0001 编译器内部错误错误 CS0003 内存溢出错误 CS0004 提升为错误的警告错误 CS0005 编译器选项后应跟正确的参数错误 CS0006 找不到动态链接的元数据文件错误 CS ...
- SVN 忽略文件但不删除文件
SVN忽略一些不必要的文件但不删除 如果svn仓库中有一些不希望被别人提交的文件 该如何忽略掉对这个文件的更改但又不删除这个文件呢? 在找了一堆解决方案后得出了如下结论 去除要被忽略文件的版本控制 基 ...
- sqlserver工作日常使用sql--持续完善中
select STUFF('232',1,1,'')结果为32,从第一个字符开始去掉一个字符,及去掉 select CONCAT('-','asd')结果为-asd,连接两个字符串 select co ...
- Java编程思想读书笔记之内部类
现在是够懒得了,放假的时候就想把这篇笔记写出来,一直拖到现在,最近在读<Java编程思想>,我想会做不止这一篇笔记,因为之前面试的时候总会问道一些内部类的问题,那这本书的笔记就从内部类开始 ...
- Css 学习——left与offsetLeft的区别
1. 首先一个标签元素的left属性是一个string类型,而offsetLeft是一个numberle类型. 求证: <script> window.onload = function( ...
- GridView总结二:GridView自带编辑删除更新
GridView自带编辑删除更新逻辑很简单:操作完,重新绑定.总结总结,防止忘记... 效果图: 前台代码: <%@ Page Language="C#" AutoEvent ...
- C++非类型模板参数
对于函数模板与类模板,模板参数并不局限于类型,普通值也可以作为模板参数.在基于类型参数的模板中,你定义了一些具体的细节来加以确定代码,直到代码被调用时这些细节才被真正的确定.但是在这里,我们面对的是这 ...
- CoreAnimation-05-CABasicAnimation
概述 简介 CABasicAnimation是抽象类CAPropertyAnimation的子类,可以直接使用 CABasicAnimation又称基本动画,从fromValue到toValue按照指 ...
- Android平台二维码之生成,扫描 & 识别
1.二维码的前世今生 “二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的:在代码编制上巧妙地利 ...
- [eclipse]改项目名称后tomcat连接问题解决方法
背景:在我们使用eclipse进行项目开发时,有时候会需要修改项目名称,当改动项目名称后发现tomcat启动访问出现问题,使用新的项目名称不可行,使用旧的项目名称却可以.修改web.xml里面的dis ...