1. 程式人生 > >CSS3知識點總結

CSS3知識點總結

1、相鄰兄弟選擇器,通用兄弟選擇器

2、屬性選擇器,理解下面語句

①[id]{color:red;}                                ②div[id]{color:red;}

③p[id][class]{color:red;}                          ④input[type=text]{color:red;}

⑤div[class~=heavy]{color:red;}                     ⑥[class^=”col-”]{color:red;}

⑦[class*=”col-”]{color:red;}                        ⑧[class$=”col-”]{color:red;}

3、目標偽類target使用

html  <a href="#dd">點我跳轉到div</a> <br/><div id="dd">字型顏色發生變化</div>

css   #dd:target{ color:red;}

4、元素狀態偽類解釋 ①enable  ②disable  ③checked

5、結構偽類       li:first-child{color: red;}與li{color: red;} 區別

                  li:last-child{color: red;}

                  li:nth-child(2){color: purple;}

6、否定偽類       li:not(:first-child){color:red;}

7、偽元素選擇器  p:first-line

                 p:first-letter

                 p.article:first-letter{color: #FF0000;}

<p class="article">This is a paragraph in an article。</p>

8、使用偽元素選擇器實現內容生成

標籤內容區域前插入文字:標籤:before{content:"插入的內容";}

標籤內容區域前插入圖片:標籤:before{content:url(...);}

標籤內容區域後插入文字:標籤:after{content:"插入的內容";}

標籤內容區域後插入圖片:標籤:after{content:url(...);}

9、使用選擇器插入專案編號

元素:before{content:counter(計數器);}

元素{counter-increment:content屬性值中所指定的計數器名稱}

使用計數器來計算編號,計數器可以任意命名,除了使用計數器還需要在元素的樣式中追加對元素的(counter-increment)屬性指定為content屬性值中所指定的計數器名稱。
      p:before{content: "第"counter(number)"章、";}

p{counter-increment: number;}

10、CSS  Hack 針對不同瀏覽器編寫不同的CSS檔案

①CSS類內部hack:在樣式屬性名或值前後增加前後綴識別不同瀏覽器(div{color:red\9\0;})

-:IE 6           +:IE 6,7            \0:IE 8,9,10         \9\0:IE 9,10

②頭部引用Hack

<!--[if IE]>這段文字只在IE瀏覽器顯示<![endif]-->

<!--[if IE 6]>這段文字只在IE6瀏覽器顯示<![endif]-->

<!--[if gte IE 6]>這段文字只在IE6及以上版本IE瀏覽器顯示<![endif]-->

<!--[if ! IE 8]>這段文字在非IE8瀏覽器顯示<![endif]-->

③主流瀏覽器核心及屬性字首 

瀏覽器

核心

屬性字首

Chrome/safari(蘋果)

webkit

-webkit

Firefox

Gecko

-moz

IE/國內各瀏覽器

trident

-ms

Opera

opera

-o

11、webkit核心的Chrome和Safari使用CSS3屬性大都需要加上-webkit-字首,最好把其餘字首的都重寫一遍

12、轉換:改變元素在頁面中的大小,位置,形狀,角度的一種方式

①2D轉換

移動    transform:translate(50px,50px);/*translateX(),translateY()*/

縮放    transform:scale(2); /*scaleX(),scaleY()*/

旋轉    transform:rotate(45deg);

旋轉原點transform-origin:left top; /*也可以用百分比transform-origin:20% 40%;*/

傾斜    transform:skew(45deg); /*skewX(),skewY()*/

多種效果同時實現transform:translate(100px,100px) scale(2) rotate(5deg) skewY(45deg);

                transform-origin:right top;

②3D轉換

3D位移:包括translateZ()和translate3d()兩個功能函式;
3D旋轉:包括rotateX()、rotateY()、rotateZ()和rotate3d()四個功能函式;
3D縮放:包括scaleZ()和scale3d()兩個功能函式;

③利用3D轉換製作一個正方體

12、過渡 過渡設定簡寫 transition:

property(要使用過渡效果的屬性

duration(過渡時長)   

timing-function(過渡時間速率|ease慢快慢| linear勻速|ease-in-out慢快慢)

delay(過渡延時)

案例   HTML: <div></div>

       CSS:

 div{

       width: 200px;height: 200px;

       background-color: purple;

       transition: transform 3s;

      }

div:hover{ transform: translateX(400px) rotateY(90deg) rotate(360deg); }

13、動畫

①宣告

第一種宣告:@keyframes 動畫名稱{

0%{動畫開始時的樣式}    50%{動畫中間時的樣式}     100%{動畫結束時的樣式}

}

0%時也可以用from,100%用to

第二種宣告:@keyframes 動畫名稱{

from{動畫開始時的樣式}    to{動畫結束時的樣式}

}

②呼叫(一般在hover中呼叫,如果想頁面一執行就有,在元素的樣式中呼叫)

animate:name(呼叫的動畫的名稱)

duration(動畫完成一個週期的時間)

timing-function(過渡時間速率|ease慢快慢| linear勻速|ease-in-out慢快慢)

play-state(規定動畫是播放還是暫停,paused暫停,running播放)

iteration-count(規定播放次數n  infinite一直迴圈播放)    

14、CSS程式碼優化

①提前定義統一樣式,利用CSS的繼承性

②儘量縮小樣式檔案(簡寫屬性,空格回車少些)

③避免樣式重寫

④程式碼壓縮(使用程式碼壓縮軟體)

⑤避免空的src和href,即使是空的,還會請求伺服器,#不會

⑥別再頁面中改變圖片大小