1. 程式人生 > >css中線性漸變相容性處理

css中線性漸變相容性處理

研究了一下css3中線性漸變的相容性問題處理,本來是想要自己總結的,但是發現張鑫旭大神關於這個問題寫的很清楚了,所以就直接轉載了,寫得很好,很清晰

IE瀏覽器下的漸變背景

IE瀏覽器下漸變背景的使用需要使用IE的漸變濾鏡。如下程式碼:

filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=1);

相關說明:
上面的濾鏡程式碼主要有三個引數,依次是:startcolorstr, endcolorstr, 以及gradientType。
其中gradientType=1代表橫向漸變,gradientType=0代表縱向淅變。startcolorstr=”色彩” 代表漸變漸變起始的色彩,endcolorstr=”色彩” 代表漸變結尾的色彩。

上面程式碼實現的是紅色至藍色的漸變,但是不含透明度變化,這是由於IE目前尚未支援opacity屬性以及RGBA顏色,要實現IE下的透明度變化,還是需要使用IE濾鏡,IE的透明度濾鏡功能比較強大,這種強大反而與Firefox或是Safari瀏覽器下的css-gradient背景漸變的用法類似。例如下面的使用:

filter:alpha(opacity=100 finishopacity=0 style=1 startx=0,starty=5,finishx=90,finishy=60)

其中各個引數的含義如下:
opacity表示透明度,預設的範圍是從0 到 100,他們其實是百分比的形式。也就是說,0代表完全透明,100代表完全不透明。 
finishopacity 是一個可選引數,如果想要設定漸變的透明效果,就可以使用他們來指定結束時的透明度。範圍也是0 到 100。
style用來指定透明區域的形狀特徵:
0 代表統一形狀
1 代表線形
2 代表放射狀
3 代表矩形。
startx 漸變透明效果開始處的 X座標。
starty 漸變透明效果開始處的 Y座標。 
finishx 漸變透明效果結束處的 X座標。 
finishy 漸變透明效果結束處的 Y座標。

綜合上述,實現IE下含透明度變化紅藍垂直漸變的程式碼如下:

.gradient{
  width:300px; height:150px;
  filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=1);
  -ms-filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=1);
}

<div class="gradient"></div>

結果如下圖:

IE6下含半透明的漸變背景效果 張鑫旭-鑫空間-鑫生活

三、Firefox瀏覽器下的漸變背景

對於Firefox瀏覽器下(Firefox 3.6+)漸變背景的實現需使用CSS3漸變屬性,-moz-linear-gradient屬性,在之前文章我詳細介紹了Firefox3.6下漸變背景的實現,您有興趣可以狠狠地點選這裡:CSS漸變之CSS3 gradient在Firefox3.6下的使用 。這裡我就不再具體講述了,對於本文開頭提到的要實現的效果的實現可以參見下面的程式碼:

.gradient{
    width:300px;
    height:150px;
    background:-moz-linear-gradient(top, red, rgba(0, 0, 255, 0.5));  
}

<div class="gradient"></div>

此段程式碼在Firefox3.6瀏覽器下的效果是:

Firefox3.6下含半透明的漸變背景效果 張鑫旭-鑫空間-鑫生活

四、chrome/Safari瀏覽器下的漸變背景實現

對於webkit核心的瀏覽器,如Chrome/Safari瀏覽器下漸變背景的實現也是使用CSS3 漸變方法,css-gradient,具體為-webkit-gradient,使用語Firefox瀏覽器是有一些差異的。我在上上一篇文章對此進行了非常詳細的介紹,您可以狠狠地點選這裡:CSS gradient漸變之webkit核心瀏覽器下的使用 。具體使用就不詳述了,參見下面的程式碼:

.gradient{
    width:300px;
    height:150px;
    background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ff0000), to(rgba(0, 0, 255, 0.5)));  
}

<div class="gradient"></div>

此段程式碼在Safari 4瀏覽器下的效果是:

Safari下含半透明的漸變背景效果 張鑫旭-鑫空間-鑫生活

補充於2011-04-07
Opera11也支援了CSS3漸變。其用法與Firefox一致,需要使用-o-的字首。另外,Chrome的漸變用法也開始向FireFox瀏覽器下的用法靠攏。

五、綜合 – 相容性的漸變背景效果

相關程式碼如下:

.gradient{
    width:300px;
    height:150px;
    filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=0);
    -ms-filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=0);/*IE8*/	
    background:red; /* 一些不支援背景漸變的瀏覽器 */  
    background:-moz-linear-gradient(top, red, rgba(0, 0, 255, 0.5));  
    background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ff0000), to(rgba(0, 0, 255, 0.5)));  
    background:-o-linear-gradient(top, red, rgba(0, 0, 255, 0.5)); 
}

<div class="gradient"></div>

效果分別為上面三個分類的截圖。

六、結語

CSS3的潛力非常的大,就漸變這一塊可以建立很多精湛的UI效果,而以往這些效果都只能使用圖片實現。CSS漸變背景的實現可以有效降低網頁的圖片數,也就是降低了HTTP請求,是非常受用的。但是IE瀏覽器一直蹲在茅廁邊啃雞腿——自以為美味,得使用資源消耗很高的濾鏡才能實現漸變效果。所以,目前而言,漸變背景的的應用與否還是有待於利弊權衡的。

相關推薦

css線性漸變相容性處理

研究了一下css3中線性漸變的相容性問題處理,本來是想要自己總結的,但是發現張鑫旭大神關於這個問題寫的很清楚了,所以就直接轉載了,寫得很好,很清晰IE瀏覽器下的漸變背景IE瀏覽器下漸變背景的使用需要使用IE的漸變濾鏡。如下程式碼:filter: progid:DXImageT

cssbackground漸變

1、線性漸變:從上到下(預設情況下) h2{     background: -webkit-linear-gradient(red, blue); /* Safari 5.1 - 6.0 */     bac

css使用線性漸變實現滾動進度條

asc :after top 是我 xxx ctype 沒有 char lin <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> &

css使用線性漸變實現滾動進度條(來自於微信前端早讀課)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initi

CSS漸變效果

2.漸變的屬性和取值 1、屬性                background-image                取值:                1、linear-gradient()                     線性漸變                2、radial-gr

Html和CSS在瀏覽器常見的相容性問題處理

1,居中問題   格里的內容,IE預設為居中,而FF預設為左對齊,可以嘗試增加程式碼: margin: 0 auto; 2,高度問題 兩上下排列或巢狀的格,上面的格設定高度(高度),如果DIV裡的實際內容大於所設高度,在FF中會出現兩個格重疊的現象;

css固定寬高div與不固定寬高div垂直居中的處理辦法

分配 css代碼 http min har 空間 -i dex round 固定高寬div垂直居中 如上圖,固定高寬的很簡單,寫法如下: 1 position: absolute; 2 left: 50%; 3 top: 50%; 4 width:200px;

(8/24) 圖片跳坑大戰--css的圖片處理

web 參數 拷貝 ons document ide 前言 inf spa 前言:此節的開展是在上一節的基礎上進行的,(每一節都是從無到有編寫關於此節的知識),最後會附上相關完整代碼。上一節 CSS中的圖片處理 1.新建images文件夾 在src目錄下新建一個ima

JS註冊事件的三種方式及相容性處理

第一種(所有瀏覽器都支援,但是無法給同一個物件的同一個事件註冊多個事件處理函式) btn.onclick = function() { alert("111") } btn.onclick = function() {

CSS 相容IE8的線性漸變和旋轉

因IE8不相容CSS3旋轉和漸變的屬性,改用filter實現漸變以下效果為橫向漸變,從左到右,加了透明度filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0 finishopacity=50 style=1 sta

vue引入mousewheel事件及其相容性處理

    專案實現過程中需要對一個已經有縱向滾動條的table表格增加滑鼠滾輪(mousewheel)事件,方便檢視資料;其實現原理與我上一篇部落格中的拖動事件類似,利用模擬出來的同一個滾動條來實現,滾動條設定的要點在於:1、滾動條與滾動槽的高度比例 應該等於 內容區(動態變

css背景漸變相容性問題解決

背景漸變:background:linear-gradient(top,red,yellow); 漸變方向可用:top,left,top left,top right等等。 top指從上至下漸變(縱向漸變),如圖 left指從左至右漸變(橫向漸變),如圖 top lef

對於iphone X 相容性處理css適配方法和js適配方法

1. 如果想全屏覆蓋,html裡面請使用 <meta name="viewport" content="width=device-width,initial-scale=1,viewport-

CSS進階(18)—— CSS的文字處理(下)

  CSS有很多屬性專門用來對文字進行控制,由於這些屬性的作用機制往往是基於內聯盒模型的,因此對於內聯塊狀元素也是有效果的,如我們最常用的text-align:center可以讓內聯元素水平居中。本章我們就來深入探索一下CSS中的文字控制屬性。 1.text-indent負值的妙用

CSS進階(17)—— CSS的文字處理(上)

  CSS能夠在眾多的佈局標準中脫穎而出的制勝手段就是其強大的文字處理能力,比如最"簡單"的盒子邊緣文字即將超出就自動換行的能力在CSS流的概念裡幾乎是天生的,並逐漸成為了行業內的“常規認知”,然而同時代的SVG標準要想讓文字換行,還需要你手動處理一下,對於計算機來說,沒有什麼是與生俱

CSSIE和火狐對margin、padding的相容性解析

CSS對瀏覽器器的相容性具有很高的價值,通常情況下IE和Firefox存在很大的解析差異,這裡介紹一下相容要點。 常見相容問題:1.DOCTYPE 影響 CSS 處理2.FF: div 設定 margin-left, margin-right 為 auto 時已經居中, IE 不行3.FF: body 設定

深入理解CSS線性漸變linear-gradient

前面的話    在CSS3出現之前,漸變效果只能通過圖形軟體設計圖片來實現,可拓展性差,還影響效能。如今已經進入CSS3標準的漸變可以很輕鬆的完成漸變效果。漸變實際上分為線性漸變和徑向漸變兩種,本文介紹線性漸變。 定義   漸變實際上是兩種或多種顏色之間的平滑過渡。而線性

CSS相容性問題

1.瀏覽器不支援該特性 解決方法 不同瀏覽器使用不同的樣式 [email protected] 查詢瀏覽器是否支援該屬性,相容性不是很好,一般不適用 2.瀏覽器hack原理-層疊

androidLinearGradient線性漸變

它除了定義開始顏色和結束顏色以外還可以定義,多種顏色組成的分段漸變效果 LinearGradient shader = new LinearGradient(0, 0, endX, endY, new int[]{startColor, midleColor, endColor},new float[]{0

JSoup/NSoup對CSS類名稱含空格的處理

在爬蟲過程中,經常需要對網頁內容進行資訊提取。 而在這處理過程中,JSoup是經常常用的庫。(Nsoup是Jsoup的.net開發版本) 從JSOUP的官網例子中,可以處理幾乎任何節點資料。 但是在查詢某個類別的CSS名稱過程中,由於名稱存在空格,導致其提取內容問題返