首頁(yè)> 新聞中心
如何處理網(wǎng)頁(yè)兼容性問(wèn)題
發(fā)布時(shí)間 :2018-05-14 08:31
在網(wǎng)站設(shè)計(jì)制作中由于不同的瀏覽器對(duì)CSS樣式的解析方法不一樣,從而造成了網(wǎng)頁(yè)兼容問(wèn)題。針對(duì)不同瀏覽器寫(xiě)不同CSS樣式,這個(gè)過(guò)程稱為css hack。
大家都知道在目前ie瀏覽器的市場(chǎng)份額是最高的,其次就是火狐和chrome瀏覽器,可以說(shuō)解決網(wǎng)頁(yè)兼容問(wèn)題就是針對(duì)這三款瀏覽器。
為什么瀏覽器對(duì)css的解析不同?那么我將以那個(gè)瀏覽器最為標(biāo)準(zhǔn)呢?這是因?yàn)闉g覽器軟件開(kāi)發(fā)中存在的技術(shù)缺陷。一般來(lái)說(shuō)火狐瀏覽器和chrome對(duì)css的解析是正確的,而ie則存在一些bug,我們總不能以一個(gè)錯(cuò)誤的標(biāo)準(zhǔn)去修正我們的行為。所以我們首先用火狐或者google chrome瀏覽器來(lái)將網(wǎng)頁(yè)的css樣式設(shè)置好,然后對(duì)ie的各版本設(shè)置css兼容。
ie的各個(gè)版本中,低于ie6的版本幾乎沒(méi)有什么人在用,可以將其忽略,那么我們?cè)O(shè)置css瀏覽器兼容的對(duì)象就集中在ie6~ie9。我們可以通過(guò)以下方式來(lái)分別對(duì)不同瀏覽器設(shè)置css:
1、條件注釋
在</head>標(biāo)記之前插入只對(duì)ie瀏覽器適用的條件注釋代碼。
1<!--[if lt IE 7]>版本小于IE7將看到這行<![endif]-->
2<!--[if lte IE 7]>版本小于或等于IE7將看到這行<![endif]-->
3<!--[if IE 7]>版本如果是IE7將看到這行<![endif]-->
4<!--[if gt IE 7]>版本大于IE7將看到這行<![endif]-->
lt(小于)、gt(大于)、lte(小于或等于)、gte(大于或等于)
實(shí)例代碼:
1<!--[if IE 6]>
2<style type="text/css">
3 /* 針對(duì)IE6定義的樣式 */
4</style>
5<![endif]-->
2、css hack
針對(duì)特定版本的ie寫(xiě)css樣式,以下是各版本ie的css hack寫(xiě)法列表:
Hack Example IE6(S) IE6(Q) IE7(S) IE7(Q) IE8(S) IE8(Q)
* *color Yes Yes Yes Yes No Yes
+ +color Yes Yes Yes Yes No Yes
- -color Yes Yes No No No No
_ _color Yes Yes No Yes No Yes
# #color Yes Yes Yes Yes No Yes
\0 color\0 No No No No Yes No
\9 color\9 Yes Yes Yes Yes Yes Yes
!important color:blue !important;color:green; No No Yes No Yes No
這里S代表standard標(biāo)準(zhǔn)模式,Q代表Quirks怪異模式
實(shí)例代碼:
.box {
background: gray; /* 基本的 */
background: pink\9; /* IE 8 及低于IE8版本 */
*background: green; /* IE 7 及低于IE7版本 */
-background: blue; /* IE 6 */
}
3、針對(duì)google chrome瀏覽器的css hack:
@media screen and (-webkit-min-device-pixel-ratio:0) {
/ * 針對(duì)Google Chrome、Safari 3.0、Opera 9 的CSS樣式 * /
}
4、針對(duì)firefox瀏覽器的css hack:
@-moz-document url-prefix(){
/ * 針對(duì)firefox的CSS樣式 * /
}