前言
这应该是我写关于Web前端一些概念性的东西的最后一篇,为了分享一些自己的想法跟理解,一起交流心得,并且希望能帮助到一些人进入Web前端。为了避免盒子的概念太奇怪,在这声明一下:盒子就是页面切分成一小块一小块的元素。
让盒子动起来
前面几篇文章已经介绍了,我们可以通过为页面量身定制一套装饰,使得页面的摆放跟设计图一摸一样,高保真地还原设计图。
不满足现状的人们要继续朝更高难度的发展,我们得想办法让页面上这些“盒子”跟我们交流。
于是后来的发展中就出现了Javascript(JS)。
再次用俗一点的话来解释它的话:使用它,我们可以任意改变页面上盒子的大小,例如宽度,边距等等;我们可以让盒子从页面上消失、隐藏、移动;我们可以监控用户是不是点击了页面上的盒子并作出响应或者浏览器是不是已经把盒子摆放好了;我们也可以知道现在页面上有多少个盒子了;
细心的人应该注意到,上边说的全都是针对盒子的。嗯,JS的重要的功能就是用来操作盒子的,也就是DOM操作,至于什么是DOM,还是自己谷歌/百度吧,或许你可以认为DOM就是这一大堆盒子。
不会JS就只能操作DOM吧?
当然不是,Javascript是一种脚本语言,是浏览器的解释器解析JS来进行逻辑控制、DOM操作等等的,但是在Web前端的工作里边,我们大多时候使用Javascript都是DOM操作。
JS With浏览器们
回到前面一个话题,我们说过了大家都在用各种各样的浏览器,每个厂商生产出来的东西对CSS理解是有差异的,同样,它们对JS的认识理解也是有很多不一样的地方。
有时候,我用我常用的火狐打开一个网站,然后发现它上边一团糟的时候,我就会在这头一边骂娘一边打开IE去访问它。
这些网站往往覆盖于那些不负责任、不会技术、不懂用户感受的公司/机构里边:
zf、银行(尤其是网银)、学校某某系统……
真的让人觉得他们很业余并且往往这些系统是最贵的,我想原因,大家都懂。
既然浏览器对JS解析不一致,我们得想办法让它一致起来,使得我们在进行开发Web应用的时候不用浪费一大堆时间去考虑浏览器的兼容问题(不过这个问题是必须考虑的,更多的是放在测试阶段吧)。
JS框架
什么是框架!?打个比方吧,JS就是一堆木头,我们可以使用木头来做很多事情吧,例如我们可以用它来雕刻、烧火、做把木剑玩玩也是可以的。那你想想,我每次都给你一堆木头,叫你雕刻一堆印章,这时候你会很想说:好惨,我得一直做重复的工作来完成这项任务,我要拿着刻刀不停地在这一堆形状各异的木头中制作一个摸样的印章。
这时候要是有个人来跟你说:我有个机器,我可以帮助你先预处理一下这堆木头。例如我可以把木头先处理成形状一样的圆柱体,然后你只需要在这个圆柱体下边刻上你想要刻的文字,你很快就能完成这项任务了。
于是你感动到鼻涕泪流。
这个机器就相当于前面所提的框架,我们可以用它来预处理一下JS脚本,使得我们不关心JS各种形状不一的东西(浏览器解析不一致的东西)获得一样的结果,然后只要对结果稍微处理一下就能很快达到目的。
无疑,它帮助我们完成快速开发,同时也保证了我们开发的应用有很好的结构,很好的扩展性。
当然,要记住一点,任何事情有利有弊。
框架首先加重了我们的一些负担:
- 我们得先学习怎么让这个机器工作起来;
- 你的应用到互联网的各个角落的时候必须都扛着这个机器去工作;
- 机器坏了或者崩溃了,谁来为它产生的后果买单?
在JS里边,有很多很好的框架,最出名的当然是jQuery,还有YUI、Prototype、Dojo等等。
也许你会为选取哪个框架而发愁。
但是个人看法,一开始的JS学习不应该使用框架,更应该自己亲自去体会一下各个浏览器对JS有那些解析不一致的地方,除非你急着要做个应用没时间花很多精力在处理浏览器兼容性方面。要相信有付出一定会有回报,偷懒只会带来一些弊端。
说了那么多,貌似学习JS考虑浏览器兼容性很可怕的样子,其实在很多不兼容的处理都是在一些DOM操作上而已,对于普通的逻辑控制,语法解析基本是不会有差别的,SO无须那么畏惧。刚刚说那么多,只是为了要强调,一定要做好浏览器兼容性!不要让千千万万个我在这头访问你的应用时骂娘。
辅助工具
正所谓“工欲善其事必先利其器”,最后推荐一下一些工具,我采用的组合是:
- 浏览器:IE Tester(用于测试IE6,7,8)、火狐、谷歌、Opera、Safari;
- 辅助处理图片工具PhotoShop;
- 调试工具:火狐底下的Firebug,Fiddler,HTTPWacth;
- 文本编辑器:Notepad++;
- 双显示器
工具的具体使用方式在网上很容易就找到,不废篇幅跟时间了。个人采用的工具以及方法有限,还望多推荐跟指正。
本篇总结
希望这几天写的几篇能够帮助到一些人吧,不想贴一些网上一大堆无聊的糟糕代码跟术语,因为个人认为有些东西需要联系实际的例子来引出概念会远远比说个术语更让人接受。
当有人跑来看你的文章,听你的演讲,然后没有收获,我就觉得这样的效果是非常糟糕的,我们会经常在学校讨论这个这个老师不会讲课之类之类的吗?我很欣赏那些善于演讲善于写作的人,听他们的演讲跟看他们的文章对听者读者是一种享受。
接下来会结合一些实际的例子来写一些关于技术细节的东西,当然我会继续保持这种风格,看看能不能帮助别人更好的理解,还望大牛们多多交流指正。
分享到:
相关推荐
3. **安全性**:了解浏览器如何处理安全问题,如防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。 4. **性能调优**:查看代码中的性能关键点,学习如何提高浏览器启动速度、页面加载速度等。 在提供的压缩包文件中...
2. **多平台兼容性**:源码需要处理不同直播平台的数据格式和接口规范,实现统一的调用和展示方式。这需要对各平台的API有深入理解和良好的适配能力。 3. **前端界面设计**:用户界面的设计直接影响用户体验。一个...
6. **Shadow effects**:内阴影(`inset`)、文字阴影(`text-shadow`)和盒子阴影(`box-shadow`)在旧版浏览器中可能需要使用私有前缀。 7. **CSS Variables**:CSS自定义属性(变量)在Firefox 31+、Chrome 36+、...
虽然上面的代码在大多数现代浏览器中都能很好地工作,但在处理IE6等老版本浏览器时可能会出现问题。这是因为IE6对于CSS的支持并不完善,特别是在处理`overflow`属性方面存在一定的局限性。 - **对于IE6**:由于IE6...
5. **跨端适配**:考虑不同浏览器之间的兼容性问题,如使用autoprefixer处理CSS前缀。 6. **Service Worker**:离线存储、推送通知等功能,提高Web应用的离线可用性和性能。 标签“源码”和“工具”暗示可能涉及到...
进入后台的操作需要通过电脑或手机连接传屏盒子的热点,然后在浏览器内输入管理后台地址。首次登陆后台时,需要设置密码,如果忘记密码可以通过特定步骤进行重置。 后台设置部分涉及多个方面的详细配置,包括有线...
在技术实现上,Android平台上的媒体盒子应用一般会包含两个关键组件:**网页浏览器组件(如WebView)**和**媒体播放器组件(如VideoView和MediaPlayer)**。网页浏览器组件用于展示和交互媒体资源的网页,而媒体...
例如,用户可以通过浏览器操作录音,而服务器端的Node.js程序则负责与录音盒子通信,执行相应的命令。 在实际的开发过程中,你可能需要了解以下知识点: 1. 音频编码与解码:理解不同的音频编码格式,如PCM、AAC、...
《CSS-浏览器兼容实战》一书深入探讨了CSS在不同浏览器中的兼容性问题及其解决方案。...在网页设计中,CSS起着至关重要的作用,...通过学习这本书,开发者不仅可以提升CSS技能,还能掌握处理浏览器兼容性问题的实战经验。
总之,【聚合直播盒子H5网页源码】是一个涵盖多方面技术的项目,包括后端开发、前端技术、移动端适配、流媒体处理、数据库管理、安全防护以及软件测试与部署等多个环节,对开发者的技术全面性和实践经验都有较高要求...
**硬件配置方面**:小米盒子通常配备更先进的处理器和更大的内存空间,这使得其在处理复杂任务时更加流畅。 **内容资源方面**:两者都拥有丰富的在线资源库,但具体资源种类和数量可能会有所不同。例如,乐视盒子...
2. 良好的浏览器兼容性:jQuery库对主流浏览器有很好的支持。 3. 易于定制:通过修改HTML、CSS和jQuery代码,可以轻松调整样式和交互行为。 4. 减轻服务器负担:通过前端处理,减少了服务器的图片加载压力。 总结来...
在网页设计中,导航菜单是不可或缺的部分,它帮助用户轻松地在网站的各个部分之间进行切换。"jQuery盒子菜单导航"是...在实际项目中,你可能还需要考虑浏览器兼容性问题,确保你的菜单在各种主流浏览器中都能正常工作。
本文主要聚焦于CSS的跨浏览器兼容性,特别是CSS盒子模型、块级和内联元素的区别,以及浮动和清除属性的应用。 首先,理解CSS盒子模型是实现跨浏览器兼容性的基础。盒子模型描述了元素占用空间的方式,包括元素的...
在这个特效中,SVG Logo在动画结束后出现,因为SVG具有良好的浏览器兼容性和清晰度,无论放大多少倍都能保持锐利,非常适合这种需要动态展示的场景。 实现这个特效可能需要以下步骤: 1. 使用HTML创建可点击的盒子...
- **问题描述**:在处理盒子模型时,Firefox和IE对`width`和`padding`的计算方式不同,可能会导致2px的差异。 - **解决方法**:推荐使用`box-sizing:border-box`来统一盒模型的计算方式。 ##### 6. IE5和IE6的BOX...
为了适应不同大小的屏幕和浏览器,你可能还需要对盒子大小进行动态调整。这可以通过JavaScript获取窗口大小,然后根据这些尺寸计算盒子的比例,调整CSS3属性的值来实现。 总结一下,这个"jQueryCSS3 3D旋转盒子动画...
5. **动画帧请求**:更高级的动画效果可能使用`requestAnimationFrame()`,它可以在浏览器下一次重绘之前执行指定的回调函数,这样可以确保动画的流畅性,避免不必要的性能消耗。 6. **响应式设计**:考虑到不同...
开发者需要编写代码来控制元素的位置、大小、透明度等属性,同时也要考虑到不同设备和浏览器的兼容性问题。 在实际应用中,可能还需要结合响应式设计,确保移动盒子效果在桌面电脑、平板电脑以及各种尺寸的手机上都...