首頁 web前端 css教學 CSS瀏覽器相容問題集

CSS瀏覽器相容問題集

Apr 05, 2017 am 10:39 AM

CSS對瀏覽器的兼容性有時讓人很頭疼,或許當你了解當中的技巧跟原理,就會覺得也不是難事,從網上收集了IE7,6與Fireofx的兼容性處理方法並整理了一下.對於web2.0的過度,請盡量用xhtml格式寫代碼,而且DOCTYPE 影響 CSS 處理,作為W3C的標準,一定要加DOCTYPE聲名.  

#CSS技巧

1.p的垂直居中問題

 vertical-align:middle; 將行距增加到和整個p一樣高 line-height:200px; 然後插入文字,就垂直居中了。缺點是控制內容不要換行  

2. margin加倍的問題
   
# 設定為float的p在ie下方設定的margin會加倍。這是一個ie6都存在的bug。解決方案是在這個p裡面加上display:inline;   


例如:   
<#p id=”imfloat”>   
# 對應的css為   

# #IamFloat{   

# float:left;   
## margin:5px;/*IE下理解為10px*/   

## display:inline;/*IE下再理解為5px*/}  


#3.浮動ie產生的雙倍距離#    
# #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;   

#4 IE與寬度和高度的問題 
 
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 min-height: auto; min-width: 80px min-height: auto; min-width: 80px min-height: auto; min-width: 80px min-height: auto; min-width: 80px min-height: auto;
> 頁面的最小寬度
   # min-width是個非常方便的CSS指令,它可以指定元素最小也不能小於某個寬度,這樣就能保證排版一直都正確。但IE不認得這個,而它實際上把width當作最小寬度來使。為了讓這項指令在IE上也能用,可以把一個

 放到  標籤下,然後為p指定一個類別,然後CSS這樣設計:   
#container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );}   

















#######################################################################################################################' 第一個min-width是正常的;但第2行的width使用了Javascript,這只有IE才認得,這也會讓你的HTML文件不太正規。它實際上透過Javascript的判斷來實現最小寬度。  #########6.p浮動IE文字產生3像素的bug###   ####### 左邊物件浮動,右邊採用外補丁的左邊距來定位,右邊物件內的文字會離左邊有3px的間距.   ####### #box{ float:left; width:800px;}  ######## #left{ float:left; width:50%;}  ########## #right{ width:50%;}  ######## *html #left{ margin-right:-3px; //這句話是關鍵}   ###   #######  

  ###############################################################”  

  #######

  #########7.IE捉迷藏的問題###   ###### 當p應用複雜的時候每個欄中又有一些鏈接,p等這個時候容易發生捉迷藏的問題。   #### 有些內容顯示不出來,當滑鼠選擇這個區域是發現內容確實在頁面。 解決方法:對#layout使用line-height屬性 或給#layout使用固定高和寬。頁面結構盡量簡單。  #########8.float的p閉合;清除浮動;自適應高度;###   ######①例如:<#p id=”floatA” ><#p id=”floatB” ><#p id=”NOTfloatC” >這裡的NOTfloatC不希望繼續平移,而是希望往下排。 (其中floatA、floatB的屬性已經設定為float:left;)  

這段程式碼在IE中毫無問題,問題出在FF。原因是NOTfloatC並非float標籤,必須將float標籤閉合。在 <#p class=”floatB”> <#p class=”NOTfloatC”>之間加上 <#p class=”clear”>這個p一定要注意位置,而且必須與兩個具有float屬性的p同級,之間不能有嵌套關係,否則會產生異常。 並且將clear這種樣式定義為如下即可: .clear{ clear:both;}   

# ②作為外部 wrapper 的 p 不要定死高度,為了讓高度能自動適應,要在wrapper裡面加上overflow:hidden; 當包含float的box的時候,高度自動適應在IE下無效,這時候應該觸發IE的layout私有屬性(萬惡的IE啊!)用zoom:1;可以做到,這樣就達到了兼容。  
例如某一個wrapper如下定義:   


# .colwrapper{ overflow:hidden; zoom:1; margin:5px auto;}   

## ③對於排版,我們用得最多的css描述可能就是float:left.有的時候我們需要在n欄的float p後面做一個統一的背景,譬如:  
#   

##  

  
#  

  
##  

   
#

  
# 例如我們要將page的背景設定成藍色,以達到所有三欄的背景顏色是藍色的目的,但是我們會發現隨著left center right的向下拉長,而page居然保存高度不變,問題來了,原因在於page不是float屬性,而我們的page由於要居中,不能設定成float,所以我們應該這樣解決  
#   

##    
 

  
#  

  
##  

  









#############################”  

  ####

  #### 再嵌入一個float left而寬度是100%的p解  ####### ④萬用float 閉合(非常重要!)   #### 關於 clear float 的原理可參見 [How To Clear Floats Without Structural Markup],將以下程式碼加入Global CSS 中,給需要閉合的p class="clearfix"  CSS 中,給需要閉合的p class="clearfix"  /* Clear Fix */   ########## .clearfix:after { content:"."; display:block; height:0; clear:both; visibility:hidden; }   ###### .clearfix { display:inline-block; }   ##############################################################################” /* Hide from IE Mac */   ############# .clearfix {display:block;}   ##### /* End hide from IE Mac */   ##### /* end of clearfix */   ####### 或這樣設定:.hackbox{ display:table; //將物件作為區塊元素級的表格顯示}  ###  ###

以上是CSS瀏覽器相容問題集的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 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)

熱門話題

Java教學
1675
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

紙張形式 紙張形式 Apr 16, 2025 am 11:24 AM

購買或建造是技術的經典辯論。自己構建東西可能會感覺更便宜,因為您的信用卡賬單上沒有訂單項,但是

託管您自己的非JavaScript分析的選項 託管您自己的非JavaScript分析的選項 Apr 15, 2025 am 11:09 AM

有很多分析平台可幫助您跟踪網站上的訪問者和使用數據。也許最著名的是Google Analytics(廣泛使用)

'訂閱播客”鏈接應在哪裡? '訂閱播客”鏈接應在哪裡? Apr 16, 2025 pm 12:04 PM

有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

See all articles