1. 程式人生 > >css3 透明度、陰影,圓角,邊框背景

css3 透明度、陰影,圓角,邊框背景

先了解一下目前的幾種現代瀏覽器的核心,主流內容主要有

  Mozilla(Gecko)(熟悉的有Firefox,Flock等瀏覽器)-moz-

  WebKit(熟悉的有Safari、Chrome等瀏覽器)-webkit-

  Opera(presto)(Opera瀏覽器)-O-

  Trident(IE瀏覽器)-ms-

透明度

》css2中的透明度

filter: alpha(opacity=80);

-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";

opacity: 0.8;

缺點 :opacity後代元素會隨著一起具有透明性

》 css3中透明度可與顏色一起設定

rgba

R:紅色值。正整數 | 百分數

G:綠色值。正整數 | 百分數

B:藍色值。正整數| 百分數

A:透明度。取值0~1之間


在解決iE8-的相容問題上

.rgba {
  backgroundrgb(0,0,0);

  backgroundrgba(000,0.5);
  -ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr=#80000000,endColorstr=#80000000)";    
  filterprogid:DXImageTransform.Microsoft.gradient(GradientType=1

,startColorstr=#80000000, endColorstr=#80000000);
}
startColorStr和endColorStr的值#80000000,其中前兩位是十六進位制的透明度80,也就是透明值為0.5而後面六位是十六進位制的顏色
可與陰影、漸變結合使用

陰影

》text-shadow:  X-Offset  Y-Offset  blur   color;//文字陰影

相容性


相容IE的寫法

 元素 {filter:shadow(Color=顏色值,Direction=數值,Strength=數值)}
Color用於設定物件的陰影色;

Direction用於設定投影的主向,取值為0即零度(表示向上方向),45為右上,90為右,135為右下,180為下方,225為左下方,270為左方,315為左上方;

Strength就是強度,類似於text-shadow中的blur值。


》box-shadow: X軸偏移量 Y軸偏移量 [陰影模糊半徑] [陰影擴充套件半徑] [陰影顏色] [投影方式];

X-offset(必須):陰影水平偏移量,值為正值陰影在物件的右邊,反之陰影在物件的左邊;

Y-offset(必須):陰影垂直偏移量,值為正值陰影在物件的底部,反之陰影在物件的頂部;

陰影模糊半徑blur(可選):只能是為正值,如果其值為0時,表示陰影不具有模糊效果,其值越大陰影的邊緣就越模糊;

陰影擴充套件半徑(可選):值為正,則整個陰影都延展擴大,反之值則縮小

陰影顏色(可選):各瀏覽器預設色不一樣,特別是在webkit核心下的safari和chrome瀏覽器將無色,也就是透明,建議不要省略此引數。

投影方式:預設為外投影,insert為內投影

相容性:


IE9-

法一:filterprogid:DXImageTransform.Microsoft.Shadow(color=’顏色值’, Direction=陰影角度(數值), Strength=陰影半徑(數值));
注:該濾鏡必須配合background屬性一起使用,否則該濾鏡失效

 $(document).ready(function(){
    if($.browser.msie) {
      $('.demo1').boxShadow(0,0,5,"#888"); //demo1元素使用了box-shadow
      $('.demo2').boxShadow(-10,-10,5,"#f36"); //demo2元素使用了box-shadow
    }
  });

陰影不會影響頁面的任何佈局,有時可替換border

》新增多個陰影:
如果新增多個陰影,只需用逗號隔開即可。如:
.box_shadow{ 4px 2px 6px #f00, -4px -2px 6px #000, 0px 0px 12px 5px #33CC00 inset; }
效果:


》Drop-shadow效果(firefox3.5+/chrome5+/safari5+/opera10.6+/Ie9+。

 原理:僅用一個div標籤元素,然後配合其兩個偽元素":before"和":after",然後分別給其偽元素定位到div的後面,並把box-shadow應用到這兩個偽元素上,同時利用transform的rotate對陰影進行旋轉



邊框背景

》border-image的語法:


repeat:就是一直重複,然後超出部分剪裁掉,而且是居中開始重複

RoundRound可以理解為圓滿的鋪滿。為了實現圓滿所以會壓縮
Stretch: 很好理解就是拉伸,有多長拉多長。有多遠“滾”多遠。

切割後的四周的八個切片,四個角根據border設定的大小全尺寸自動縮放顯示到border對應的四個角。

除四個角外的其他中間切片(上中,右中間,下中,左中間),可以根據設定做拉伸或重複的設定操作顯示到對應的border位置



圓角

常見的寫法

簡寫:

border-radius: 5px 4px 3px 2px;//分別為左上角,右上角,右下角,左下角,順時針轉

拆開寫:

border-top-left-radius: ;           //左上角

border-top-right-radius:     ;    //右上角

border-bottom-right-radius: //右下角

border-bottom-left-radius:   ; //左下角

 border-radius10px 15px 20px 30px / 20px 30px 10px 15px;“/”前是指圓角的水平半徑,而“/”後是指圓角的垂直半徑

等價於{

  border-top-left-radius10px 20px;
  border-top-right-radius15px 30px;
  border-bottom-right-radius20px 10px;
  border-bottom-left-radius30px 15px;

}

 相容性 

1、Firefox4.0+、Safari5.0+、Google Chrome 10.0+、Opera 10.5+、IE9+

2、在img上應用border-radius到目前只有Firefox4.0+瀏覽器才正常,而在其他瀏覽器都不能對圖片進行剪下

3、內半徑和外半徑的區別:當border-radius半徑值小於或等於border的厚度時,邊框內部就不具有圓角效果


4、table的樣式屬性border-collapse是collapse時,border-radius不能正常顯示,只有border-collapse: separate;時才能正常顯示。

顏色

語法:color:rgba(R,G,B,A);background-color:rgba(r,g,b,a);

R、G、B三個引數,正整數值的取值範圍為:0 - 255。百分數值的取值範圍為:0.0% - 100.0%。超出範圍的數值將被截至其最接近的取值極限。並非所有瀏覽器都支援使用百分數值。A為透明度引數,取值在0~1之間,不可為負值。