每次調CSS最令人頭痛的就是瀏覽器校正問題,因為每個瀏覽器對CSS的解釋都不太一樣,Firefox本身算是比較照規矩來,處理上比較簡單,但是遇到微軟的IE系列頭就大了,雖然都是IE,但是IE6、IE7、IE8各版本對CSS的解釋又不一樣,就算你本身已經在IE6調整好,但是在IE7看起來又是不一樣,這時我們就得來對各個瀏覽器設定不同的數值來解決版面移位的問題。

網路上有非常多關於CSS Hack的教學文章,當然處理方法也有很多種,接下來要跟大家說明的是屬於比較簡單的方法,但是以下的校正確無法通過W3C檢測,雖然無法通過檢測,但是針對各個瀏覽器校正確是有效的喔!

目前瀏覽器大宗還是屬於IE6的天下,這原因主要是因為XP本身內建IE6,而且很多使用者很喜歡重灌XP,因此IE6仍占走了大半的瀏覽器天下,不過隨著Windows7的出現,倒是有非常大的機會解決過氣的IE6,因為Windows7本身是內建IE8,微軟的IE8對CSS的解釋已經越來越標準,當然標準程度仍是不及Firefox

另外,如果要處理IE各版本瀏覽器的相容性問題,那一定要有各版本的IE瀏覽器可以瀏覽,但是微軟作業系統內並沒有讓多版本的IE共存,為了讓自己電腦內存在多種版本的IE瀏覽器,那就趕快下載IETester來使用吧!另外,也別忘記下載Firefox來修正網頁CSS喔!

——————————–我是分隔線——————————–

區別IE和Firefox

【辨識符號】:「\9

【範例練習】:

#tip {

background:blue; /*Firefox 背景變藍色*/

background:red \9; /*IE6、IE7、IE8背景變紅色*/

}

【說明】:因為IE瀏覽器看得懂「\9」,但是非IE的瀏覽器一律看不懂,因此就可以用這個語法來區分IE和 Firefox(非IE瀏覽器,像是Opera、Google Chrome、Safari等),因此以上CSS範例中,非IE瀏覽器是顯示藍色背景,IE系列瀏覽器是顯示紅色背景。

——————————–我是分隔線——————————–

區別IE6、IE7、IE8、Firefox

【辨識符號】:「\9」、「*」、「_

【範例練習】:

Ads by Yahoo!

  • 金智塑膠-多項加工PP塑膠

    www.jin-zhi.com.tw

    優良加工PP塑膠生產,提供專業諮詢,更享安心的售後服務,交貨品質值得信賴。

  • 熱縮套管-雲林電子股份有限公司

    www.g-apex.com.tw

    符合RoHS 電線連接用焊錫熱縮管

  • 捷創科技顧問-地震烈度監測問題解決

    www.vibtech.com.tw

    高科技廠房振動評估、微振問題解決顧問,專業檢測,多年專業經驗。

#tip {

background:blue; /*Firefox 背景變藍色*/

background:red \9; /*IE8 背景變紅色*/

*background:black; /*IE7 背景變黑色*/

_background:orange; /*IE6 背景變橘色*/

}

【說明】:因為IE系列瀏覽器可讀「\9」,而IE6和IE7可讀「*」(米字號),另外IE6可辨識「_」 (底線),因此可以依照順序寫下來,就會讓瀏覽器正確的讀取到自己看得懂得CSS語法,所以就可以有效區分IE各版本和非IE瀏覽器(像是 Firefox、Opera、Google Chrome、Safari等)。

——————————–我是分隔線——————————–

區別IE6、IE7、Firefox (方法 1)

【辨識符號】:「*」、「_

【範例練習】:

#tip {

background:blue; /*Firefox背景變藍色*/

*background:black; /*IE7 背景變黑色*/

_background:orange; /*IE6 背景變橘色*/

}

【說明】:IE7和IE6可讀「*」(米字號),IE6又可以讀「_」(底線),但是IE7卻無法讀取「_」,至於Firefox(非IE瀏覽器)則完全無法辨識「*」和「_」,因此就可以透過這樣的差異性來區分IE6、IE7、Firefox,

——————————–我是分隔線——————————–

區別IE6、IE7、Firefox (方法 2)

【辨識符號】:「*」、「!important

【範例練習】:

#tip {

background:blue; /*Firefox 背景變藍色*/

*background:green !important; /*IE7 背景變綠色*/

*background:orange; /*IE6 背景變橘色*/

}

【說明】:IE7可以辨識「*」和「!important」,但是IE6只可以辨識「*」,卻無法辨識「!important」,至於Firefox可以讀取「!important」但不能辨識「*」因此可以透過這樣的差異來有效區隔IE6、IE7、Firefox。

區別IE7、Firefox

【辨識符號】:「*」、「!important

【範例練習】:

#tip {

background:blue; /*Firefox 背景變藍色*/

*background:green !important; /*IE7 背景變綠色*/

}

【說明】:因為Firefox可以辨識「!important」但卻無法辨識「*」,而IE7則可以同時看懂「*」、「!important」,因此可以兩個辨識符號來區隔IE7和Firefox。

——————————–我是分隔線——————————–

區別IE6、IE7 (方法 1)

【辨識符號】:「*」、「_

【範例練習】:

#tip {

*background:black; /*IE7 背景變黑色*/

_background:orange; /*IE6 背景變橘色*/

}

【說明】:IE7和IE6都可以辨識「*」(米字號),但IE6可以辨識「_」(底線),IE7卻無法辨識,透過IE7無法讀取「_」的特性就能輕鬆區隔IE6和IE7之間的差異。

區別IE6、IE7 (方法 2)

【辨識符號】:「!important

【範例練習】:

#tip {

background:black !important; /*IE7 背景變黑色*/

background:orange; /*IE6 背景變橘色*/

}

【說明】:因為IE7可讀取「!important;」但IE6卻不行,而CSS的讀取步驟是從上到下,因此IE6讀取時因無法辨識「!important」而直接跳到下一行讀取CSS,所以背景色會呈現橘色。

——————————–我是分隔線——————————–

區別IE6、Firefox

【辨識符號】:「_

【範例練習】:

#tip {

background:black; /*Firefox 背景變黑色*/

_background:orange; /*IE6 背景變橘色*/

}

【說明】:因為IE6可以辨識「_」(底線),但是Firefox卻不行,因此可以透過這樣的差異來區隔Firefox和IE6,有效達成CSS hack。

——————————–我是分隔線——————————–

關於IE6、IE7、IE8、Firefox之間的CSS Hack大概是以上那樣,如果有疏漏或是有錯誤還煩請大家指證一下囉!這些CSS Hack是我目前看過比較簡單的處理方式,當然如果你不會很在意CSS是否通過W3C的驗證,你只會在意每個用戶在不同的瀏覽器下閱讀是否可以正常的話,其實以上CSS Hack對你來說是非常好用的,因為這些CSS Hack如果善加利用確實可以正確的解決瀏覽器相容性問題。

以上的CSS Hack參照了以下幾篇文章所整理出來的,感謝以下文章的詳細說明。

[CSS Hack]解決IE6、IE7、IE8、Firefox的瀏覽器相容性問題!的更多相关文章

  1. IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表

    浏览器兼容问题一直是前段开发工程师比较头痛的问题,熟悉了里面的规则也就变得简单了,这里有一份资料可以分享给大家,大家平时开发过程中遵循这个规律的话,会变得轻松多了: 各浏览器CSS hack兼容表: ...

  2. 兼容IE6/IE7/IE8/FireFox的css hack

    兼容IE6/IE7/IE8/FireFox的css hack .color{ background-color: #CC00FF; background-color: #FF00009; *backg ...

  3. 简单CSS hack:区分IE6、IE7、IE8、Firefox、Opera

    一.跨浏览器的网页设计一直是让人很头疼的问题,这不只是因为浏览器的版本众多,还有一个重要的原因是相同浏览器的不同时期的版本也会有差异,甚至是在不同操作同台上还会有不同.因此使CSS hack技术进行浏 ...

  4. IE6 IE7 IE8 的函数声明和函数表达式的实现与其他浏览器有差异

    标准参考 函数声明和函数表达式 定义一个函数有两种途径:函数声明和函数表达式. 函数声明: function Identifier ( FormalParameterList opt ) { Func ...

  5. 兼容IE6,IE7和firefox可以使用的一些css hack:

    .一些问题是浏览器自身的问题,遇到问题发生无法避免的情况下,那就要考虑使用一些css hack了,以下是针对IE6,IE7和firefox可以使用的一些css hack:(1) a: 针对区别IE6 ...

  6. 针对firefox ie6 ie7 ie8的css样式中的line-height属性

    针对firefox ie6 ie7 ie8的css样式中的line-height属性 以前我们大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7以上对! ...

  7. CSS兼容IE6 IE7 IE8 IE9 Firefox的总结

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 转 CSS hack:针对IE6,IE7,firefox显示不同效果

    CSS hack:针对IE6,IE7,firefox显示不同效果 做网站时经常会用到,衡量一个DIV+CSS架构师的水平时,这个也很重要. 区别不同浏览器的CSS hack写法: 区别IE6与FF:  ...

  9. 最新区分兼容IE6/IE7/IE8/IE9/FF的CSS HACK写法和Css if hack条件语法操作说明

    自从安装了IE8.0正式版本!木头 就对基本的几个 CSS HACK的做一下归纳!希望对网页前端布局DIV+CSS的实施者有所帮助! 本文就主要以:IE6+IE7+IE8+IE9+FF为主要研究对象 ...

随机推荐

  1. java的Random()类使用方法

    //随机生成1~100之间的一个整数 int randomNumber = (int)(Math.random() * 100) + 1; System.out.println(randomNumbe ...

  2. 触摸控(触摸与移动 Touch & Mobility)的官方教程

    http://blogs.msdn.com/b/linanw/archive/2010/05/02/windows-1-wpf-4.aspx

  3. msdn - Developer Library(包括wpf)重要程度——5星*****

    https://msdn.microsoft.com/zh-cn/library/ms754242(v=vs.110).aspx https://msdn.microsoft.com/zh-cn/li ...

  4. APP测试的那些坑

    在记录app测试走过的那些坑之前,先总结下app测试的工作主要有哪些:   1.功能测试,无论是什么软件产品,必不可少的就是功能测试.我们需要测试这款app产品的功能是否完善,是否符合客户需求,是否符 ...

  5. 算法练习3---水仙花数java版

    所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身. java程序代码如下: public class ArithTest { public static void ...

  6. hdu 1847 Good Luck in CET-4 Everybody!(sg)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  7. Webstorm设置Node.js智能提示

    这两天在学习Node.js,在Webstorm上进行编辑时发现竟然没有智能提示!所以写这篇文章来帮助大家度过这个坑! File -> Settings -> Languages&F ...

  8. 数组中累加和为k的最大子数组的长度

    package com.hzins.suanfa; import java.util.HashMap; public class demo { /** * 数组中累加和为k的最大子数组的长度 * @p ...

  9. git教程1-git工作原理与初始化仓库

    一.git工作原理 1.git是版本控制器,因此管理的是版本,每一次提交commit就是新建一个版本. 2.分支:git主分支可以存放一个阶段已经完成好的版本,而修改版本则放置在次分支上. 3.融合: ...

  10. fastCGI模块

    这个模块允许nginx同FastCGI协同工作,并且控制哪些参数将被安全传递.例: location / { fastcgi_pass localhost:9000; fastcgi_index in ...