IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者
首页 / 前端观察
IT 2016-03-16 23:45:26 / 累计浏览 1,700

一些有用的HTML5 pattern

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

本机暂存
IT 2016-02-07 14:08:33 / 累计浏览 2,240

Ghost+Nginx部署HTTP2

这篇讲的是作者为抵抗运营商劫持,在Ghost博客上部署HTTPS与HTTP/2的实战全过程。核心方案围绕Nginx代理与SSL证书展开:最初尝试免费的Let's Encrypt证书,但因DNS验证问题放弃,转而选用商业Comodo证书;Nginx需升级至mainline版本以支持http2,并在监听配置中显式添加http2参数。 部署后遇到混合内容(mixed content)导致浏览器警告,关键解决方案是将子域名的图片路径迁移至主域下,通过Nginx的alias规则统一提供服务,并配置了HTTP到HTTPS的301跳转。整个过程验证了HTTPS/HTTP/2对防御劫持的有效性,同时也指出了SHA-2证书对旧版IE和Android的兼容性限制。文章记录了从证书选择、Nginx调优到内容迁移的完整踩坑与解决思路,对同类博客升级有直接参考价值。

本机暂存
IT 2016-01-26 23:42:52 / 累计浏览 6,420

HTML5+CSS3 loading 效果收集

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

本机暂存
IT 2015-11-08 22:32:55 / 累计浏览 2,320

QQ浏览器X5内核问题汇总

这篇整理自X5团队内部资料的清单,系统梳理了微信、QQ浏览器中使用的X5内核(基于Android 4.2 WebKit)常见的41个开发者问题与解决方案。文章以问答形式展开,覆盖了从布局渲染、脚本性能到多媒体播放、网络定位等广泛场景。 例如,它明确了为何使用iScroll.js局部滚动会卡顿(建议改用CSS overflow属性),解释了-webkit-filter和WebGL在当时的兼容性限制,并给出了定位失败时如何检查JS中timeout参数设置的排查路径。对于Canvas内存限制、Cookie的4KB截断、点击事件300ms延迟等底层机制,也提供了清晰的原理说明和应对建议。 文章最后透露,X5内核团队已启动基于Chromium的新版本预研,以提升标准支持和性能。这份详尽的“避坑指南”,对于至今仍在处理Android WebView碎片化兼容问题的前端与移动端开发者,依然具有直接的参考价值。

本机暂存
IT 2015-05-29 20:00:11 / 累计浏览 2,600

用 Virtual DOM 加速开发

这篇讲的是从传统 HTML 模板引擎过渡到 React 的 Virtual DOM,如何改善前端开发体验。作者以简聊(by Teambition)项目从 Backbone 转向 React 的实践为切入点,首先分析了传统字符串模板(如 doT.js)的局限:组件化困难(如前端无法直接 include 文件)、模板缩进产生多余空白、以及潜在的 JavaScript 注入风险。 接着,文章介绍了 React 的 JSX 规范——一种在 JavaScript 中编写类 XML 结构的方法。JSX 经过 Babel 等工具编译后,实际生成的是 React.createElement 函数调用,从而构建出一个轻量的、JSON 格式的 Virtual DOM 树。这个虚拟层是核心:当组件的 props 或 state 变化时,React 会重新生成 Virtual DOM 树,并通过高效的 Diff 算法计算出最小化的 DOM 更新操作,从而避免了繁琐的手动操作。 与传统模板相比,Virtual DOM 带来诸多优势:自动排除无意义空白、字符串自动转义防注入、JSON 结构天然支持组件组合,并且 JavaScript 可在 Node.js 和浏览器间共享代码。最终,这种声明式、数据驱动的开发模式让开发者从 jQuery 式的 DOM 操作中解放出来。文章末尾还提到,Virtual DOM 的理念正催生出 React Native、React-Canvas 等跨平台新可能,展示了这一架构的延伸价值。

本机暂存
IT 2015-02-08 23:30:56 / 累计浏览 2,280

table-cell的手机应用场景

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

本机暂存
IT 2015-01-21 23:38:40 / 累计浏览 17,420

HTTPS, SPDY和 HTTP/2性能的简单对比

这篇翻译文章源于作者对抗运营商网络劫持的关注,借此机会详细对比了传统HTTPS、SPDY/3.1以及新兴的HTTP/2协议在性能上的具体差异。 测试以Google英国首页为例,在相同条件下对比三者。一个关键区别在于报头压缩:HTTP/2采用的HPACK算法,在报头大小上显著优于SPDY所使用的DEFLATE压缩,使得HTTP/2的空请求报头体积最小,优势明显。 在响应信息大小方面,情况则更为复杂。对于图片资源,三者表现相近。但对于文本内容,虽然HTTP/2报头更小,但其数据帧的可选填充字节,使得最终响应信息反而大于SPDY。文章解释,这种填充机制主要是为了对抗如BREACH等特定安全攻击。 总体来看,HTTP/2在连接初期的数据传输效率上建立了优势,尤其是在报头处理上更为高效。而SPDY在某些特定内容的传输中依然保持着竞争力。文章通过具体的截图和数据,清晰地展示了下一代网络协议在优化性能与保障安全方面的不同设计权衡。

本机暂存
IT 2014-12-10 22:49:08 / 累计浏览 2,500

meta标签常用属性整理

这篇文章是对 HTML `meta` 标签常用属性的一次系统梳理。作者从 W3School 的基础定义出发,首先明确了 `meta` 标签作为元数据载体的核心作用——它不显示在页面上,但为浏览器、搜索引擎等机器提供关键信息。 文章将属性清晰地分为“必要”与“可选”两部分进行讲解。必要属性重点介绍了 `content`,它用于定义具体的元信息内容。可选属性则详细拆解了 `http-equiv`(关联 HTTP 头部,如页面刷新、字符集设置)和 `name`(关联具体名称,如作者、描述、关键词)的常见取值与用途。 特别值得注意的是,文章用较大篇幅深入讲解了 `meta` 标签在 SEO 优化中的实战应用。这部分内容非常具体,例如:如何设置页面关键词(`keywords`)和描述(`description`)以提升搜索相关性;如何通过 `robots` 属性(如 `index,follow` 或 `noindex`)控制搜索引擎的索引与追踪行为;以及如何利用 `refresh` 实现页面自动刷新或重定向,并指出了其潜在风险。 整篇文章将零散的属性知识结构化,并紧密关联到 SEO 和页面控制的实际场景,对于前端开发者来说,是一份非常实用且易于查阅的参考手册。

本机暂存
IT 2014-11-23 21:32:12 / 累计浏览 3,040

网页速度是如何影响转化率的

对于电商网站,性能优化对转化率的影响有多大?这篇文章用扎实的研究数据给出了清晰答案。它引用了国外研究机构的成果,核心发现是:网页加载速度每增加1秒,转化率可能就下降7%。文章展示了一张信息图,详细拆解了从页面加载到用户流失的各个环节,说明速度直接决定了用户是否愿意继续浏览、下单。 作者指出,很多人重视性能优化,但常常低估其直接的商业价值。速度不仅影响转化率,还关联着用户体验、运营成本乃至品牌形象。优化是一个系统性工程,但文章聚焦于最有力的证据——转化率,让技术投入的价值变得一目了然。对于开发者和产品经理来说,这份基于数据的分析,是说服团队重视性能优化的有力参考。

本机暂存
IT 2014-09-17 12:31:35 / 累计浏览 1,980

IE开始支持部分webkit私有属性

这篇文章讨论了微软一个看似“令人震惊”的决策:在其Windows Phone 8.1 Update的IE 11移动版浏览器中,开始支持部分原本属于WebKit阵营的私有属性。 作者指出,这背后是微软的务实妥协。由于许多网站在WP上因错误的浏览器检测、滥用过时的WebKit私有特性等原因导致表现糟糕,而WP市场份额又小到不足以引起开发者重视,微软只能选择让IE去“兼容”这些不规范的写法,以保障用户的体验。文章展示了百度在不同平台上的差异截图,直观说明了问题的严重性。 具体来看,IE 11移动版新增支持了包括`-webkit-appearance`、`flexbox`、`transform`、`transition`及渐变等在内的众多WebKit相关属性,甚至修改了UA字符串以“冒充”Android/iOS设备。需要特别注意,这些改动仅限于移动版IE。 这对开发者的启示非常明确:编写样式时应依赖标准规范,而非特定浏览器前缀;必须为各种情况准备降级方案,并在多平台进行兼容性测试。微软的这一举动,恰恰反映了当前Web开发中标准与现实之间存在的鸿沟。

本机暂存
IT 2013-08-15 13:15:49 / 累计浏览 4,640

关于z-index的那些事儿

这篇技术文章从一个经典的CSS谜题切入:如何在不修改HTML结构、不改动z-index与position属性的前提下,让设置了z-index:1的红色span反而堆叠到其他元素之下?作者通过揭晓答案——为父元素添加一个极小的opacity值(如.99)——引出了对z-index工作原理的深度剖析。 文章的核心在于揭示“堆栈上下文”这一关键概念。作者指出,许多开发者误以为z-index只是简单的数值比较,而忽略了它受元素定位(position)和透明度(opacity)等属性的间接影响。当父元素因设置了opacity小于1而创建新的堆栈上下文时,其所有子元素(无论z-index值多高)都会被限制在这个新的层级范围内,无法突破到上层堆栈中。这就是谜题的解法,也是日常开发中z-index“失灵”的常见根因。 文中进一步梳理了在同一个堆栈上下文中,元素从后到前的排列规则:包括负z-index值的定位元素、非定位元素、z-index为auto的定位元素,以及正z-index值的定位元素等。这些细节帮助开发者在构建复杂UI时,能更精准地预测和控制元素的层叠顺序,避免因误解规则而产生的布局困扰。

本机暂存
IT 2013-07-26 13:25:23 / 累计浏览 2,720

人人都能用的10条网站易用性技巧

这篇译文提炼了WebAIM团队提出的10条提升网站易用性的基础技巧,每一条都直指前端开发中容易忽略的细节。文章不仅列出做法,更点明了其背后的技术原理。 比如,它强调为logo添加alt或title属性,不仅是为了让屏幕阅读器“读懂”图片,在网速不佳图片加载失败时,也能为所有用户保留关键信息。又如,针对许多开发者喜欢移除浏览器默认的:focus焦点样式,文章明确反对这种做法,并给出了如何用自定义高亮样式的代码示例,因为这对键盘操作用户至关重要。 此外,文中还涉及使用ARIA Landmarks帮助读屏软件理解页面结构、用aria-required标记表单必填项、以及避免使用tabindex和“点击此处”这类对辅助技术不友好的模糊链接。作者用平实甚至带点幽默的语言(比如“把设计师的鼠标拿走一天”),将这些看似琐碎却影响深远的实践要点娓娓道来。 这些技巧虽然基础,但共同构成了构建一个包容性更强的Web环境的重要基石。

本机暂存
IT 2013-03-03 23:05:26 / 累计浏览 3,840

CSS技巧荟萃:了解CSS页面布局和加载流程

这篇讲的是CSS页面布局中一个常被忽略但至关重要的基础:浏览器的文档加载与渲染流程。作者没有直接抛出花哨的技巧,而是从最根本的元素显示类型——`block`与`inline`——的区别与特性讲起。 文章清晰地对比了这两类元素的默认行为:`inline`元素如 `` 会在同一行排列,而 `block`元素如 `

` 则会强制换行。更重要的是,它解释了 `display` 属性如何改变这种默认规则,并指出了一个关键差异:对 `inline` 元素设置宽度和高度通常无效,但内边距和外边距的应用效果则与 `block` 元素不同。随后,文章引出了一个实用的折中方案:`inline-block`,它兼具两者的部分特性。 理解这些基础知识后,文章将视角提升到浏览器渲染的层面,解释了“正常文档流”的概念——即浏览器按从上到下的解析顺序来显示内容。掌握了这一点,再去做CSS布局,才能真正理解浮动、定位等技术背后的逻辑。文末还设计了一个使用HTML5标签和占位图的动手练习,让读者可以立刻实践文档流的概念,将理论落地。

本机暂存
IT 2012-12-23 23:02:45 / 累计浏览 4,500

CSS基线之道

这篇讲的是CSS中容易被忽视的“垂直基线网格”问题。文章从印刷设计中的基线对齐谈起,对比了网页设计的现状:我们熟悉水平网格,却常常忽略垂直方向的一致性,这其实是基于人类大脑的“模式识别”原理——规整、可预测的间距能降低阅读的认知负担。 作者指出,CSS的`line-height`属性与真实基线存在差异,使得精确的垂直对齐变得棘手,但这恰恰是值得我们追求的。文章核心分享了一种基础的CSS实现思路:从最小的正文字体(如14px/22px)出发,定义一个基线单位(22px),并让页面所有元素的`line-height`、`padding`、`margin`都成为这个单位的整数倍。为了可伸缩性,这些像素值应转换为`em`单位。 通过这种简单的数学约束和可见网格的辅助检查,设计师能构建出结构清晰、节奏一致的页面布局,尤其在多列文本场景下,整齐的垂直对齐能带来类似印刷品的专业与可信感。这为处理复杂的垂直节奏提供了一套扎实的基础方法。

本机暂存
IT 2012-12-21 13:39:42 / 累计浏览 5,880

缓存为王

这篇讲的是Web性能优化中一个常被低估的选手:缓存。作者从“快速Web应用的关键是Ajax、优化JavaScript和更好的缓存”这一观点出发,做了一项有趣的实测,想看看这三招在实际网站里到底谁最管用。 他用WebPagetest工具模拟不同网络环境,对Alexa前1000网站进行了对比测试。结果有点出乎意料:缓存模式表现最强,页面加载中位数只需3.46秒,远快于“快速网络”(4.13秒)和“禁用JavaScript”(4.74秒)。核心原因在于,缓存直接将90个HTTP请求削减到仅32个,大部分资源从本地读取,彻底避免了网络传输。 文章进一步分析,当前很多网站虽配置了缓存,但有效期很短,导致优势局限于“重复浏览”。作者由此提出,未来的方向是延长缓存时间,并探索预读技术,让性能优势更持久。这提醒我们,在追求新技术的同时,扎实做好缓存这一“基本功”,往往能带来最显著的收益。

本机暂存
IT 2012-12-21 13:25:13 / 累计浏览 4,220

HTML5 Charset能用吗?

这篇讲的是前端开发者在实际项目中遇到的一个经典兼容性问题:HTML5简写的``在老旧的IE6浏览器里到底能不能用。作者从项目页面在IE6突然出现乱码的实际故障出发,进行了一系列系统性的测试。 测试对比了HTML5和HTML4两种字符集声明方法在多种环境下的表现。核心发现很有价值:IE6确实能正确识别HTML5的charset声明,其效果与传统HTML4方法一致。但有几个关键细节决定了成败:首先,meta声明必须位于``标签最前面,且在文档前512字节内;其次,服务器端(如Nginx)设置的charset优先级高于页面内的meta标签;另外,在UTF-8文件中使用中文注释,并非乱码的直接原因。 测试还揭示了一个有趣的优先级问题:当用两个meta标签先后声明不同字符集时,浏览器以第一个声明为准。因此,作者最终的结论是:只要遵循规范(头部简洁、声明靠前),开发者完全可以放心使用HTML5的DOCTYPE和简化的charset写法,无需担心主流浏览器的兼容性问题。对于需要长期维护的项目,通过服务器端统一设置字符集是更高效可靠的选择。

本机暂存
IT 2012-12-19 13:30:03 / 累计浏览 4,940

IE BUG相关文章集合

这篇资源集合聚焦于困扰前端开发者多年的IE浏览器兼容性问题,从底层的渲染机制到具体的bug修复方案,构建了一个系统的知识网络。 文章的核心首先深入剖析了IE特有的“HasLayout”机制,这是众多怪异bug的根源。它链接了多篇详解,帮助读者理解这个只存在于IE引擎中的概念如何影响页面布局。紧接着,文章将视线转向了标准的“块级格式化上下文”,并进行了对比解析。理解这两者的差异,是掌握IE兼容问题的关键所在。 真正的实战干货在于第三部分——具体的IE bug清单。这里罗列了从经典的3px bug、margin加倍、PNG透明问题,到Z-index层级失效、overflow处理异常等二十余个具体场景。每个条目都直接指向问题的表现与解决方案,比如如何为IE6修复`position:fixed`,或怎样处理父级padding后子元素的绝对定位。 最后,文章还整理了多个综合性的BUG修复指南与hack速查表,相当于为开发者提供了一套应对IE怪异模式的工具箱。对于需要维护历史项目或追求极致兼容性的前端工程师而言,这份清单能快速定位问题,节省大量试错时间。

本机暂存
IT 2012-12-18 23:10:24 / 累计浏览 4,600

font-face在移动终端的支持

这篇讲的是CSS3 font-face特性在移动终端实际兼容性的测试报告。作者开篇点明,font-face能实现漂亮的自定义字体和高质量的图标,在PPI较高的移动设备上显示效果尤其完美,但其支持情况却参差不齐。 文章核心介绍了由BBC News的开发者Kaelig进行的一系列测试。他使用Modernizr脚本并配合另一段检测代码,来探明各主流移动浏览器真实的font-face支持情况,避免被一些声称支持但实际无法渲染的“骗人”浏览器误导。测试结果非常详尽,将移动浏览器明确分为三类:完全支持(如iOS 4/6的Safari、Android 4的Chrome和默认浏览器、Windows Phone 8的IE等)、明确不支持(主要是各平台上的Opera Mini)以及会“骗人”的浏览器(例如Windows Phone 7的IE9和Android 4的UC浏览器)。 结论指向一个现实:在移动端大规模使用自定义字体仍需谨慎。测试数据为我们划出了清晰的兼容性边界,提醒开发者在追求视觉效果的同时,必须做好针对不同浏览器环境的兼容处理。

本机暂存
IT 2012-12-09 20:30:08 / 累计浏览 4,340

10个超棒jQuery表单操作代码片段

这篇文章收集了10个在jQuery表单处理中非常实用的代码片段,直接针对前端开发中的常见痛点。它涵盖了从基础交互到数据管理的多个场景,比如如何防止用户意外按回车提交表单、一键重置所有表单字段,以及在Ajax请求前后有效地禁用和启用提交按钮来避免重复点击。 其中一些技巧设计得相当巧妙。例如,作者指出直接通过`.attr('disabled', false)`来启用按钮是不正确的,应该使用`.removeAttr('disabled')`。另一个亮点是关于防止表单多次提交的方案,它通过在提交时动态设置按钮状态并利用数据存储来标记提交状态,逻辑清晰且可靠。 文章还包括诸如根据输入内容动态启用按钮、高亮当前聚焦的输入框等增强用户体验的代码。这些片段虽然简短,但每个都解决了一个具体而微的问题,组合起来形成了一套高效的表单处理工具箱。作者在文末也鼓励读者分享自己的相关代码,显示出这是一个注重实践交流的实用集合。

本机暂存
IT 2012-12-07 23:42:48 / 累计浏览 5,000

是时候使用filter:drop-shadow了

这篇讲的是,CSS中实现阴影效果的两种主流方式——传统的`box-shadow`属性与新的`filter: drop-shadow`滤镜——之间该如何选择。作者从自己项目中为实现全方位阴影而编写冗长`box-shadow`代码的经历出发,对比了两种方案的实现与效果。 核心差异在于,`drop-shadow`滤镜能更真实地模拟光照下的阴影,因为它能感知元素的实际轮廓(包括透明区域),生成的阴影贴合形状,视觉上更自然。相比之下,`box-shadow`只能为元素的整体矩形边界框添加阴影。此外,两者的浏览器兼容性也不同,`filter`在Webkit内核浏览器(如Chrome、Safari)中已获得良好支持,而Firefox和IE则仍需依赖`box-shadow`。 因此,在面向现代浏览器开发时,`filter: drop-shadow`无疑是更优的选择,能用更简洁的代码实现更逼真的效果。对于需要兼容旧版浏览器的场景,则应继续使用`box-shadow`作为备选。文章提供了清晰的代码对比和在线示例,直观展示了两者的区别。

本机暂存