css**相容主要由hack和filter兩種方法來解決相關問題。
hack:一種相容css在不同瀏覽器中正確顯示的方法。
filter:一種特殊的瀏覽器或瀏覽器組顯示或隱藏規則或宣告的方法。
注意:hack是一種非官方技術,主要依賴各種字元組合,以及規則和宣告的重複定義實現在不同瀏覽器之間達到相同的效果。
但是hack也有***,如降低**的可讀性,增加了**的負擔。
設計css hack 和 filter通常有兩種方法:
一般建議使用第二種方法來實現瀏覽器的相容。
最新最權威的css filter技術彙總:
顯示模式:各大瀏覽器廠商為了實現對標準網頁和傳統網頁的相容性,分別為瀏覽器制定了幾套網頁顯示方案。
微軟從ie6.0以上版本瀏覽器嵌入了兩種顯示方案分別是:standards mode(標準模式)和 quirks mode(怪異模式)。
標準模式:瀏覽器根據w3c組織制定的標準網頁規範來顯示頁面。
怪異模式:頁面將以ie5顯示頁面的方式來呈現網頁,以保證與過去非標準網頁的相容性。
它們最大的區別是對盒模型解析的差異。
firefox從1.0以上版本開始支援3種顯示模式:quirks mode、almost standards mode (幾乎標準模式)和standards mode。
其中almost standards mode對應於ie和opera的standards mode,該模式除了在處理**方式方面有一些細微的差異之外,與標準模式基本相同。
火狐的顯示模型細節差異可以參考:
opera從6.0版本開始支援與ie相同的顯示模式:quirks mode 和 standards mode,關於顯示模式的細節說明可以參考:
html4.0過濾型:
網頁將遵循w3c制定的標準進行解析。
html4.0嚴格型:
html4.0框架型:
以及xhml1.0過渡型、xhtml1.0嚴格型、xhtml框架型3個文件型別,但如果不給網頁定義文件型別,ie瀏覽器會以怪異模式顯示網頁。
沒有提供文件型別的版本:
html2.0版本:
html3.0版本:
html3.2版本:
注意: 本示例僅在ie6.0以上版本瀏覽器有效,其他瀏覽器不支援此示例的顯示差異。
條件過濾樣式:
語法:詳解說明:
條件修飾關鍵字:
lte:小於或等於某個版本的ie瀏覽器。
lt:小於某個版本的ie瀏覽器。
gte:大於或等於某個版本的瀏覽器。
gt:大於某個版本的ie瀏覽器。
!:不等於某個版本的ie瀏覽器。
如果為某個版本的ie瀏覽器定義樣式,則可以把樣式放置在ie條件語句中。
例如:同時還可以為不同版本瀏覽器定義不同的外部樣式表,再用ie條件語句為不同版本的ie瀏覽器匯入不同的檔案,從而實現瀏覽器的相容性處理。
如:選擇器過濾樣式:
在標準網頁中,html元素被認為根元素,其他元素都被包括其中。但是在ie6及以下版本的瀏覽器中預設乙個匿名根元素,html元素被認為是它的子元素。
過濾宣告:
ie6環境,如:
div
注意,注釋的位置是在屬性的後面,冒號的前面,且與屬性名中間隔乙個空格。
ie5.5環境,如:
div
注意,注釋的位置是在冒號的後面,且與冒號中間隔乙個空格。
ie5環境,如:
div
注意,注釋的位置是在屬性名的後面,冒號的前面,且注釋中間隔乙個空格。這個過濾器同時會適應mac系統中的ie5和ie4。
如:div
它不僅適用上面系統中的ie版本,也適用ie5.2/os作業系統的瀏覽器版本。
利用voice-family屬性設計相容ie5.5及更低版本瀏覽器的宣告。
如:div,content "\";
voice-family:inherit;
height:200px;
width:200px;
border:solid 1px red;
}注意:
voice-family屬性可以指定網頁內容用哪種聲音進行朗讀,適用於盲人閱讀器等裝置上。
ie5.5及更低版本瀏覽器中由於不能夠識別,同時錯誤解析轉義字元,並認為到voice-family:"\"}"\";這句結束。
其他瀏覽器中顯示為200畫素的紅色框。
ie6及更低版本專用:
*html #element
ie7版本專用:
*+html #element
ie7+及符合現代標準瀏覽器專用:
div>#element
非ie現代標準瀏覽器專用:
html>/**/body #element
\9:選擇ie6+
\0:選擇ie8+和opera15以下的瀏覽器
如:
.test
使用檢測工具:
w3c css驗證服務:
css雜記 css相容處理雜記 1
1 ios上輸入框 input 輸入區域 textarea 在框體內側頂部會有灰色陰影,去掉的方法 input textarea 2 chrome在輸入框 input 輸入區域 textarea 被聚焦 focus 時,會多出藍色 黃色邊框,去掉方法 input focus textarea foc...
css雜記 css相容處理雜記 2
1 ie上對於沒有內容的a標籤,使用display block會失效 解決辦法 給這個a設乙個背景色 然後透明度調成透明即可 2 css強制換行 word wrap break word 3 css一行太長,最後用省略號表示 display inline block text overflow el...
相容之CSS常見相容
1 雙倍浮動bug 描述 塊狀元素設定了float屬性後,又設定了橫向的margin值,在ie6下顯示的margin值要比設定的值大 解決方案 給float的元素新增 display inline 將其轉換為內聯元素 2 表單元素行高不一致 解決方案 給表單元素新增vertical align mi...