IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:HTML5

共 113 篇相关文章

IT 累计浏览 19

浅谈 GUI 应用开发

本文基于作者从Web前端切入GUI开发的实践经验,提出了一套关注技术核心的思维框架。在状态管理上,强调抓住引起UI变化的核心状态,并利用枚举等手段管理状态流转,对于复杂应用则需借助组件化拆分或状态管理库来分而治之。生命周期视角下,将应用视为流程集合,关注流程的触发、运转与异常终止,强调流程设计的清晰性及通过测试保障其健壮性。交互模式方面,对比了Web App的单画布模型与Mobile App的堆栈模型,需针对性处理History/API导航及多屏通信等差异。屏幕适配主张避免简单缩放,提倡使用px单位配合弹性布局与媒体查询实现稳健设计。研发流程则倡导基于“流程”或“用户故事流”进行协作开发,明确了从技术评估、MVP开发到产品化打磨的路线图,并强调测试建设、同理心与抓大放小的执行原则。全文为从Web转向更广泛GUI应用开发提供了架构与工程层面的实践参考。

IT 累计浏览 2,731

了解JS中的全局对象window.self和全局作用域self

这篇文章从初学者常有的疑问切入:JS全局对象window、window.self和直接使用self这几个写法到底有什么区别?文章首先澄清,在普通的Web页面上下文里,它们确实是等价的,仅凭这点self似乎可有可无。 真正的价值区分出现在HTML5时代。随着Service Workers和Web Workers的兴起,JavaScript需要在独立于浏览器主窗口的后台线程中运行,而Worker环境没有“窗口”的概念,因此不存在window对象。此时,self就成为了指代全局作用域的唯一关键。文章通过一个Service Worker注册的实例,清晰地展示了在Worker脚本中,如何通过`self.addEventListener`来监听事件,这正是self的核心应用场景。 简而言之,这篇文章厘清了self从“冗余别名”到“Worker环境基石”的角色转变,帮助开发者理解在不同的运行上下文中应该选择哪个全局引用。对于涉及前端性能优化、离线应用或后台数据处理的开发者来说,这是理解现代Web API一个不可或缺的细节。

IT 累计浏览 1,410

Web前端文件处理

这篇文章探讨了如何在Web前端高效、友好地处理用户上传的文件。作者从一个常见痛点出发:传统上在服务器端限制文件大小,会浪费带宽并增加服务器负担。理想的方案是在客户端就进行预处理。 文章首先回溯了HTML4时代的无奈之举——利用IE浏览器特定的`fileSize`属性进行检测,但这种方法受安全策略限制且已过时。真正的突破来自HTML5的File API,它让前端获得了强大的文件操作能力。通过在``中添加`multiple`属性,即可支持多文件上传。借助`FileList`接口,开发者能轻松获取文件名、大小等信息。 更进一步,文章展示了如何利用`FileReader`对象实现本地图片预览,甚至能结合Canvas API实现简单的图片裁剪功能。这些能力意味着,诸如文件大小校验、格式过滤、图片压缩和预览等操作,都可以在数据发送到服务器之前完成,极大地优化了用户体验并减轻了后端压力。整体上,这是一篇从具体问题入手,清晰梳理技术演进并给出实用前端解决方案的教程。

IT 累计浏览 5,748

给HTML初学者的30条最佳实践

这篇来自Nettuts+的文章专为刚踏入Web开发领域的HTML初学者准备,作者从实际编码中最易犯错的细节出发,系统梳理了30条旨在培养良好习惯的编码实践。 文章并非空谈理论,而是从“保持标签闭合”这类基础却至关重要的习惯讲起,直指新手常犯的省略标签、忽略包裹容器等错误。随后,它明确了声明正确DOCTYPE的必要性,并强烈建议将样式与结构分离——坚决使用外部CSS,杜绝内联样式。对于提升页面性能,文章给出了具体方案:将CSS链接置于``以加快渲染,而将JavaScript文件放在``标签前以避免阻塞页面呈现。作者甚至告诫“现在不是1996年了”,应摒弃内联JS的陈旧写法。贯穿全文的是“边开发,边验证”的理念,强调利用验证工具辅助编写标准、健壮的代码。 这些实践看似简单,却是构建可维护、高性能网页的基石。对于经验尚浅的开发者,遵循这些准则能有效规避早期养成的坏习惯,为后续学习更复杂的技术打下扎实、规范的基础。

IT 累计浏览 1,672

一些有用的HTML5 pattern

这篇讲的是手机端表单输入体验的一个具体痛点。作者从实际开发中遇到数字键盘显示多余的字母出发,对比了 HTML5 中 `type="tel"` 和 `type="number"` 的优劣:前者键盘统一但字母碍眼,后者在 Android 上是纯数字键盘,但在 iOS 上体验不佳,且旧版 Android 还有样式小尾巴。 为了解决这些不完美,作者深入探索了 `pattern` 属性。文章指出,虽然 `pattern` 的主要作用是通过正则表达式进行前端格式验证,但它的写法会影响移动端调起的键盘类型。例如,在 iOS 上,`pattern="[0-9]*"` 能成功调出九宫格数字键盘,而 `pattern="\d"` 则不行;到了 Android 高版本,系统则更认 `type` 属性本身。 文章还整理了一份实用的常用正则表达式清单,涵盖了信用卡、手机号、身份证、密码等多种常见表单场景。尽管 `pattern` 的整体浏览器支持情况不理想,但对于开头提到的优化数字输入键盘这一具体需求,它在 iOS 和 Android 主流设备上都能有效工作,为开发者提供了一个轻量级的解决方案。

IT 累计浏览 3,731

HTML5视频的那些事儿

这篇文章讲的是HTML5视频背后那堆让人头疼的概念和选择。作者从视频技术早于Web存在的历史讲起,梳理了我们常见的rmvb、mp4、flv等格式背后复杂的“三层结构”:容器、视频编解码器和音频编解码器,并用清晰的表格总结了mp4、ogg等主流组合的对应关系。 厘清这些后,文章转向HTML5的解决方案。它回顾了从黑盒的`embed`标签到功能强大但代码复杂的Flash插件的时代,引出了简洁的`

IT 累计浏览 3,128

近几年前端技术盘点以及 2016 年技术发展方向

这篇讲的是,作者从自身2012年入行经历出发,对2009至2015年间前端技术的演进逻辑做了一次系统梳理与展望。 文章并未停留在简单罗列,而是清晰勾勒出一条演进脉络:从早期jQuery等基础类库对浏览器差异的抹平与功能完善,到HTML5标准确立后对富应用与性能的关注,再到2013年后以Node.js、模块化、工程化工具链为标志的“大前端”生态构建。作者特别指出,技术革新的背后是Web从“网页”走向“应用”的根本诉求,以及浏览器标准化、移动端崛起、前后端分离等关键驱动力。 文中对关键转折点的分析很有见地,例如14年HTML5定稿与ES6落地共同推动了大型Web应用开发成为可能;15年React Native等框架的兴起,则标志着前端技术开始突破浏览器边界,向跨平台原生开发渗透。作者将2016年展望为“低版本IE消亡”和“前端工业化生产”深化的一年,并呼吁业界共同推动标准落地与生态进化。 这篇盘点将技术变迁置于具体的时间线与行业背景中,对理解前端技术的昨天、今天与明天提供了扎实的参考。

IT 累计浏览 1,305

图文浅谈css3

这篇讲的是CSS3的全景概览。作者将CSS3比作一个大宝藏,指出许多开发者可能因实际应用的局限,只接触到其中一鳞半爪。因此,文章的目标就是跳出单纯的炫技案例,为读者提供一次稍大范围的、概括性的梳理。 作者系统地展示了CSS3如何用代码替代图片和JS,显著提升了效率与灵活性。内容从最核心的布局开始,深入解析了灵活的Flexbox、多栏布局、Calc计算以及新兴的Grid网格布局,对比了它们与传统浮动布局的优势。在视觉表现上,详细介绍了阴影、圆角、渐变、图像边框和多背景图等特性。此外,文章还涵盖了Transform、Transition、Animation这套动画组合拳,以及强大的选择器和Rem单位等实用模块。 尽管CSS3常被与炫酷动画关联,但作者强调其宝藏远不止于此。文章最后指出,用好这项技术需达到功能性、灵活性与合理性的平衡,才能在实际项目中挥洒自如。

IT 累计浏览 1,546

html5 section和article,向左还是向右?

这篇讲的是HTML5中一对让不少前端开发者犯难的兄弟标签:section和article。作者没有从枯燥的定义出发,而是直指核心困惑——按照字面意思理解,“部分”和“文章”在实际布局中常常可以互相包含,界限非常模糊。 文章抓住了区分两者的关键:article强调内容的“独立性”和“完整性”,是可以被单独复制或引用的,比如一篇博客、一则用户评论;而section更侧重于对内容进行逻辑上的“分块”或区域划分,比如一篇文章中的不同章节。作者通过两个直观的代码示例来印证这一点:一个是在描述“苹果”的文章下,用article包裹每条彼此独立的用户评论;另一个是用section将同一篇文章拆分为“红富士”和“国光”两个介绍段落。 值得注意的是,文章提醒大家不要陷入“标签按内容块头大小来选”的误区,语义的本质在于内容本身的功能。最后,作者还总结了使用section时的几个实用禁忌,比如不要把它当样式容器、不要为无标题的内容区块使用它。这些基于语义和实践的细节梳理,能帮助开发者在编码时做出更清晰的选择。

IT 累计浏览 6,385

HTML5+CSS3 loading 效果收集

这篇讲的是前端加载动画的“进化”。随着CSS3能力的提升,那种略显粗糙的GIF加载图正在被淘汰,取而代之的是用纯CSS3、HTML5甚至SVG和Canvas构建的、流畅且充满设计感的加载动画,这已成为提升产品质感的一种明确趋势。 作者为此做了一份详实的“素材库”盘点,汇集了数十种纯CSS3实现的loading效果。从模拟彩虹渐变的条形加载器,到单元素的Slack风格动画;从精致的齿轮旋转、天气动画,到复刻Android Kitkat系统的经典效果。几乎每种设计都提供了可直接体验的Demo和源码下载链接,覆盖了从极简到创意、从拟物到抽象的多种风格。 对于前端开发者而言,这不只是一份效果预览合集。它更像一个按需取用的“创意工具箱”,你可以根据项目气质——是科技感、趣味性还是品牌一致性——去挑选一个顺眼的动效,直接嵌入项目或从中获取灵感,彻底告别过去那张单调的loading.gif。

IT 累计浏览 2,243

table-cell的手机应用场景

作者从CSS垂直居中这个常见需求切入,对比了包括margin负值、position+margin在内的多种传统方案。这些方法往往需要预先知道元素高度,或在内容溢出时出现布局问题,对于移动端尤其是内容动态的H5页面来说并不友好。 文章重点介绍了display:table-cell这个被许多人忽略的属性值。它在PC端因兼容性问题(仅支持IE8+)而鲜少使用,但在移动端现代浏览器环境下,反而能发挥独特价值。该属性使元素表现得像表格单元格(td/th),配合父元素设置为display:table和vertical-align:center,可以实现真正的、内容自适应的垂直居中,且无需依赖固定高度。 作者通过代码示例和效果对比指出,table-cell更适合单列布局,多个元素使用时会像表格单元格一样并排显示,margin属性也会失效。因此,它尤其适用于移动端全屏单页应用的垂直居中场景,为开发者提供了一个在特定环境下更灵活、简洁的布局思路。

IT 累计浏览 1,906

CSS3中的网格

这篇讲的是CSS布局从“一团糟”到初现曙光的演进史。作者从早年开发者们不得不依赖表格、浮动和inline-block这些“hack”方法来实现多列布局说起,深入剖析了其中的核心痛点:浮动需要 clearfix、盒模型计算导致宽度溢出、以及为列间距疲于奔命。 文章并未停留在抱怨历史,而是把重点放在了CSS3带来的三把“钥匙”上。它逐一演示了如何用 `box-sizing: border-box` 让宽度计算回归直觉,如何用 `calc()` 函数在百分比中精确扣除间距,以及 Flexbox 如何以更声明式的方式简化对齐与分布。每个方案都附带了清晰的代码示例和效果对比,直观展示了布局效率的提升。 当然,作者也没有回避现实。他指出 `border-box` 仍需搭配浮动,`calc()` 依赖负外边距这种老技巧,而 Flexbox 虽好却受制于当时的浏览器支持。这种客观的对比,让读者能清醒地认识到每个工具的适用边界。对于正挣扎于布局细节的开发者而言,这篇文章清晰地指明了哪些新特性值得立即投入学习,以及它们能实实在在解决哪类历史问题。

IT 累计浏览 14,254

HTML 5 的data-* 自定义属性

这篇讲的是HTML5如何通过 `data-*` 自定义属性,为元素规范地存储和传递私有数据。文章从 `data-*` 属性的定义切入,指出它与传统的任意自定义属性(如 `uid`)在使用上看似相似,但其核心价值在于将这类非可视数据标准化,让代码意图更清晰。 文章的重点在于对比两种存取这些数据的方法。第一种是通用的 `getAttribute` / `setAttribute` 方法,它兼容性极好,但需要写完整的属性名(如 `data-uname`),与传统方式无异。第二种则是HTML5提供的 `dataset` API,这是一种更现代、更语义化的方式。使用时,只需通过 `element.dataset` 对象即可访问,无需“data-”前缀。文章特别提醒了`dataset`的一个关键细节:如果属性名含有连字符(如 `data-date-of-birth`),在通过JS访问时会被自动转换为驼峰式命名(`dataset.dateOfBirth`)。 最终,文章清晰地给出了选择:如果追求广泛兼容或习惯传统操作,`getAttribute` 是可靠选择;若在支持HTML5的现代环境中开发,`dataset` API 提供了更优雅、更符合标准的数据交互方式。

IT 累计浏览 2,911

消除疑问:CSS动画 VS JavaScript

这篇讲的是CSS动画和JavaScript动画之间的选择,并非像很多人想的那样简单。作者从自己作为动画爱好者的亲身体验出发,深入研究后发现,被广泛推崇的CSS动画其实存在一些缺陷。 文章首先指出了CSS的一个明显短板:它的`transform`属性将缩放、旋转和位移捆绑在一起,无法用不同的时间和缓动函数独立控制,这在复杂动画序列中是个实际问题。 更关键的是,作者拆解了“CSS动画性能更好”这一普遍认知。文章详细分析了“硬件加速”的两个层面:一是GPU层的创建,但这并非CSS专利,JavaScript通过`translate3d`等3D变换同样可以触发;二是将计算转移到不同线程,但这个过程本身有开销,且只对与文档流无关的属性有效,实际收益可能被高估。文中还通过压力测试对比显示,现代JavaScript动画库(如GSAP)的性能可以远超jQuery,并不逊色于基于CSS的方案。 最终,文章澄清了一个核心观点:CSS动画并非在所有情况下都是“更干净”或性能更优的选择。理解它们各自的局限和性能本质,才能根据项目需求——是简单的整体变换,还是需要复杂独立控制的序列——做出更合理的技术决策。

IT 累计浏览 4,795

移动前端不得不了解的html5 head 头标签

这篇讲的是移动端开发中容易被忽视但至关重要的HTML head头标签最佳实践。文章从移动端工作的重要性切入,系统梳理了从基础到进阶的各类头部声明。 它首先明确了``和``这些基础标签的写法。随后,重点解析了`lang`属性更标准的写法(如`zh-cmn-Hans`)及其意义。文章还针对国内复杂的浏览器环境,给出了具体的解决方案:比如使用``让360浏览器切换到极速内核,以及添加``来禁止百度转码。 这些内容并非纸上谈兵,而是来自一线开发者的经验总结(如一丝和百度FEX的整理),直指实际项目中会遇到的兼容性和体验问题。对于移动前端开发者来说,这相当于一份即拿即用的头部标签配置清单,能帮助规避很多隐蔽的坑。

IT 累计浏览 17,019

HTML5 离线缓存-manifest简介

这篇讲的是如何用HTML5的Cache Manifest让网页在离线状态下也能访问。作者在将Painter项目中的离线缓存方案复用到其他项目时,发现有些生疏,于是系统梳理了这个技术,为自己也为大家做个记录。 文章从移动时代网络不稳定的痛点切入,解释了manifest文件的核心作用:它定义需要缓存的资源列表,让浏览器能将这些文件保存到本地。即使没网,也能继续浏览网站。这不仅能带来离线体验和更快的速度,还能减轻服务器压力。 文中详细拆解了manifest文件的三段式结构:必需的`CACHE`段明确要缓存哪些文件;可选的`NETWORK`段声明哪些资源必须联网获取;`FALLBACK`段则定义资源加载失败时的备用页面。文章也指出了一些关键注意事项,比如整个站点的同源限制、不同浏览器对缓存容量的不同上限,以及更新缓存的三种方式(更新manifest文件、JavaScript调用或清除浏览器缓存)。 对于需要缓存大量文件的项目,手动编写manifest文件容易出错,文章最后介绍了`grunt-manifest`这类自动化工具,可以通过构建任务自动生成manifest文件,解放生产力。

IT 累计浏览 2,088

关于html5本地存储

这篇文章聚焦于HTML5本地存储中的localStorage,以Chrome浏览器为例,深入揭示了其存储机制的细节。作者从存储位置入手,指出在Windows系统下,数据保存在%appdata%\Local\Google\Chrome\User Data\Default\Local Storage\目录中,并通过SQLite命令行工具演示了如何查看本地数据库——例如运行sqlite3命令查询ItemTable表,直观展示数据以键值对形式存储,如示例中的name|phpor。 文章还明确了localStorage的大小限制为5MB,这对于开发者规划前端存储策略具有实际参考价值。参考资料部分列出了多个技术博客链接,包括HTML5中国网、CSDN和ITeye上的相关文章,为读者提供了进一步探索的资源。整体上,这篇内容从实践角度出发,将抽象的HTML5存储概念转化为具体可操作的步骤,帮助开发者快速理解localStorage的底层实现和应用要点。

IT 累计浏览 1,687

人人网首页拖拽上传详解(HTML5 Drag&Drop、FileReader API、formdata)

这篇讲的是一个人人网早在2011年就上线的前端功能——首页拖拽上传,作者从这个实际案例出发,详细拆解了背后的实现技术。当时这个功能不仅是为了提升用户体验,也承载着向用户推广标准浏览器、逐步淘汰IE的期望。 文章核心围绕着三个HTML5关键API展开:首先是Drag&Drop事件机制,用于监听用户将文件拖入、拖离页面的行为;其次是File API中的FileList和FileReader,它们负责获取被拖拽文件的列表并读取其内容;最后是基于XMLHttpRequest Level 2的FormData对象,它能像表单一样封装文件数据,从而实现通过AJAX直接向服务器发送二进制文件流。 作者没有停留在理论介绍,而是直接给出了关键部分的代码示例,比如如何监听`dragenter`、`dragover`、`drop`等事件,并特别强调了清除`dragover`默认行为的重要性,否则后续的`drop`事件将无法触发。这些细节清晰地展示了一个完整拖拽上传功能的实现骨架。 虽然技术方案有一定年份,但文章清晰展示了如何组合基础API解决一个实际的交互问题,对于理解前端文件处理与异步上传的演进脉络仍有不错的参考价值。

IT 累计浏览 2,630

通过WebRTC获取摄像头影像

这篇技术文章讲的是如何利用 WebRTC API 在网页中调用摄像头并实现一键截图。作者从基础的 video 标签搭建开始,引出了核心的 `navigator.getUserMedia` 接口,并特别指出了它在当时浏览器环境下的兼容性现实:Chrome 和 Firefox 需要加前缀,移动端支持不佳。 文章的核心实现思路清晰:通过 `getUserMedia` 请求摄像头权限,成功后拿到视频流,再通过 `window.URL.createObjectURL` 将流媒体转换为 URL 填入 video 标签播放。截图功能则依赖 canvas 的 `drawImage` 方法,把视频当前帧“画”上去。作者贴心地给出了处理浏览器差异的兼容代码,并分享了一个实战中遇到的“坑”:在 Firefox 中无法通过常规事件可靠获取视频尺寸,最终采用 `setTimeout` 轮询的变通方案来绑定截图按钮。 除了核心步骤,文章末尾还补充了几个有价值的细节,比如同一浏览器不同标签页可以共享摄像头,但不同浏览器不行;以及推荐将截图上传至服务器再提供下载,而非在本地强制保存。整体上,这是一份对前端开发者来说相当直接、步骤明确的实践指南。

IT 累计浏览 2,767

HTML 5 的data-* 自定义属性

HTML5的data-*自定义属性为前端开发提供了一种标准化的数据存储方式。这篇文章从实际用法出发,清晰地对比了传统getAttribute/setAttribute方法与HTML5新增的dataset属性两种存取路径。前者兼容所有浏览器,但和非标准的自定义属性区别不大;后者则通过专属API提供了更简洁的对象式访问,并在属性名包含连字符时(如data-date-of-birth)自动转换为驼峰命名(dateOfBirth),但在部分旧版浏览器中尚未得到支持。 文章指出,data-*属性的更大价值在于其语义化及与CSS选择器、JavaScript的深度结合。开发者可以直接使用`[data-attr]`选择器来精准定位元素,或根据属性值设置样式,这为动态交互和组件化开发带来了便利。总体来看,文章在厘清基本概念的同时,也给出了兼顾兼容性与未来标准的实践建议。