解決IE8下的一些相容性問題
1.使用meta標籤調節瀏覽器的渲染方式,告訴瀏覽器用哪種核心渲染,360雙核瀏覽器就是在ie和chrome之間來回切換,幫我們判斷使用webkit還是chrome。
使用meta標籤來強制IE8使用最新的核心渲染頁面,程式碼如下:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
一些相容性問題
* 瀏覽器相容問題一:塊屬性標籤float後,又有橫行的margin情況下,在IE6顯示margin比設定的大
問題症狀:常見症狀是IE6中後面的一塊被頂到下一行
碰到頻率:90%(稍微複雜點的頁面都會碰到,float佈局最常見的瀏覽器相容問題)
解決方案:在float的標籤樣式控制中加入 display:inline;將其轉化為行內屬性
備註:我們最常用的就是div+CSS佈局了,而div就是一個典型的塊屬性標籤,橫向佈局的時候我們通常都是用div float實現的,橫向的間距設定如果用margin實現,這就是一個必然會碰到的相容性問題。
瀏覽器相容問題三:設定較小高度標籤(一般小於10px),在IE6,IE7,遨遊中高度超出自己設定高度
問題症狀:IE6、7和遨遊裡這個標籤的高度不受控制,超出自己設定的高度
碰到頻率:60%
解決方案:給超出高度的標籤設定overflow:hidden;或者設定行高line-height 小於你設定的高度。
備註:這種情況一般出現在我們設定小圓角背景的標籤裡。出現這個問題的原因是IE8之前的瀏覽器都會給標籤一個最小預設的行高的高度。即使你的標籤是空的,這個標籤的高度還是會達到預設的行高。
瀏覽器相容問題四:行內屬性標籤,設定display:block後採用float佈局,又有橫行的margin的情況,IE6間距bug
問題症狀:IE6裡的間距比超過設定的間距
碰到機率:20%
解決方案:在display:block;後面加入display:inline;display:table;
備註:行內屬性標籤,為了設定寬高,我們需要設定display:block;(除了input標籤比較特殊)。在用float佈局並有橫向的margin後,在IE6下,他就具有了塊屬性float後的橫向margin的bug。不過因為它本身就是行內屬性標籤,所以我們再加上display:inline的話,它的高寬就不可設了。這時候我們還需要在display:inline後面加入display:talbe。
瀏覽器相容問題五:圖片預設有間距
問題症狀:幾個img標籤放在一起的時候,有些瀏覽器會有預設的間距,加了問題一中提到的萬用字元也不起作用。
碰到機率:20%
解決方案:使用float屬性為img佈局
備註:因為img標籤是行內屬性標籤,所以只要不超出容器寬度,img標籤都會排在一行裡,但是部分瀏覽器的img標籤之間會有個間距。去掉這個間距使用float是正道。(我的一個學生使用負margin,雖然能解決,但負margin本身就是容易引起瀏覽器相容問題的用法,所以我禁止他們使用)
瀏覽器相容問題六:標籤最低高度設定min-height不相容
問題症狀:因為min-height本身就是一個不相容的CSS屬性,所以設定min-height時不能很好的被各個瀏覽器相容
碰到機率:5%
解決方案:如果我們要設定一個標籤的最小高度200px,需要進行的設定為:{min-height:200px; height:auto !important; height:200px; overflow:visible;}
備註:在B/S系統前端開時,有很多情況下我們又這種需求。當內容小於一個值(如300px)時。容器的高度為300px;當內容高度大於這個值時,容器高度被撐高,而不是出現滾動條。這時候我們就會面臨這個相容性問題。
瀏覽器相容問題七:透明度的相容CSS設定:
css設定透明度,首先需要知道的是在瀏覽器中的不同使用,一般在ie中用的是filter:alpha(opacity=0);這個屬性來設定div或者是塊級元素的透明度,而在firefox中,一般就是直接使用opacity:0,對於相容的,一般的做法就是在書寫css樣式的將2個都寫上就行,就能實現相容,具體看程式碼:
方法一:
<html>
<head>
#div1{
width:200px;
height:600px;
margin:0 auto;
opacity:0;
filter:alpha(opacity=0); //0 代表的是隱藏,就是透明度最低。
}
</head>
<body>
<div id='div1'>
<p>測試文字。</p>
</div>
</body>
</html>
方法二:
CSS - firefox與IE透明度(opacity)設定區別
IE:
filter:alpha(opacity=sqlN)
其中 sqlN的值域為[0, 100]
Firefox,Chrome和Safari:
opacity:sqlN
其中sqlN的值域為[0, 1]
方法三:
.ieCss {
display:-moz-inline-box;
display:inline-block;
width:100;
height:100;
background-color:red;
filter:alpha(opacity=50);
}
.fireFox35Css {
display:-moz-inline-box;
display:inline-block;
width:100;
height:100;
background-color:blue;
opacity:0.5;
}
相關推薦
解決IE8下的一些相容性問題
1.使用meta標籤調節瀏覽器的渲染方式,告訴瀏覽器用哪種核心渲染,360雙核瀏覽器就是在ie和chrome之間來回切換,幫我們判斷使用webkit還是chrome。 使用meta標籤來強制IE8使用最新的核心渲染頁面,程式碼如下: <meta h
position:fixed 在ie8下的相容性處理(附帶ie8以下不透明度相容)
1、解決fixed相容性核心程式碼: .ie{ _position: absolute; _clear: both; _top:expression(eval(document.compatMode &
解決IE8下不支援border-radius的問題
最近做了一個專案,是讓相容IE8瀏覽器的,遇到了IE8不支援border-radius和box-shadow的問題,在網上找了解決方案,主要是藉助於PIE.htc,具體的過程,發一個寫的比較好的文章(看連線文章之後,如果您還沒有解決問題,建議回過頭來看看我下面的注意事項,否則
解決IE8下opacity屬性失效問題,無法隱藏元素 解決IE8下opacity屬性失效問題
解決IE8下opacity屬性失效問題 由於opacity屬性存在相容性問題,所以在IE8下,用opacity來設定元素的透明度,會失效,從而導致頁面的樣式問題。 在IE8及其更早的瀏覽器下,我們可以使用filter屬性,來代替opacity屬
解決IE8下CSS3選擇器 :nth-child() 不相容的問題
1.定義和用法 :nth-child(n) 選擇器匹配屬於其父元素的第 N 個子元素,不論元素的型別。 n 可以是數字、關鍵詞或公式。 <ul> <li>1&l
解決ie8下的iframe背景不透明為白色的問題
'background-color' 特性的預設值為 ''''transparent'''',即透明;但是IE6/IE7/IE8中 BODY 元素的背景色不是 transparent,而是 #F
解決IE8下提示'console'未定義錯誤
解決方法: 第一個思路就是建立一個console物件,實際就是console.info方法,為了能夠使用console的log、warn等方法還是最好寫個適用性強的好了,程式碼如下: window.console = window.console || (fu
解決IE8下div 不顯示背景圖片的問題
最初是這樣寫的: background: url(../images/goods.png)no-repeat!important; 在ie8下不顯示,改成如下: background: url(../images/goods.png) no-repeat!important; 可以顯示了。 看出差
解決IE8下圓角無法顯示的問題
.k-pager-numbers.k-state-selected{ border-width: 1px; border-style: solid; border-radius: 13px; width: 2em; text-align: ce
解決IE8下,float右浮動不能與前面元素顯示在同一行
問題圖片(需要的效果是,返回按鈕與專案名稱在同一行,並且靠右): 原因: 當非float的元素和float的元素在一起的時候,如果非float元素在先,那麼float的元素將被排斥 解決方案: 將
使用ie的filter來解決rgba在IE8下沒有效果的問題
pro 執行 tty tran ie8 sco clas css tex 使用ie的filter來解決rgba在IE8下沒有效果的問題,css代碼如下: background: rgba(255,255,255,0.1); filter:progid:DXImageTr
ie8下數組不支持indexOf方法解決方法
不支持 nts 值轉換 原型 blog span floor color art if (!Array.prototype.indexOf){ Array.prototype.indexOf = function(elt){ var l
IE8下,JS不識別indexOf的解決辦法
把這段程式碼放在你的indexOf方法之前:(在頁面中定義IndexOf方法) if (!Array.prototype.indexOf){ Array.prototype.indexOf = functi
nmake下一些錯誤的解決辦法
最近需要安裝一下liblineaner這個庫,https://github.com/cjlin1/liblinear windows下面的安裝過程如下: 1. Open a dos command box and change to liblinear directory. If en
IE8下rgba()不相容的解決方法
CSS: //一般的高階瀏覽器都支援 background: rgba(255,255,255,0.1); //IE8下 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#19ffffff,e
解決getElementsByClassName()在IE8下的相容問題
getElementsByClassName,這個方法讓我們可以通過 class 屬性中的類名來訪問元素,但是IE9 以下的瀏覽器不支援 。為解決這個問題,我們寫一個相容函式 getByClass() 實現在IE低版本和現代瀏覽器中都能通過類名來獲取節點。 function getBy
在ie7、ie8下 td th寬度解決方法
<!doctype html> <html> <head> <meta charset=""utf-8""> <style> .title {background-color:#ccc;width: 15
IE8下table th和td寬度樣式混亂解決辦法
先看看一個對比(IE8下的table樣式) 上面這種看似沒有問題,接下來看下一個: 、 當table表格的 td內容很多並且換行 的時候,那麼在IE8下的table樣式就會混亂。此時無論給th還是td設定寬度都是 無效的!!! 言簡意賅,先給解決方
IE8下select出現bug解決
select控制元件在IE8下出現的bug(IE6、IE7都OK的) document.all.seltZw.add(window.Option(province[i], province[i])); 改為-》 document.getElementById("seltZw
linux下配置apache虛擬主機解決方案以及一些問題
回南昌了,發現這邊很多公司都是用apache的,上海那邊都是使用nginx伺服器,可見差距啊 博主今天興致來了,正好之前在Mac虛擬機器上配了一臺apache伺服器,於是就到自己Mac虛擬機器上配置虛擬主機吧(老早的時候我是在win上配置的虛擬主機) 1,首先我配置時候,就