rem
IE6~8 不支持rem,解决用 css hack:width:25%\9
移动端用rem
移动端 css像素和物理像素不对等,可能1个css像素对应4个物理像素,不同设备像素不同。为了解决这个问题,用rem。
根部font-size根据设备不同屏幕宽度计算不同字号大小。
1.JS动态计算(常见做法)
1 | 1. 定基准值,设计稿是750宽度(2倍屏),字体的大小是24px. |
- 根据dpr设定 (比较好的做法)ps : 一般时初始化时设置为根元素html的attribute,
1 | window.document.documentElement.setAttribute('dpr',window.devicePixelRatio) |
然后css这样写
1 | [dpr=1] { |
css ie 条件注释
IE条件注释 (conditional comment) 是于HTML源码中被IE有条件解释的语句。条件注释可被用来向IE提供及隐藏代码,注意:只有 IE9以下的浏览器才能识别这种语法,其他浏览器仅仅认为是普通注释。
注意: if IE 6
中 IE 和 6 的空格不能省,不然会显示在页面上。
1 | <!--[if IE 6]> |
各浏览器默认属性不同
reset 或 normalize.css
ie6 双倍margin
设置display:inline
css hack
1 | * IE6识别 |
attachEvent 和 addEventListener
1 | - target.addEventListener(type, listener, useCapture); |
IE中:
1 | target.attachEvent(type, listener); |
W3C 及 IE 同时支持移除指定的事件, 用途是移除设定的事件, 格式分别如下:1
2
3
4
5
6
7W3C格式:
removeEventListener(event,function,capture/bubble);
Windows IE的格式如下:
detachEvent(event,function);
阻止事件冒泡,使成为捕获型事件触发机制
1 | function stopBubble(e) { |
停止默认事件默认行为
1 | //阻止浏览器的默认行为 |
创建XMLHttpRequest
1 | //创建 - 非IE6 - 第一步 |