CSS Hacks for IE

掌握 CSS Hacks 可以说是前端开发工程师的一个基本技能。随着浏览器版本的遍地开花,我们寻找着尽可能使各种浏览器表现一致的 CSS 写法。当然 CSS Hacks 是最为流行的解决方案。但对于 IE 而言,目前已经有 IE6/IE7/IE8 三个主要版本,不久的将来还会有 IE9 的到来。于此,IE 是个杯具。

当然有很多人歇斯底里地诋毁 IE6,在此芒果想说的是,一切诋毁 IE6 的言论都是纸老虎。看看 IE6 的历史,它绝不是一个错误的存在。IE7/IE8 这些有严重后遗症的版本才是导致一切杯具的罪魁祸首。

下面是各个 IE 版本的 CSS Hacks 写法:

IE6:

_selector{property:value;}
selector{property:value;property:value!important;} //IE6 不支持同一选择符中的 !important

IE7:

+selector{property:value;}

IE8:

selector{property:value\0;}

IE6 & IE7:

*selector{property:value;}

IE6 & IE7 & IE8:

selector{property:value\9;}

可悲的是,IE8 会自作主张的将页面按照 IE7 模式进行渲染。目前针对 IE 多版本兼容的现状,通常会采用设置 X-UA-Compatible HTTP 头的方式开启 IE8 的兼容模式,这样能在一定程度上减少调试 IE 的工作量。代码如下:

<meta http-equiv="X-UA-Compatible" content="IE=7">//标准 IE7 模式

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">//兼容 IE7 模式

你也可能会碰到另一种情况:

<meta http-equiv="X-UA-Compatible" content="IE=Edge">//标准 IE 模式

IE8 在没有申明 IE=Edge 的情况下还是会存在以兼容模式渲染的情况,这种设置方案 (IE=Edge) 目前口碑网正在应用。

布拉德·皮特

一个1989年的恐怖电影名叫Cutting Class, Brad Pitt饰演了他第一个角色. (除了他还有 Donovan Leitch, Roddy McDowall 和 Martin Mull.)

我并不是说这是一部好电影,但它可能会令你笑起来。

网页面包屑导航

先谈一下面包屑的由来:

很久很久以前,在大森林的边上住着一个贫穷的樵夫,他妻子和两个孩子与他相依为命。他的儿子名叫汉赛尔,女儿名叫格莱特。后来樵夫的妻子去世了,他又给孩子们娶了一个后母。后母计划把两个孩子带到森林的深处,然后趁他们睡着的时候跑掉。汉赛尔无意中知道了后母的计划,于是偷偷地把一块面包藏在了口袋里。

在去森林的路上,汉赛尔悄悄地捏碎了他的面包,并不时地停下脚步,把碎面包屑撒在路上。后母顺利地趁孩子们睡着的时候溜掉了,汉赛尔和格莱特醒来已是一片漆黑。汉赛尔安慰他的妹妹说:“等月亮一出来,我们就看得见我撒在地上的面包屑了,它一定会指给我们回家的路。”但是当月亮升起来时,他们在地上却怎么也找不到一点面包屑了,原来它们都被那些在树林里、田野上飞来飞去的鸟儿一点点地啄食了。

这是《格林童话》中所描述的与面包屑有关的故事。不知道从哪一天开始,汉赛尔的面包屑开始悄悄地出现在某个网站的导航位置上,然后迅速地撒遍了全世界,变成了今天大家所熟知的“面包屑导航”。

再了解一下面包屑导航的定义:

维基百科上关于面包屑的定义,把Websites那部分解释一下就是这样:

面包屑通常水平地出现在页面顶部,一般会位于标题或页头的下方。它们提供给用户返回之前任何一个页面的链接(这些链接也是能到达当前页面的路径),在层级架构中通常是这个页面的父级页面。

面包屑提供给用户回溯到网站首页或入口页面的一条快速路径,它们绝大部分看起来就像这样:首页→分类页→次级分类页

以下是英文摘录:
Breadcrumbs typically appear horizontally across the top of a webpage, usually below any title bars or headers. They provide links back to each previous page that the user navigated through in order to get to the current page, for hierarchical structures usually the parent pages of the current one. Breadcrumbs provide a trail for the user to follow back to the starting/entry point of a website. They may look something like this:
Home page → Section page → Subsection page

其次说说面包屑的作用:

一是:提供了多路径的交互方式,方便用户跳转到其它页面;
二是:从一个侧面展示了该信息集合的信息结构和集合方式。
三是:“面包屑”信息结构对于网站的SEO也有着大的好处,它可以更多的强调网站关键字,扩大关键字的范围,优化网站的SEO。

面包屑包含三种:

1、 定位面包屑路径

面包屑路径中最常见的一种。当前页面路径在商城有唯一的位置。

基于位置(Location-based)的面包屑向用户显示他们在网站的哪一个级别页面。它们一般典型的用于有多个级别(一般是多于两级)的导航方案。在下面的例子中(来自于SitePoint),每一个页面的文本链接表示它比它右边的文本链接高一级。本质上,它是网站结构的线性表示。Web上的定位面包屑路径所展示的不是导航的历史,而是在整个网站中某个固定的位置。

2、 路线面包屑路径

路线面包屑是动态的。当前页面路径是根据用户的点击产生的。

根据到达方式的不同,特定页面上的面包屑路径也不同。基于路径(Path-based)的面包屑路径显示用户到达特定页面的操作步骤,它们显示用户在到达当前页面之前访问过的页面。

3、 属性面包屑路径

当前页面可以通过N条路径找到。

属性面包屑是描述一个页面的方式,不是它在网站中的位置,也不是访问的路径,而是它在某种元数据方案中的位置,这种方案往往是主题层级的。

基于特性(Attribute-based)的面包屑路径显示一个特定页面的特性。

来自:西贝的交互设计

常见系统中文字体的英文名

因为神奇的中文有时也是会遇到国外同学都不知道原因导致一些神奇滴问题,所以要用更神奇的英文来解决问题。

Mac OS的一些:

华文细黑:STHeiti Light [STXihei]
华文黑体:STHeiti
华文楷体:STKaiti
华文宋体:STSong
华文仿宋:STFangsong
儷黑 Pro:LiHei Pro Medium
儷宋 Pro:LiSong Pro Light
標楷體:BiauKai
蘋果儷中黑:Apple LiGothic Medium
蘋果儷細宋:Apple LiSung Light
Windows的一些:

新細明體:PMingLiU
細明體:MingLiU
標楷體:DFKai-SB
黑体:SimHei
宋体:SimSun
新宋体:NSimSun
仿宋:FangSong
楷体:KaiTi
仿宋_GB2312:FangSong_GB2312
楷体_GB2312:KaiTi_GB2312
微軟正黑體:Microsoft JhengHei
微软雅黑体:Microsoft YaHei
装Office会生出来的一些:

隶书:LiSu
幼圆:YouYuan
华文细黑:STXihei
华文楷体:STKaiti
华文宋体:STSong
华文中宋:STZhongsong
华文仿宋:STFangsong
方正舒体:FZShuTi
方正姚体:FZYaoti
华文彩云:STCaiyun
华文琥珀:STHupo
华文隶书:STLiti
华文行楷:STXingkai
华文新魏:STXinwei