美文网首页
浏览器兼容12

浏览器兼容12

作者: 饥人谷_秦勤 | 来源:发表于2017-08-12 14:06 被阅读0次

1.什么是 CSS hack

由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览器的不同版本,如IE6和IE7,对CSS的解析认识不完全一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。

这个时候我们就需要针对不同的浏览器去写不同样式的CSS,让它能在不同的浏览器中也能得到我们想要的页面效果。这个过程就是CSS hack

CSS Hack大致有3种表现形式,CSS属性前缀法、选择器前缀法以及IE条件注释法

2.谈一谈浏览器兼容的思路

  • 要不要做
    产品的角度(产品的受众、受众的浏览器比例、效果优先还是基本功能优先)
    成本的角度 (有无必要做某件事)

  • 做到什么程度
    让哪些浏览器支持哪些效果

  • 如何做

  • 根据兼容需求选择技术框架/库(jquery)
    Bootstrap (>=ie8)
    jQuery 1.~ (>=ie6), jQuery 2.~ (>=ie9)
    Vue (>= ie9)
  • 根据兼容需求选择兼容工具
    html5shiv.js
    respond.js
    css reset
    normalize.css
    Modernizr
    postCSS
  • 条件注释、CSS Hack、js 能力检测做一些修补
  • 渐进增强和优雅降级的选择

3.列举5种以上浏览器兼容的写法

常见属性的兼容情况

inline-block: >=ie8
min-width/min-height: >=ie8
:before,:after: >=ie8
div:hover: >=ie7
inline-block: >=ie8
background-size: >=ie9
圆角: >= ie9
阴影: >= ie9
动画/渐变: >= ie10
caniuse.com 查CSS属性兼容

IE条件注释
项目 范例 说明
[if !IE] 非IE
lt [if lt IE 5.5] 小于IE 5.5
lte [if lte IE 6] 小于等于IE6
gt [if gt IE 5] 大于 IE5
gte [if gte IE 7] 大于等于IE7

“|” [if (IE 6)|(IE 7)] :IE6或者IE7
如下例:

    <!--[if IE 6]>
    <p>You are using Internet Explorer 6.</p>
    <![endif]-->
    <!--[if !IE]><!-->
    <script>alert(1);</script>
    <!--<![endif]-->
属性选择器
box{
 color: red; 
 _color: blue; /*ie6*/
 *color: pink; /*ie67*/ 
 color: yellow\9; /*ie/edge 6-8*/}
选择器前缀法
*html *前缀只对IE6生效
*+html *+前缀只对IE7生效
@media screen\9{...}只对IE6/7生效
容器坍塌
.clearfix:after{
  content: '';
  display: block;
  clear: both;
}
.clearfix{
  *zoom: 1; /* 仅对ie67有效 */
}
inline-block属性
.target{
  display: inline-block;
  *display: inline;
  *zoom: 1;
}

4.以下工具/名词是做什么的

条件注释:

html源码中被IE浏览器有条件解释的语句。条件注释可向IE提供以及隐藏代码

IE Hack:

针对IE浏览器写出的不同的CSS让IE能正常渲染

js 能力检测:

指的是用js语句检测当前浏览器的支持的属性,以便解释渲染

html5shiv.js:

创建元素用于解决IE9以下版本浏览器对HTML5新增标签不识别,并导致CSS不起作用的问题

respond.js:

让不支持css3 Media Query的浏览器包括IE6-IE8等其他浏览器支持查询。

css reset:

重新定义标签样式,“覆盖”浏览器的CSS默认属性

normalize.css:

可以定制的CSS文件,它让不同的浏览器在渲染网页元素的时候形式更统一

Modernizr:

modernizr是一套JavaScript库,可以用来检测浏览器对html5和css3的特性有哪些支持哪些不支持。

postCSS:

postcss是通过JavaScript语言对css语句进行处理,然后再用已选用的插件进行处理和显示

5.一般在哪个网站查询属性兼容性?

caniuse.com 查CSS属性兼容
browserhacks.com 查 Hack 的写法

相关文章

  • 浏览器前缀 js输出

    浏览器前缀 -ms- 兼容IE浏览器-moz- 兼容firefox-o- 兼容opera-webkit- 兼容ch...

  • 浏览器前缀js输出

    浏览器前缀-ms- 兼容IE浏览器-moz- 兼容firefox-o- 兼容opera-webkit- 兼容chr...

  • 浏览器前缀 js输出

    浏览器前缀 -ms- 兼容IE浏览器-moz- 兼容firefox-o- 兼容opera-webkit- 兼容ch...

  • 浏览器前缀 js输出

    浏览器前缀 -ms- 兼容IE浏览器-moz- 兼容firefox-o- 兼容opera-webkit- 兼容ch...

  • ESModule 浏览器兼容性

    import 浏览器兼容性 export 浏览器兼容性

  • 浏览器前缀,js简介

    浏览器前缀用于兼容流里流气 -ms- 兼容IE浏览器 -moz- 兼容firefox -o- 兼容opera -w...

  • 浏览器兼容12

    1.什么是 CSS hack 由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozi...

  • 2019-06-05

    css浏览器前缀: -ms- 兼容IE浏览器; -moz- 兼容firefox -o- 兼容opera, -web...

  • 常见浏览器兼容问题及解决

    一、什么是浏览器兼容问题所谓浏览器兼容问题就是指不同浏览器或同种浏览器不同版本对相同代码解析效果不同,浏览器兼容问...

  • 浏览器常见的兼容问题

    什么是浏览器的兼容问题 浏览器的兼容性问题也就是网页的兼容性或者网站兼容性问题, 指网页在各种浏览器上的cs...

网友评论

      本文标题:浏览器兼容12

      本文链接:https://www.haomeiwen.com/subject/blndrxtx.html