2011.10 13

可访问:弹出菜单/窗口

想象一下,你把一个重要内容放在一个弹出窗口,又不聚集到这个窗口。让使用屏幕阅读器的同学情何以堪,只有当他们 tab 到这页面结束,还继续 tab,才可能找到这个弹窗。是不是应该为弹出菜单提供更好的可访问支持?这篇文章将涉及到3种常见的弹窗:

  1. window.open 新建的浏览器窗口
  2. <iframe /> 创建的窗口
  3. 页面 DOM 创建的伪弹出窗口:如弹出 tips 等

2011.10 12

背景半透明最佳实践

透明作为一种效果增强的方案,被众多视觉设计师喜欢。但因为 IE 的原因,透明,特别是半透明,已经成为前端工程师最不愿意实现的东西。现在有一个需求,需要对一个纯色的层实现半透明效果。效果如下,边框需要透明,透明度为 #000000 的 30%:

背景半透明

2011.10 10

垂直居中的几种实现方法

用过 Fireworks / PhotoShop 的人应该都知道,在画布中将一个页面模块居中是多容易的事,可如果是垂直居中,前端就苦逼了。因为 CSS 本身并没有提供相应的 API 支持(确切来说是提供不全)。今天重新整理一下思路,说说前端在实现页面元素垂直居中的几种思路:

一、利用 position 和负边距

利用绝对定位,让元素的顶部与居中线对齐,再让元素上移 50% 的高度。这个应该不难理解。原理可以用下图来做一个可视化说明:

垂直居中

2011.10 09

CSS4 选择器

CSS3 还没完全用上,CSS4 已经提上日程。官方发布了 update to the working Selectors Level 4 spec,对选择器做了一些升级。前端最大的优点就是技术更新快,可以经常学到新东西;最大的缺点也是技术更新快,要跟上潮流还真不是那么简单。不过,这次更新有像“父选择器”这样让人兴奋的内容,让我们先睹为快,了解一下吧:

一、父元素 $E > F

CSS 终于有了与 DOM 一样的父选择器。这个选择器将会把样式显示在包含有 F 的 $E 上。用 $ 符表示父选择器:

/* 样式显示在 li 上 */
$li > p { border: 1px solid #ccc; }

/* 样式显示在 ol 上 */
#wrapper > $ol > li { background:#f8f8f8; }

2011.09 29

空路径对页面性能影响的解决方案

前几天在 Google Reader 中看到玉伯博客的分享——空路径对页面性能的影响。确实,在写 CSS 的时候,用 background:url(#) 还是会对页面进行多一次请求的。

空路径对页面性能影响的解决方案

不过,因为写多 CSS,一般需要用空背景来解决 bug 的时候,测试结果用 background:url(about:blank) 才是我们想要的:解 bug,不影响性能。那很简单,解决方案不就不出来?等等,让我们来做个测试吧。

2011.09 16

Cross-browser TextStorage

一直用着 UserData 来实现 IE 中的伪 LocalStorage。不过,并没有装成一个模块用。9.9 号去北京的那天上午写了一个解决方案。目标是模仿 HTML5 LocalStorage 的 API,实现 IE 上使用相同 API 就可以存储文本的方案。看代码不一定能了解所有逻辑,这里简单说一下,然后有兴趣的再看代码吧,或者直接拿去用。

  • 利用 IE 的 userData Behavior 来实现 IE 的文本存储
  • 将所有保存属性存于 <body> 中,并在 <html> 的 data-userData 做记号

    为什么要只存储在 body 标签?因为如果存于不同标签,实现 localStorage.clear() 的效率将非常低。在 html 做标记只是为了方便 localStorage.clear() 的实现。至于没有 <body> / <html> 也可以运行 html,但这个方案不能运行,我觉得不用去支持,程序应该写给会最基本标准的人用。

  • getItem / setItem / removeItem / clear 方法保持与 HTML5 LocalStorage 一样的用法

2011.08 21

WebRebuild 分享: 支付宝CSS样式架构

发现每次有 PPT 的夜晚都会有暴风雨和音乐,最终分不清听到的声音究竟是自己想要还是外加的。然后,嗅着熟悉城市的味道,带着想念和把所有人当大西瓜的勇气开始上台,分享自己的历程,散播自己的想法。

WebRebuild 第五届年会

首页 » Take whatever u like home »