入门任务12

作者: 机智的大口袋 | 来源:发表于2017-10-10 10:59 被阅读0次
  1. 什么是css hack
    由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览器的不同版本,如IE6和IE7,对CSS的解析认识不完全一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。
    这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能在不同的浏览器中也能得到我们想要的页面效果。
  2. 谈一谈浏览器兼容的思路
  • 先看需不需要做,从产品的角度和成本角度。
  • 如果需要,做到什么程度。
  • 如何做,选择框架,库等等。
  1. 列举5种以上浏览器兼容的写法
  • 条件注释法 <!--[if IE 6]> <![endif]-- > IE10不支持条件注释。
  • 属性前缀法 IE6能识别下划线"-"和星号" * ",IE7能识别星号" * ",但不能识别下划线"-",IE6~IE10都认识"\9",但firefox前述三个都不能认识
.box{
color: red;
 _color: blue; /*ie6*/
 *color: pink; /*ie67*/
 color: yellow\9;  /*ie/edge 6-8*/
}
  • 选择器前缀法
  • 条件注释结合类选择器整体优化
<!DOCTYPE html>
<!--[if IEMobile 7 ]> <html dir="ltr" lang="en-US"class="no-js iem7"> <![endif]-->
<!--[if lt IE 7 ]> <html dir="ltr" lang="en-US" class="no-js ie6 oldie"> <![endif]-->
<!--[if IE 7 ]>    <html dir="ltr" lang="en-US" class="no-js ie7 oldie"> <![endif]-->
<!--[if IE 8 ]>    <html dir="ltr" lang="en-US" class="no-js ie8 oldie"> <![endif]-->
<!--[if (gte IE 9)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html dir="ltr" lang="en-US" class="no-js"><!--<![endif]-->
  • Modernizr.js
boxshadow #MyContainer {
    border: none;
    -webkit-box-shadow: #666 1px 1px 1px;
    -moz-box-shadow: #666 1px 1px 1px;
}
    
.no-boxshadow #MyContainer {
    border: 2px solid black;
}
  1. 以下工具/名词是做什么的
  • 条件注释 是于HTML源码中被IE有条件解释的语句。条件注释可被用来向IE提供及隐藏代码。
  • IE Hack 针对IE浏览器编写不同的CSS的让IE能够正常渲染的过程
  • JS能力检测 浏览器的能力检测目标不是检测特定的浏览器,而是检测浏览器的能力。这样,只需要检测浏览器是否支持特定的能力,就可以给出特定的解决方案。这一部分检测是解决浏览器兼容问题的主要检测。
  • html5shiv.js 用于解决IE9以下版本浏览器对HTML5新增标签不识别,并导致CSS不起作用的问题。所以我们在使用过程中,想要让低版本的浏览器,即IE9以下的浏览器支持,那么这款html5shiv.js是一个非常好的选择!
  • respond.js 是一个小脚本,用于为 IE6-8 以及其它不支持 CSS3 媒体查询功能的浏览器提供媒体查询的 min-width 和 max-width 特性,实现响应式网页设计。
  • css reset 将浏览器的默认样式全部去掉,更准确说就是通过重新定义标签样式。“覆盖”浏览器的CSS默认属性。最最简单的说法就是把浏览器提供的默认样式覆盖掉!这就是CSS reset。
  • normalize.css 是一个可以定制的CSS文件,它让不同的浏览器在渲染网页元素的时候形式更统一。
    它可以:
    保留有用的默认值,不同于许多 CSS reset 的简单粗暴。
    标准化的样式,适用范围广的元素。
    纠正错误和常见的浏览器的不一致性。
    一些细微的改进,提高了易用性。
    使用详细的注释来解释代码。
  • Modernizr 使你可以方便地为各种情况编写 JavaScript 和 CSS,无论浏览器是否支持这些特性。这是处理渐进增强的完美方案。
    Modernizr 会在页面加载后立即检测特性;然后创建一个包含检测结果的 JavaScript 对象,同时在 html 元素加入方便你调整 CSS 的 class 名。
  • postCSS 它可以被理解为一个平台,可以让一些插件在上面跑,它提供了一个解析器,可以将CSS解析成抽象语法树,通过PostCSS这个平台,我们能够开发一些插件,来处理CSS。热门插件如autoprefixer,它可以帮我们处理兼容问题,只需正常写CSS,autoprefixer可以帮我的自动生成兼容性代码
  1. 一般在哪个网站查询属性兼容性?
    https://caniuse.com/

相关文章

  • 入门任务12

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

  • 入门任务12

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

  • 入门任务12

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

  • 入门任务12

    1、什么是 CSS hack2、谈一谈浏览器兼容的思路3、列举5种以上浏览器兼容的写法4、以下工具/名词是做什么的...

  • 入门任务

    任务二 web 相关知识了解 前端是做什么的?互联网职位有哪些常见的简称(如PM…) 在一个待开发的产品中,产品经...

  • 入门任务8

    块级元素和行内元素分别有哪些?## 块级元素 行内元素 区别 块级元素可以包含行内元素和其他块级元素,行内元素只能...

  • 入门任务11

    单栏布局三栏布局圣杯布局双飞翼布局页面范例

  • 入门任务9

    text-align: center的作用是什么,作用在什么元素上?能让什么元素水平居中## text-align...

  • 入门任务13

    说一说你平时写代码遵守的编码规范## 以bootstrap编码规范为基准,尽量遵守这个标准 传送门 语义化尽量使用...

  • 入门任务13

    编码规范 命名规范 所有命名都使用英文小写 命名用引号包裹 不同的单词用中横线连接 命名体现功能,不涉及表现样式(...

网友评论

    本文标题:入门任务12

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