任务11

什么是 CSS hack

由于不同厂商的流览器或某浏览器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等),对CSS的支持、解析不一样,导致在不同浏览器的环境中呈现出不一致的页面展现效果。这时,我们为了获得统一的页面效果,就需要针对不同的浏览器或不同版本写特定的CSS样式,我们把这个针对不同的浏览器/不同版本写相应的CSS code的过程,叫做CSS hack!

谈一谈浏览器兼容的思路

  • 要不要做
    产品的角度(产品的受众、受众的浏览器比例、效果优先还是基本功能优先)
    成本的角度 (有无必要做某件事)
  • 做到什么程度让
    哪些浏览器支持哪些效果
  • 如何做
    根据兼容需求选择技术框架/库(jquery)
    根据兼容需求选择兼容工具(html5shiv.js, respond.js, css reset, normalize.css, Modernizr)
    postCSS
    条件注释、CSS Hack、js 能力检测做一些修补

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

  • 条件注释

.box{
  color: red;
  _color: blue; /*ie6*/
  *color: pink; /*ie67*/
  color: yellow\9;  /*ie/edge 6-8*/
}
.clearfix:after{
  content: '';
  display: block;
  clear: both;
}
.clearfix{
  *zoom: 1; /* 仅对ie67有效 */
}
  • 浏览器前缀
.boxshadow #MyContainer { 
border: none;
 -webkit-box-shadow: #666 1px 1px 1px;
 -moz-box-shadow: #666 1px 1px 1px;
} 
  • 使用Modernizr

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

  • 条件注释
    于HTML源码中被IE有条件解释的语句。条件注释可被用来向IE提供及隐藏代码。
  • IE Hack
    为了兼容IE系列浏览器的CSS hack。
  • js 能力检测
    使用JS检测浏览器是否支持特定的功能来确定解决方案
  • html5shiv.js
    使用html5shiv.js,可以在IE9以下的浏览器中模拟HTML5分区元素的使用,并提供基本的样式。
  • respond.js
    Respond.js 是一个小脚本,用于为 IE6-8 以及其它不支持 CSS3 媒体查询功能的浏览器提供媒体查询的 min-width 和 max-width 特性,实现响应式网页设计。
  • css reset
    将浏览器的默认样式全部去掉。即通过重新定义标签样式,“覆盖”浏览器的CSS默认属性。
  • normalize.css
    normalize.css让不同的浏览器在渲染网页元素的时候形式更统一。normalize.css比CSS reset处理方式更温和,保留一些元素有用的默认样式,纠正错误和常见的浏览器的不一致性。
  • Modernizr
    Modernizr是一个JavaScript库,用来检测浏览器是否支持HTML5和CSS3特性,在根元素添加相应类名来实现浏览器兼容。
  • postCSS
    postCSS是一个后处理器,它提供了一个解析器,可以将CSS解析成抽象语法树,通过PostCSS这个平台,我们能够开发一些插件。
    它能解决的问题有:
    它能够为 CSS 提供额外的功能;
    通过在 PostCSS 这个平台上,我们能够开发一些插件,来处理我们的CSS,比如热门的:autoprefixer
    我们能够使用JavaScript来开发插件
    比如热门插件如autoprefixer,它可以帮我们处理兼容问题,只需写标准语法的CSS,autoprefixer可以帮我的自动生成兼容性代码

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

Can I use

你可能感兴趣的:(任务11)