瀏覽器相容性問題解決方案之CSS,已在IE、FF、Chrome測試
最近在跟一個同學共同整理一個關於瀏覽器相容性問題的文件,我們主要是找出在主流瀏覽器中出現哪些問題,如何解決這個問題,並給出例項。在這之前,需要明白一下幾個問題。
什麼是瀏覽器相容問題?
所謂的瀏覽器相容性問題,是指因為不同的瀏覽器對同一段程式碼有不同的解析,造成頁面顯示效果不統一的情況。在大多數情況下,我們的需求是,無論使用者用什麼瀏覽器來檢視我們的網站或者登陸我們的系統,都應該是統一的顯示效果。所以瀏覽器的相容性問題是前端開發人員經常會碰到和必須要解決的問題。
為什麼會出現瀏覽器相容問題?
瀏覽器相容問題的出現,是因為各個瀏覽器對W3C標準支援的程度不同而導致的。如果網頁都是一個標準的話,也不會又這種問題,但微軟把自己當成了標準,不遵循網頁的規範,所以一些網頁即使語法錯誤也會在IE正常顯示,而在FF,谷歌瀏覽器等不同核心的瀏覽器中出現“相容問題”,其實是網頁不遵循Web標準。
當前主瀏覽器的核心是什麼?
1) Trident:IE瀏覽器使用的核心,該核心程式在1997年的IE4中首次被採用,是微軟在Mosaic程式碼的基礎之上修改而來的,並沿用到目前的IE7。Trident實際上是一款開放的核心,其介面核心設計的相當成熟,因此才有許多采用IE核心而非IE的瀏覽器湧現(如 Maxthon、TheWorld 、TT、GreenBrowser、AvantBrowser等)。
2) Geckos: Netcape6開始採用的核心,後來的FF也採用了該核心,Geckos的特點是程式碼完全公開,因此,其可開發程度很高,全世界的程式設計師都可以為其編寫程式碼,增加功能。
3) Presto:目前Opera採用的核心,該核心在2003年的Opera7中首次被使用,該款引擎的特點就是渲染速度的優化達到了極致,也是目前公認網頁瀏覽速度最快的瀏覽器核心,然而代價是犧牲了網頁的相容性。
4) Webkit:Safari瀏覽器使用的核心。Google的Chrome瀏覽器也是採用Webkit。Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來,它們都是自由軟體,在GPL條約下授權,同時支援BSD系統的開發。所以Webkit也是自由軟體,同時開放原始碼。在安全方面不受IE、Firefox的制約,所以Safari瀏覽器還是比較安全的瀏覽器。
我整理的一些例項,都是在谷歌、IE7、IE8、IE9、IE10、FF中測試過。
例項:
1) 隱藏瀏覽器的滾動條
問題:
隱藏瀏覽器的滾動條
解決:
1) 只有ie7支援<bodyscroll="no">
2) 除ie7不支援body{overflow:hidden}
3) 所有瀏覽器html{overflow:hidden}
例項:
1) 只有ie7支援<body scroll="no">
<body scroll="no" ></body>
2) 除ie7不支援 body{overflow:hidden}
<body style="overflow:hidden" ></body>
3) 所有瀏覽器 html{overflow:hidden}
<body style="overflow:hidden" ></body>
2) 禁用中文輸入法的問題
問題:
不能在輸入框中輸入漢字
解決:
用ime-mode:disabled,只在ie系列和ff中有效,谷歌中,尚未找到方法
例項:
<style type=text/css>
body{text-align:center;width:900px;position: relative;margin:0 auto;padding:0;}
#text{
background-position: center center; background-repeat: no-repeat;width:600px;height:400px;ime-mode:Disabled;
}
</style>
<body>
<div style="margin-top:50px;">
<textarea type="text" id="text" onfocus="if(this.value=='切換輸入法,在此輸入中文試試...')this.value=''" title="試試">切換輸入法,在此輸入中文試試...</textarea>
</div><br /><center>如不能顯示效果,請按Ctrl+F5重新整理本頁</center>
</body>
3) 禁用貼上的問題
問題:
不能將內容複製到輸入框中
解決:
onpaste="returnfalse",瀏覽器通用
例項:
<style type=text/css>
body{text-align:center;width:900px;position: relative;margin:0 auto;padding:0;}
#text{
background-position: center center; background-repeat: no-repeat;width:600px;height:400px;ime-mode:Disabled;
}
</style>
<body>
<div style="margin-top:50px;">
<textarea type="text" id="text" onpaste="return false" onfocus="if(this.value=='在此貼上試試...')this.value=''" title="試試">在此貼上試試...</textarea>
</div><br /><center>如不能顯示效果,請按Ctrl+F5重新整理本頁</center>
</body>
4) 超連結訪問過後hover樣式不出現的問題
問題:
點選超連結後,hover、active樣式沒有效果
解決:
改變CSS屬性的排列順序:L-V-H-A
例項:
<style type="text/css">
a:link {color: #FF0000} /* 未訪問的連結 */
a:visited {color: #00FF00} /* 已訪問的連結 */
a:hover {color: #FF00FF} /* 當有滑鼠懸停在連結上 */
a:active {color: #0000FF} /* 被選擇的連結 */
</style>
<body>
<a href="http://blog.csdn.net/dandanzmc" target="_blank" id="blog">歡迎訪問我的部落格</a>
</body>
5) li中的內容以省略號顯示
問題:
li中內容超過長度時,想以省略號顯示,此方法適用於ie7、8、9、10,谷歌,ff瀏覽器
解決:
li{list-style-type:none;
width:200px;
white-space:nowrap;
text-overflow:ellipsis;
overflow: hidden;
}
例項:
<style type="text/css">
li{
list-style-type:none;
width:200px;
white-space:nowrap;
text-overflow:ellipsis;
overflow: hidden;
}
</style>
<body>
<li>
11月24日,在湖南耒陽西站買票的劉麗因“涉嫌盜竊”突然被警方帶走。在湖南被拘12天,又轉至青海接受調查。待真相大白,劉麗說噩夢不堪回首:“他們搜我的身,屋裡有攝像頭的……那些天我聽得最多的就是‘程式’,這二字在我心中的含義已經變了。”
</li>
</body>
6) 使連續長欄位自動換行
問題:
當div框固定高度寬度後,輸入的文字超過div寬度,超出這個長度,不換行
解決:
word-wrap:break-word
例項:
<style type="text/css">
<!--
div
{
width:300px;
word-wrap:break-word;
border:1px solid red; }
-->
</style>
<body>
<div id="ff">這裡是一行很長的文字aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>
</body>
暫時就整理到這些,當然不止這些,還有很多。真心覺得,這一塊要整理的東西很多,有時候,當這些CSS配上不同的框架後,其樣式又有變化。不同的情況不同的解決方案,這幾個只是簡單的一種相容問題。以後多注意點。
另外關於這部分CSS相容性問題請看總結之:瀏覽器相容性問題解決方案之CSS——已在IE、FF、Chrome測試
關於這部分JS的相容性問題請看總結之:瀏覽器相容之JavaScript篇——已在IE、FF、Chrome測試
相關文章
- angular瀏覽器相容性問題解決方案Angular瀏覽器
- 主流瀏覽器相容性問題與解決方案瀏覽器
- 解決ie相容性問題
- 對瀏覽器css相容性的學習理解及問題解決彙總瀏覽器CSS
- 解決Chrome瀏覽器啟動速度慢的問題Chrome瀏覽器
- CSS瀏覽器相容性的4個解決方案:瀏覽器CSS樣式初始化、瀏覽器私有屬性,CSS hack語法和自動化外掛CSS瀏覽器
- [20191118]使用Chrome瀏覽器問題.txtChrome瀏覽器
- 關閉 Chrome 瀏覽器時意外掛起的問題解決了!Chrome瀏覽器
- 幾款瀏覽器相容性測試工具瀏覽器
- 解決Chrome瀏覽器百度網頁開啟很慢的問題Chrome瀏覽器網頁
- 針對ie、safari瀏覽器時間格式化NAN問題解決方法瀏覽器NaN
- 各大瀏覽器滾動條相容性問題瀏覽器
- 如何機智地回答瀏覽器相容性問題瀏覽器
- 【軟體測試】你最常用的web測試-瀏覽器相容性測試Web瀏覽器
- 教你用Chrome 瀏覽器+Postman搞定介面測試Chrome瀏覽器Postman
- microsoft edge是ie瀏覽器嗎 edge瀏覽器和ie瀏覽器一樣嗎ROS瀏覽器
- 圖片在瀏覽器上從http變成https問題的解決方案瀏覽器HTTP
- IE瀏覽器相容瀏覽器
- gulp外掛解決瀏覽器快取問題瀏覽器快取
- 一文解決瀏覽器跨域問題瀏覽器跨域
- ie瀏覽器開啟怎麼是360導航 ie每次開啟都是360瀏覽器怎麼解決瀏覽器
- 瀏覽器相容性瀏覽器
- ie瀏覽器打不開網頁怎麼辦 網路正常但是ie瀏覽器打不開解決方法瀏覽器網頁
- CSS程式碼在不同瀏覽器相容問題CSS瀏覽器
- 超好用的瀏覽器相容性測試工具,趕緊收藏!瀏覽器
- IE多瀏覽器相容性測試軟體 IETester V0.5.4 方多國語言安裝版瀏覽器
- 火狐 和 谷歌Google Chrome 核心瀏覽器 跨域問題谷歌GoChrome瀏覽器跨域
- IE瀏覽器非同步請求無法獲取最新資料的解決方案瀏覽器非同步
- win10ie瀏覽器不支援付款怎麼解決_win10ie瀏覽器不支援付款如何修復Win10瀏覽器
- win10為什麼電腦ie瀏覽器找不到_win10找不到ie瀏覽器的解決方法Win10瀏覽器
- win10chrome瀏覽器奔潰怎麼辦_win10chrome瀏覽器奔潰的解決方法Win10Chrome瀏覽器
- ivew-admin 解決IE10+瀏覽器不相容IE10瀏覽器
- chrome瀏覽器被360導航劫持解決辦法Chrome瀏覽器
- 谷歌Chrome瀏覽器正測試ECH隱私保護功能谷歌Chrome瀏覽器
- vue SPA專案,瀏覽器和nginx反向代理快取問題解決實方案Vue瀏覽器Nginx快取
- 移動端相容性問題解決方案(一)
- 解決IE、firefox瀏覽器下JS的new Date()的值為Invalid Date、NaN-NaN的問題Firefox瀏覽器JSNaN
- 解決csdn關注瀏覽全文問題
- ie瀏覽器怎麼升級 ie瀏覽器版本過低怎麼辦瀏覽器