首頁 web前端 css教學 CSS hack實現 CSS完美相容IE6/IE7/FF的通用方法_經驗交流

CSS hack實現 CSS完美相容IE6/IE7/FF的通用方法_經驗交流

May 16, 2016 pm 12:06 PM
css hack 相容 完美

關於CSS對各個瀏覽器兼容已經是老生常談的問題了, 網絡上的教程遍地都是.以下內容沒有太多新穎, 純屬個人總結, 希望能對初學者有一定的幫助.

一、CSS HACK
以下兩種方法幾乎能解決現今所有HACK.

1, !important

隨著IE7對!important的支持, !important 方法現在只針對IE6的HACK.(注意寫法.記得該聲明位置需要提前.)



2, IE6/IE77對FireFox

* html 與 *html 是IE特有的標籤, firefox 暫不支援.而* html 又為 IE7特有標籤.


三、其他相容技巧

1, FF下為 div 設定 padding 設定後會導致 width 和 height 增加, 但IE不會.(可用!important解決)
2, 居中問題.
1).垂直居中.將 line-height 設定為 當前 div 相同的高度, 再透過 vertical- align: middle.( 注意內容不要換行.)
2).水平居中. margin: 0 auto;(當然不是萬能)
3, 若需給 a 標籤內內容加上 樣式, 需要設定 display: block;(常見於導航標籤)
4, FF 和 IE 對 BOX 理解的差異導致相差 2px 的還有設為 float的div在ie下 margin加倍等問題.
5, ul 標籤在 FF 下方預設有 list-style 和 padding .最好事先聲明, 以避免不必要的麻煩. (常見於導航標籤和內容列表)
6, 作為外部 wrapper 的 div 不要定死高度, 最好還加上 overflow: hidden.以達到高度自適應.
7, 關於手形遊標. cursor: pointer. 而hand 只適用於 IE.

1 針對firefox ie6 ie7的css樣式 
現在大部分都是用!important來hack,對於ie6和firefox測試可以正常顯示,
但是ie7對!important可以正確解釋,會導致頁面沒依要求顯示!找到一個針
對IE7不錯的hack方式就是使用“* html”,現在用IE7瀏覽一下,應該沒有問題了。
現在寫一個CSS可以這樣: 

#1 { color: #333; } /* Moz */ 
* html #1 { color: #666; } / html #1 { color: #666; } / IE. BR>* html #1 { color: #999; } /* IE7 */ 
那麼在firefox下字體顏色顯示為#333,IE6下字體顏色顯示為#666,IE7下字體顏色顯示為#999。

2 css佈局中的居中問題 
主要的樣式定義如下:

body {TEXT-ALIGN: center;}
#center { MARGIN-RIGHT: auto; MARGIN -LEFT: auto; } 
說明:
首先在父級元素定義TEXT-ALIGN: center;這個的意思就是在父級元素內的內容居中;對於IE這樣設定就已經可以了。
但在mozilla中不能居中。解決方法就是在子元素定義時候設定時再加上「MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 」
需要說明的是,如果你想用這個方法讓整個頁面要居中,建議不要套在一個DIV裡,你可以依序拆出多個div,
只要在每個拆出的div裡定義MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。

3 盒模型不同解釋

#box{ width:600px; //for ie6.0- w\idth:500px; //for ff ie6.0}
#box { width:600px!important //for ff width:600px; //for ff ie6.0 width /**/:500px; //for ie6.0-} 收到距離

#box{ float:left; width:100px; margin:0 0 0 100px; //這種情況之下IE會產生200px的距離 display:inline; //使浮動忽略>這裡細說一下block,inline兩個元素,Block元素的特點是:總是在新行上開始,高度,寬度,行高,邊距都可以控制(塊元素);Inline元素的特點是:和其他元素在同一行,...無法控制(內嵌元素);

#box{ display:block; //可為內嵌元素模擬為區塊元素 display:inline; //實現相同行排列的效果 diplay:table;

IE不認得min-這個定義,但實際上它把正常的width和height當作有min的情況來使。這樣問題就大了,如果只用寬度和高度,
正常的瀏覽器裡這兩個值就不會變,如果只用min-width和min-height的話,IE下面根本等於沒有設定寬度和高度。
例如要設定背景圖片,這個寬度是比較重要的。要解決這個問題,可以這樣:
#box{ width: 80px; height: 35px;}html>body #box{ width: auto; height: auto; min-width: 80px; height: auto; min-width: 80px; 

6 頁面的最小寬度

min-width是個非常方便的CSS指令,它可以指定元素最小也不能小於某個寬度,這樣就能保證排版一直正確。但IE不認得這個,
而它實際上把width當作最小寬度來使。為了讓這項指令在IE上也能用,可以把一個

 放到  標籤下,然後為div指定一個類別:
然後CSS這樣設計:
#container{ min-width : 600px; width:expression(document.body.clientWidth 第一個min-width是正常的;但第2行的width使用了Java,這只有Javath IE才認得,這也會讓你的HTML文件不太正規。它實際上透過Javascript的判斷來實現最小寬度。

7 清除浮動

.hackbox{ display:table; //將物件作為區塊元素級的表格顯示}或.hackbox{ clear:both;}
或加入:after (偽對象),設定在對象後發生的內容,通常和content配合使用,IE不支持此偽對象,非Ie 瀏覽器支持,
所 以並不影響到IE/WIN瀏覽器。這種的最麻煩的......#box:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden;} 

8 DIV浮動IE文字產生3像素的bug

左邊物件浮動,右邊採用外補丁的左邊距來定位,右邊物件內的文字會離左邊有3px的間距.

#box{ float :left; width:800px;}#left{ float:left; width:50%;}#right{ width:50%;}*html #left{ margin-right:-3px; //這句話是關鍵關鍵} HTML代碼
 
 


9 屬性選擇器(這個不能算是相容,是隱藏css的一個bug)

p[id]{}div[id]{}
這個對於IE6.0和IE6.0以下的版本都隱藏,FF和OPera作用
屬性選擇器和子選擇器還是有區別的,子選擇器的範圍從形式來說縮小了,屬性選擇器的範圍比較大,如p[ id]中,所有p標籤中有id的都是同樣式的.

10 IE捉迷藏的問題

當div應用複雜的時候每個欄中又有一些鏈接,DIV等到這個時候容易發生捉迷藏的問題。
有些內容顯示不出來,當滑鼠選擇這個區域是發現內容確實在頁面。
解決方法:對#layout使用line-height屬性 或給#layout使用固定高和寬。頁面結構盡量簡單。

11 高度不適應

高度不適應是當內層物件的高度改變時外層高度不能自動進行調節,特別是當內層物件使用
margin 或paddign時。
例:
 

p物件中的內容

 
 
CSS:#box {background-color: #eee; } 
#box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }
解決方法:在P物件上下各加2個空的div物件CSS程式碼:.1{height:0px;overflow:hidden;}或為DIV加上border屬性。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
2 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

h5怎麼做進度條 h5怎麼做進度條 Apr 06, 2025 pm 12:09 PM

使用 HTML5 或 CSS 創建進度條:創建進度條容器。設置進度條寬度。創建進度條內部元素。設置進度條內部元素寬度。使用 JavaScript、CSS 或進度條庫顯示進度。

h5表格邊框怎麼設置 h5表格邊框怎麼設置 Apr 06, 2025 pm 12:18 PM

在 HTML 中,通過 CSS 設置 H5 表格邊框:引入 CSS 樣式表,使用 border 屬性(包括 border-width、border-style 和 border-color 子屬性)設置邊框樣式,並應用樣式到表格元素。此外,還可以設置特定的邊框樣式,如 border-top、border-right、border-bottom 和 border-left。

h5項目怎麼運行 h5項目怎麼運行 Apr 06, 2025 pm 12:21 PM

運行 H5 項目需要以下步驟:安裝 Web 服務器、Node.js、開發工具等必要工具。搭建開發環境,創建項目文件夾、初始化項目、編寫代碼。啟動開發服務器,使用命令行運行命令。在瀏覽器中預覽項目,輸入開發服務器 URL。發布項目,優化代碼、部署項目、設置 Web 服務器配置。

h5怎麼製作點擊圖標 h5怎麼製作點擊圖標 Apr 06, 2025 pm 12:15 PM

製作 H5 點擊圖標的步驟包括:在圖像編輯軟件中準備方形源圖像。在 H5 編輯器中添加交互性,設置點擊事件。創建覆蓋整個圖標的熱點。設置點擊事件的操作,如跳轉頁面或觸發動畫。導出 H5 文檔為 HTML、CSS 和 JavaScript 文件。將導出的文件部署到網站或其他平台。

h5怎麼製作彈窗 h5怎麼製作彈窗 Apr 06, 2025 pm 12:12 PM

H5 彈窗製作步驟:1. 確定觸發方式(點擊式、時間式、退出式、滾動式);2. 設計內容(標題、正文、行動按鈕);3. 設置樣式(大小、顏色、字體、背景);4. 實現代碼(HTML、CSS、JavaScript);5. 測試和部署。

h5兼容問題怎麼解決 h5兼容問題怎麼解決 Apr 06, 2025 pm 12:36 PM

解決 H5 兼容問題的方法包括:使用響應式設計,允許網頁根據屏幕尺寸調整佈局。採用跨瀏覽器測試工具,在發布前測試兼容性。使用 Polyfill,為舊瀏覽器提供對新 API 的支持。遵循 Web 標準,使用有效的代碼和最佳實踐。使用 CSS 預處理器,簡化 CSS 代碼並提高可讀性。優化圖像,減小網頁大小並加快加載速度。啟用 HTTPS,確保網站的安全性。

h5下拉菜單怎麼做 h5下拉菜單怎麼做 Apr 06, 2025 pm 12:24 PM

製作 H5 下拉菜單包括以下步驟:創建下拉列表、應用 CSS 樣式、添加切換效果和處理用戶選擇。具體步驟如下:使用 HTML 創建下拉列表。使用 CSS 調整下拉菜單的外觀。使用 JavaScript 或 CSS 實現切換效果。監聽 change 事件以處理用戶選擇。

h5進度條怎麼做 h5進度條怎麼做 Apr 06, 2025 am 11:54 AM

製作H5進度條有兩種方法:使用HTML進度條元素和使用JavaScript創建進度條。 HTML進度條元素方法涉及創建進度條元素並設置其最大值和當前值,而JavaScript方法則包括創建進度條容器和一個更新進度條的函數。

See all articles