關於瀏覽器兼容

1、火狐
1. <input type="date" /> 失效
hack:採用jquery UI:datepicker插件。
(1)下載插件,放置在項目文件夾中;
(2)在所需頁面引入,如:css

<script src="jslib/plugins/datepicker/bootstrap-datepicker.js"></script>

此script與頁面所需的對應的js位置不分前後;
(3)點擊觸發pick事件,func(pic);
調用$("#datepicker").datepicker() ;
帶參數的寫法:html

$("#datepicker").datepicker({
    numberOfMonth: 3,     // 一排3個
    numberOfMonth: [3,2], // 三排每排2個    
}) ;

2、ie8
1.圓角:border-radius失效
hack:使用一些能使ie兼容css3新屬性的插件,這裏介紹一下pie.htc 。
(1)下載pie.htc ;http://css3pie.com/
(2)部署在你的項目文件中,我習慣是放在js下面,不過,就像官網說的
「It doesn't matter where exactly, as long as you know where it is.」;
(3)寫樣式並追加兼容,如:jquery

a.level0 span.button {
    width:10px;
    height:10px;
    background:#999;
    border-radius:50%;
    -webkit-border-radius:50%;
    -moz-border-radius:50%;
    behavior:url(view/js/pie.htc)

    //值得注意的是,追加兼容的路徑並非相對於當前的css文件,
    //而是相對應的html/jsp文件,我的以爲官網只有說明沒有示例不太好。
}

2.漸變:background-image:linear-gredient()失效
hack1:使用兼容插件。
方法同上的前兩步(1)、(2)
(3)寫樣式並追加兼容,如:css3

nav{
    background:linear-gradient(#8fb8ff 0%, #fff 100%);
    background:-webkit-linear-gradient(#8fb8ff 0%, #fff 100%);
    background:-moz-linear-gradient(#8fb8ff 0%, #fff 100%);
    -pie-background: linear-gradient(#8fb8ff 0%, #fff 100%); //ie 6-9 
    behavior: url(view/js/pie.htc);
}

hack2:使用兼容語法。web

background:linear-gradient(#8fb8ff 0%, #fff 100%);
background:-webkit-linear-gradient(#8fb8ff 0%, #fff 100%);
background:-moz-linear-gradient(#8fb8ff 0%, #fff 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=
'#00000000',endColorstr='#E5000000',GradientType=0 ); 
//GradientType: 0垂直漸變 , 1水平漸變

以上兩種方法雜不一樣的場景中都各有各的優勢和缺點,在項目開發中,
能夠都試一下采用兼容更好的一種便可。chrome

3.結構僞類選擇器:nth-of-type( )失效
hack:ie8支持first-child,變動一下代碼。bootstrap

a.level0 span:nth-of-type(1) ——>a.level0 span:first-child
a.level0 span:nth-of-type(2)——>a.level0 span:first-child+span //第二個子節點
a.level0 span:nth-of-type(3)——>a.level0 span:first-child+span+span//第三個子節點
//以此類推

4.盒子陰影:box-shadow失效
hack:pie.htc瀏覽器

div{
    wdith:100px;
    height:100px;
    background:#fff;
     //儘管背景是白色,最好仍是設置一下,否則兼容後的效果可能會不太理想
    box-shadow:10px 10px 10p #aaa;
    behavior:url(view/js/pie.htc)
}

5.透明色rgba()失效
hack:pie.htcjsp

.contaniner{
    width:100px;
    height:100px;
    background:rgba(0,0,0,0.5);
    -pie-background:rgba(0,0,0,0.5);
    behavior:url(view/js/pie.htc);
}

6.<input type="checkbox" /> 有默認border
hack:在css文件中控制一下就行了,如url

input[type="checkbox"] {
    border:none;
}

7.順便介紹一下過濾器filter,filter是一種用來過濾不一樣瀏覽器的hack類型。
(1)9 :全部IE瀏覽器都支持
(2)0 :IE八、IE9支持,opera部分支持
(3)90 :IE8部分支持、IE9支持
(4)09 :IE八、IE9支持
如:

background:#0f0;//chrome 、firefox 顯示綠色
background\0:#00f ;//ie顯示藍色
相關文章
相關標籤/搜索