任务11

作者: nicole914 | 来源:发表于2017-03-09 16:41 被阅读0次

    什么是 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种以上浏览器兼容的写法

    • 条件注释
    <!--[if IE 6]>
        <p>You are using Internet Explorer 6.</p>
    <![endif]-->
    
    .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
    <script src="Scripts/Modernizr.js" type="text/javascript"></script>
    

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

    • 条件注释
      于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

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