天天看點

CSS3新樣式

transition是複合屬性,可以改變元素數值類的屬性,例如寬高、背景顔色等。

一個元素從一個樣式過渡到另外一個樣式需要的時間,transition可以設定過渡的時間速度等。

如下代碼,當滑鼠移入div1元素時,會從#div1的樣式變到#div1:hover的樣式。

transition-duration:1s;設定樣式變化經曆的時間(1秒);

transition-property:left;隻改變某個屬性的值(left);

transition-timing-function:ease-in-out;改變變化速度;

transition-delay:1s;變化延時時間(1秒)。

還可以把這些屬性寫在一起:

<code>transition:1s width,2s 0.5s left,3s 2.5s background;</code>

寬度變化經曆1s;left 0.5s後開始變化,經曆2s;背景2.5s後開始變化,經曆3s。

補充:transform:rotate(720deg);旋轉720度

border-radius的寫法:1-4個數字/1-4個數字 ;

1、“/”左右兩邊都可以寫1-4個數字,并且左右兩邊的數字個數可以不同。

2、左邊代表水準方向,右邊代表垂直方向,沒有“/”則水準垂直的弧度都一樣,某個角的實際效果由左右兩邊共同決定。

3、某一邊寫1-4數字的效果為(左右兩邊同理):

4個值:沒個值按順訊分别控制左上,右上,右下,左下(順時針方向)四個方向。

3個值:第一個值控制左上,第二個值控制右上和左下,第三個值控制右下 ;

2個值: 對角弧度一樣,第一個值控制左上和右下,第二個值控制右上和左下。

1個值:4個角的弧度一樣。

總結:4個值時,從左上開始順時針每個值控制一個方向,每少一個值,原來對應位置的值就和對角線一樣,一個值時當然全部一樣。

4、弧度的值可以是像素px,也可以是百分百(表示原來寬或高的百分之幾)。

1、box-shadow和text-shadow可以設定多組值,每組可以代表不同方向的陰影,每組可以有2-5個值。

2、每組的5個值分别表示:水準偏移、垂直偏移、模糊半徑、陰影的尺寸、陰影的顔色。

3、其中水準偏移和垂直偏移不可少,如果沒有偏移也要設定為0;如果帶像素機關的值少于2個則沒有效果。

4、最後一個值代表顔色,用機關和其他值區分,顔色寫到前面也沒有效果,當顔色沒有指定時,預設陰影為黑色

5、前面4個機關為px的值,每少些一個,後面的值就為0;寫三個時代表水準偏移、垂直偏移、模糊半徑;寫兩個時代表水準偏移、垂直偏移;

6、偏移值以右下為證,當水準偏移、垂直偏移為負數時,分别代表向左和向上偏移。

以下是未加入選擇器時的代碼;

結果圖如下:

CSS3新樣式

下面的代碼都是加入到style中的,改變style後會給出相應的效果圖;

CSS3新樣式

這裡#div1 p:nth-child(3)先選中第三個元素<code>&lt;div&gt;456&lt;/div&gt;</code>,但是由于不是聲明的p元素,是以無效,不改變樣式;而第五個元素符合條件,改變了樣式。

CSS3新樣式

2n+1選中的有第1、3、5、7;由于第個不是聲明的元素是以無效;

nth-of-type在查找的時候就已經指定類型了,對nth-of-type來說不是指定類型的元素的不編号查找,就當它們不存在;括号裡參數的值和nth-child一樣。

CSS3新樣式

nth-of-type(3)查找父級下的第三個p元素,實際上父級下的第三個元素是<code>&lt;div&gt;456&lt;/div&gt;</code>,但不是P元素,是以不給它編号,直接跳過忽略,父級的第四個元素才是要找的第三個p元素,是以改變了樣式。

nth-child是不管什麼元素全部編号查出符合參數值的元素,再看看是否為聲明元素,是則該編樣式,不是則不改變。

nth-of-type是先篩選出聲明的元素,再編号,再查出符合參數值的元素,然後改變樣式。

以下是未加入漸變效果的代碼;下面加入漸變效果的代碼都是加在#div1的樣式中的,加入後會給出效果圖;

效果圖就是一個框,什麼都沒有:

CSS3新樣式

1、第一個參數可以寫方向(也可以不寫方向,線性漸變方向預設top從上到下,徑向漸變預設在中心),徑向漸變可以以像素為機關設定坐标的偏移量,後面的參數全部都是設定顔色的,每個參數之間用“,”隔開,顔色參數可以無數個。

2、當第一個參數寫了方向時,要聲明浏覽器核心,否則會有相容問題;

以下是主要浏覽器的核心:

谷歌 -webkit-

火狐 -moz-

opera -o-

ie -ms-

例如要相容谷歌浏覽器要把linear-gradient改成-webkit-linear-gradient;

好了,寫第一個樣式來看看效果:<code>background:radial-gradient(red,blue ,green)</code>

CSS3新樣式

預設漸變中心就是在元素的中心,每個顔色的空間預設平均配置設定。

第二個例子:<code>background:-webkit-radial-gradient(30px 30px, red,blue ,green)</code>

CSS3新樣式

可以看到中心偏移了

第三個例子:

<code>background:-webkit-radial-gradient(bottom,red,blue ,green)</code>

CSS3新樣式

中心在底部。

線行漸變方向預設top從上到下,方向參數可以用度數deg來确定。

第四個例子:<code>background:linear-gradient(red ,blue ,green);</code>

CSS3新樣式

第五個例子:<code>background:-webkit-linear-gradient(30deg,red ,blue ,blue ,green);</code>

CSS3新樣式

第六個例子:<code>background:-webkit-linear-gradient(90deg,red ,blue ,green);</code>

CSS3新樣式

傾斜90度就和<code>background:-webkit-linear-gradient(bottom,red ,blue ,green);</code>是一樣的

3、顔色參數可以分為兩個部分,第一部分為顔色,第二部分為顔色從哪裡開始漸變,是個百分比值,表示占元素寬高的百分之幾;

第七個例子:<code>background:-webkit-linear-gradient(left,red 10%,blue 50%,green 50%);</code>

CSS3新樣式

前10%都是紅色的,從10%-50%開始向藍色漸變,50%-50%從藍色到綠色漸變,由于50%=50%,是以這裡藍色到綠色沒有漸變空間,直接變色。

1、transform屬性向元素應用 2D 或 3D 轉換。該屬性允許我們對元素進行旋轉、縮放、移動或傾斜。

在操作元素的樣式裡加上transition:1s;然後#元素id:hover{transform: 方法();}就可以實作單滑鼠移入該元素時産生動畫的效果了。下面說說transform的方法。

rotate(n deg)旋轉n度。

skew(x-angle,y-angle)定義沿着 X 和 Y 軸的 2D 傾斜轉換。

skewX(angle) 定義沿着 X 軸的 2D 傾斜轉換。

skewY(angle)定義沿着 Y 軸的 2D 傾斜轉換。

scale(angle) 整體擴大 取值 正數 小數 負數 比原來的大小擴大幾倍 為負數時先縮小到沒有在擴大到負數的絕對值倍

scaleX(angle) 左右方向擴大

scaleY(angle) 垂直方向擴大

translate 改變位置 預設向右

translateX 橫向位置 左負 右正

translateY 縱向位置 上負 下正

要實作3D效果必須在相應元素建立3D環境和設定景深(3D效果是在多遠的距離看到的);

下面介紹一些屬性和方法的功能:

rotate旋轉;

transform-origin 設定旋轉基點;

繼續閱讀