在像素里迷路:HTML5 那些不讲究的走位 好几年前,我连鼠标如何移动都不记得了,那时候的浏览器讲道理,网页得乖乖排成整规整齐,Bug 是开发者一关一关的修出来的。HTML5 上线的时候,我就想:这玩意儿是不是就是为了把那个老古董的规矩全都推翻?结局真就给我如此大一个惊喜,让我感觉自己在旷野里冲浪,而不是在泥地里打滚。 刚接手这个项目标时候,我第一反应是搞个大动作。设置一个全局 CSS Reset,然后写一堆语义化的标签,写了一大堆文档类型、viewport、canonical 这些废话。结局页面加载了, Content Security Policy 拦住了我的去路,只给我发了一张“你只能做弹窗”的卡片。

原来,HTML5 的规则忒严了,就连有点刻薄。

这哪儿是学习,这分明是去挤个高考考场的答题卡,你略微动歪点,整个卷子都得废。 那时候我就明白了,HTML5 不是来教我们如何优雅地排版,它是来教我们如何在浏览器这个笨蛋面前,活下去。 最让我头疼的是那个 ``。

那会儿我认定 CSS 就是拿来用的,目前才发现,它有时候还是那个最不讲道理的“管理员”。

那个文件路径要是写错,整个页面就变成一片空白;那个字体加载黄了了,页面就会发白;那个脚本逻辑跑偏了,页面就卡得像个死机。

那时候我还在想着如何把 CSS 写得漂亮,目前才懂,在浏览器面前,写得再华丽,要是它不让你显示出来,那就是纯纯的炫技,就连有点作死。HTML5 强迫我们接纳这种不完美,就像强迫一个小学生接纳“不能把拼音字母写成数字”一样,有时候为了及格,确实得忍。 记得有一次做电商后台,高并发压力测试。

本来当作只要前端写得充足稳,服务器扛得住就行了。结局一上量,`

这时候我就想骂人,是不是有更好的办法?后来才发现,HTML5 的某些特性,比如 `` 要么 ``,有时候确实不如写死一个 DOM 操作来得稳妥。

不中,那就用 `