1. 程式人生 > >css3(愛前端)

css3(愛前端)

逗號 逆時針 必須 hit 高度 ati cas nbsp 廠商

一 css 概述

1.1 歷史

CSS3 是 層疊樣式表(Cascading Style Sheets) 語言的最新進展,目的在於擴展 CSS2.1。

它為我們帶來了許多期待已久的新特性, 例如圓角,陰影,gradients(漸變),

transitions (過渡) 或 animations(動畫) , 當然還有新的布局如 multi-columns , flexible box 或 grid layouts。

CSS3 為什麽能發展這麽快,百花齊放,源於CSS從創立之初就有一個規定,

就是遇見不認識的選擇器、屬性,靜默不報錯,不影響後面能夠識別的語句

1.2 兼容性

CSS3和HTML5一起的兼容性,有一個網站打分

哆啦A夢CSS3測試:

http://www1.pconline.com.cn/pcedu/specialtopic/css3-doraemon/

二 css 選擇器

技術分享圖片

交集選擇器: div.red

並集選擇器: div, p

>,  +,  ,屬性選擇器 IE7開始兼容

序 選擇器 ie9 開始兼容

jQuery中,借用了這幾個符號 > 、 + 、 ~ 都能夠用於 $() 函數中,都是 IE6 也兼容的

實踐總結:

技術分享圖片 class 只有 aa 才能選中

技術分享圖片 class 只有 aa,或者 xxx aa 都能選中

技術分享圖片 class 只有 =‘aa‘ 或者 =’aa-x‘ 才能選中 aa 要在 = 後面

E:enabled 匹配用戶界面上處於可用狀態的元素E

技術分享圖片

E:empty 當一個標簽是完全首尾相接,沒有任何的空格、tab、換行、文字,就是:empty

E:target 實例跳轉

a 標簽: 技術分享圖片

目標區塊: 技術分享圖片

css:

技術分享圖片

偽元素:

content 表示內容,所有的 ::before 必須有 content 屬性,否則語法錯誤。

如果沒有 content,那麽也要寫 content:””。

註意 ::before 、::after 都是行內元素,必須轉塊或者脫標才能設置寬度高度

after 可以用來清除浮動

技術分享圖片

IE8 不兼容 ::after,但是兼容 :after。所以為了更大的兼容,寫成:after即可

三 css3 新特性

3.1 圓角邊框

border-radius 屬性,值可以是一個 px 為單位的數值,也可以是%為單位的百分比數值

ie9 開始兼容, 四個值順序 : 上右下左

技術分享圖片

3.2 box-shadow ie9 開始兼容

標準是 5 個參數: 向右的偏移值、向下的偏移值、模糊半徑、延展寬度、顏色

技術分享圖片

可省略參數:

技術分享圖片

一個盒子可以有多個陰影 ,用,逗號隔開:

技術分享圖片

通過寫 inset,表示內陰影,內陰影也可以有多個

技術分享圖片

3.3 text-shadow

text-shadow 是文字陰影,只有四個參數,少了延展值,IE10 開始兼容

3.4 background 系列

3.4.1 漸變 background-image IE9開始兼容

私有前綴:瀏覽器廠商把一些還處於實驗性質的css屬性,都加上了自己的前綴。

chrome 的是 -webkit-

火狐是 -moz-

IE是 -ms-

歐朋是 -o-

技術分享圖片

參數

第一個參數: 用方向 top, left, bottom, right 或者 xxxde

角度問題:

  w3c :豎直向是 0,水平向右 90deg , 順時針方向

  加前綴:水平向右 90 deg, 豎直向上 0 deg, 逆時針方向

可以羅列無數個顏色值,用逗號隔開:

background-image: -webkit-linear-gradient(top,red,orange,yellow,green,blue,purple);

可以用百分比描述這種顏色從何處開始:

background-image: -webkit-linear-gradient(top,red,blue 30%,green 70%); 也可用 單位 px

徑向漸變

background-image: -webkit-radial-gradient(100px 100px , blue , white);

3.4.2 background-origin 背景起源

background-origin: padding-box | border-box | content-box;

background-origin 屬性規定 background-position 屬性相對於什麽位置來定位

3.4.3 background-clip

background-clip: border-box(默認值) | padding-box | content-box;

背景圖的位置不變( background-orign 不變),會被裁剪顯示, 到邊框 、 padding, content 顯示

技術分享圖片

3.4.4 background-size 規定背景圖像的尺寸

background-size: length | percentage | cover | contain;

如果只想設置一個值,另外一個值自動按比例計算,那麽就寫 auto

background-size: 200px auto;

3.5 多背景

一個盒子可以同時攜帶多個背景了,用逗號隔開。IE9兼容

但是,同一個盒子只能攜帶一個背景色,可以攜帶多個背景圖

技術分享圖片

background-position、background-size 等等屬性都能用逗號隔開數值了,表示對不同的圖片來設置值

技術分享圖片

4 過濾

transition 屬性,就是過渡。讓某一個元素從CSS狀態A變為CSS狀態B的時候不是幹蹦,而是動畫。

制作動畫,不需要使用 setInterval了,可以使用CSS3的transition屬性來制作動畫。

transition屬性使用的是瀏覽器內核中的 C++ 代碼來實現的,效率要比setInterval高的多的多。

動畫的平滑程度、細膩程度,要比 setInterval 牛逼很多。

4.1 語法 :

transition: all 1s ease 0s;

第1個參數: 就是想讓什麽屬性參與過渡,如果想讓所有屬性參與過渡,寫all

第2個參數: 就是過渡動畫的時間,s表示秒,一定要寫s,不要不寫單位,也不要些別的;

第3個參數: 緩沖描述詞,ease表示不勻速,勻速就是linear。

第4個參數: 延遲時間,0s就是不延遲。

貝塞爾曲線

transition: all 2s cubic-bezier(.29,1.05,.78,.07) 0s;

4.2 什麽屬性能過渡

基本所有屬性都能過渡:

background-color、background-position、background-image、border-radius、border、padding、font-size等等。

不能過渡的:

漸變色、float

尤其要註意的是,jQuery中的 animate 函數,不支持 background-color、background-position。

所以,如果想要制作 背景顏色、背景定位的動畫,必須使用CSS3。

4.3 什麽時候觸發過渡

任何對元素的CSS改變都能觸發過渡。

不要認為只有 :hover 能夠觸發過渡。任何造成元素的改變,都會引發過渡。

比如元素的類名改變,能夠觸發過渡。

比如直接用 JS 來設置屬性,也能夠觸發過渡。

實例:

技術分享圖片

技術分享圖片View Code

技術分享圖片

技術分享圖片

技術分享圖片

過渡例子

技術分享圖片

css3(愛前端)