1. 程式人生 > >html5和css3新增的常用知識點

html5和css3新增的常用知識點

H5新增的離線應用:

(1)當要開發基於h5的離線應用時,先確定伺服器是否支援對manifest檔案的解析。

(2)若不支援,需要使用者手動設定,在伺服器mime.types檔案中新增;

(3)為什麼要求伺服器一定要支援manifest檔案?

       答:因為離線儲存必須要有一個manifest檔案來儲存需要快取在使用者機器上的資源路徑,且這個路徑將在html的檔案中使用。

      manifest:該清單檔案列出了瀏覽器為離線應用快取的所有資源。

      manifest的MIME型別是text/cache-manifest;

注意:不同的web伺服器有其獨特的配置方法:

例如:Apache伺服器中:

   在Apache Software Foundation\Apache 2.2\conf中的mime.types檔案中加入:

text/cache-manifest             manifest

     H5新增Geolocation地理定位

(1)檢查瀏覽器支援情況

if(navigator.geolocation){

//該瀏覽器支援地理定位

}

該API中由一個獲取當前位置的函式方法getCurrentPosition

navigator.geolocaiton.getCurrentPosition(onSuccess,onError);

onSuccess----->funciton(position){} 

                         該函式中有一個postion物件

onError:使用error物件,該物件有兩個屬性

屬性一:

code:1--->使用者拒絕了位置服務;

    2--->獲取不到位置資訊;

            3--->獲取資訊超時錯誤;

message:FireFox瀏覽器不支援

   字串,給字串包含錯誤資訊。在開發和除錯的時候很有用。

css3新增屬性:

   (1)多列布局

    column-count:3;//將頁面分為3列

    column-gap:1.5em;//列與列之間的間距。

    column-rule:solid 1px #F00;//列邊框的樣式

    columns:250px 3;//列寬250px,定位3列;

    column-fill:auto/balance;定義列高

                       auto:各列高隨內容變化而自動變化;

                       balance:各列高會根據內容最多的那一列的高進行統一;

    column-width:300px;

   (2)背景的寫法

    background:url(images/a.jpg) top left no-repeat;

   (3)word-wrap:normal;//在允許的斷點截斷文字,如連字元;

                                break-word;//以單詞截斷;

break-all;

   (4)陰影處理

text-shadow:2px 2px 20px #06c;//增加文字的陰影

        第一個引數:+--->向右投;- --->向左投

        第二個引數:+--->向下投;- --->向上投

        第三個引數:模糊度半徑;

        box-shadow:2px 2px 10px #06C;//給圖片或塊級元素加投影。

    (5)圓角投遞:

     -webkit-border-top-right-radius:20px;

     border-radius:__ __ __ __;

    (6)邊框圖片:

border-image:none;//無背景圖

        border-image:url("images.jpg");

    (7)選擇器

    I、屬性選擇器

     E[foo="bar"]   如:p[class="bar"]

     E[foo^="bar"],E[foo$="bar"],E[foo*="bar]

    II、偽類選擇器

  1、 E:nth-child(n);//選擇所在其父元素中第n個位置的匹配的子元素;《1,2,            3,odd,even,2n+3,2n》

  2、 E:nth-last-child(n);//選擇所在其父元素中倒數第n個位置的匹配子元素。

  3、E:nth-of-type(n);

   例子:p:nth-of-type(2);

   <div><h1></h1><p></p><p></p></div>

   第二個p元素匹配

  4、E:nth-last-of-type(n);類似3中的,但是從後往前數

E:nth-last-of-type(最長數)--->E:last-of-type;

  5、E:last-child;

    例子:h1:last-child;

    <div><p></p><h1></h1></div>

  6、E:only-child;//其父元素只含有一個p元素;

      <div><p></p></div>:匹配

      <div><h1></h1><p></p></div>:不匹配

  7、E:only-of-type;//選擇其父元素只包含一個同類型的子元素,且該子元素匹配E;

    例子:p:only-of-type;

    <div><p></p></div>----》匹配

    <div><h1></h1><p></p></div>-----》不匹配

    (8)盒模式

    display:box;

    box-flex:1;//定義了此屬性,則盒子佈局變為彈性盒子佈局;2的是1的2倍;

    box-orient:vertical/horizontal;//垂直佈局,水平佈局。

    box-ordinal-group:number;//定義元素顯示的順序;

 8、css3新增的UI偽類

    常用的

    I、

    E:enabled;//匹配E的所有可用UI元素;

    例子:

     input:enabled;

    <form><input type="text"/><input type="button" disabled="disabled"/></form>

    陰影部分為匹配;

    II、

    E:disabled;//匹配不可用的,即匹配上個例子中的按鈕部分;

    III、

    E:checked;

    <form><input type="checkbox"/><input type="radio" checked="checked"/></form>

 9、

   a、

    E~F:選擇匹配F的所有元素,且匹配元素位於匹配元素E的後面。

     div~p:

   <div><p>1</p></div><div><p>2</p></div><p>3</p>

   b、

   E:nots(s);//選擇匹配E的所有元素,且過濾匹配s選擇符的所有元素;

   div p:not(.red);

   <div><p class="red">1</p></div><div><p>2</p></div><p>3</p>

  c、

  E:target;目標偽類選擇器

      選擇匹配E的所有元素,且匹配元素被相關url指向。

   例子:

   <div id="red">盒子1</div>

   <div id="blue">盒子2</div>

   div:target{background:red;}

 若:localhost/index.html#red;則指向第一個盒子;

10、顏色處理

rgba(r,g,b,opacity);//r,g,b都是0~255,opacity是0~1;

hsl(色調,飽和度,亮度);

色調:-360~360,其中0,360,-360是紅色,60為黃色,120為綠色,180為青色,240為黃色;

飽和度:0~100%;0為灰色,100%是豔色;

亮度:0~100%;

hsla:最後一個指的是透明度

另一個指定透明度的方法:

opacity:0.7;filter:alpha(opacity=70);

若將顏色值設為transparent;

如:background-color:transparent;border-color:transparent;color:transparent;

這些都相當於使用alpha=0;可以將背景,文字,邊框等設為完全透明度。

11、邊框處理

a、border-top-color/border-bottom-color/border-left-color/border-right-color

     若color為colors則可以指定多種顏色;

b、border-top-image  。。。。。。

     border-top-left-image 。。。。。。

c、border-image:url()  27;

27可以表示為border-image-slice:27 27 27 27;//上右下左順時針剪裁

d、border-image-repeat:

屬性值:stretch(拉伸),repeat(重複),round(平鋪)

f、border-radius;

   border-top-right-radius。。。。。。

  -moz-border-radius-bottomleft:

  -webkit-border-bottom-left-radius:

12、css新增屬性

nav-index:為了使瀏覽器順序獲得焦點-->代替了tabindex;數字越大越先導航

nav-up:#元素(up,right,left,bottom):用方向鍵控制焦點的位置;

content:normal|string|attr()|url()|counter()|none

     string:插入文字內容;   attr():插入元素的屬性值;

     url():插入一個外部資源;    counter():計數器,用於插入排序標記

  例子:p:after{content:“支援”}

13、恢復預設樣式的方法

1)刪除元素的預設程式碼:但是這種方法不要用,因為寫一個樣式頁面中的多個元素使用該樣式。

2)將該元素的class屬性去掉,但是這種方法會被取代,因為class是一個無意義的屬性;

3)css3中方法,使用initial,可以直接取消該元素的樣式,恢復為預設樣式

   例子:color:initial;color:-moz-initial;

14、2D動畫

針對旋轉動畫,IE瀏覽器雖然不支援,但是可以考慮使用圖形旋轉濾鏡進行相容;

filter:progid:DXImageTransform.Microsoft.BasicImage(enabled=bEnabled,grayScale=bGray,mirro=bMirror,opacity=fOpacity,XRay=bXRay)

enabled:boolean,設定或檢索濾鏡是否啟用;

grayScale:boolean,設定或檢索是否以灰度顯示物件內容,1表示以灰度效果顯示物件內容,0表示正常顯示物件內容。

mirror:boolean,設定或檢索是否反轉顯示物件內容。1表示反轉顯示

opacity:浮點數,設定物件內容的透明度,

XRay:boolean,設定或檢索是否以X光效果顯示物件內容,1表示以X光效果顯示物件內容。

-webkit-transform:rotate(-90deg);//旋轉

-webkit-transform:scale(2);//放大2倍

-webkit-transform:translate(4px,4px)//移動動畫

          第一個引數代表水平移動(右),第二個引數代表垂直移動(下)

-moz-transform:skew(30deg,-10deg);//傾斜動畫

第一個引數為:相對x軸傾斜;第二個引數為:相對與y軸傾斜;

-webkit-transform:matrix(1,0,4,0,1,0,0);//變形

     相當於:     a b c

                        d  f  g

                        0  0  1

綜合寫:

-moz-transform:translate(80,80)  rotate(45deg)  scale(1.5,1.5)

自定義變形:將預設原點設定為左上角或左下角等

transform-origin:a,b;為百分比,或em,px 或者為left/center/right/top/middle/bottom

但是ie不支援自定義變形

注意:-webkit-transition:該屬性是個複合屬性,相應的屬性如下面

-webkit-transition:background-color 1s linear,color 1s linear,width 1s linear;

   1s內完成背影顏色變為css屬性中定一定 顏色。。。。。。

屬性1:transition-property:該屬性適用所有元素以及:before和:after偽元素

           none:沒有元素,all所有元素;

           indent:css屬性列表如transition-property:background-color;

屬性2:transition-duration:2s;//過濾動畫延時

屬性3:transiton-timing-function:定義過濾動畫效果

       ease:緩解效果;linear:線性效果;ease-in:漸顯;ease-out:漸隱;

       ease-in-out:漸顯漸隱    cubic-bezier:特殊立方貝賽爾曲線效果;

3D動畫

animation-name:定義css3動畫的名字,若為none,則不會有動畫

animation-duration:動畫的播放時間

animation-timing-funciton:動畫播放方式

       ease:緩解效果;linear:線性效果;ease-in:漸顯;ease-out:漸隱;

       ease-in-out:漸顯漸隱    cubic-bezier:特殊立方貝賽爾曲線效果;

animation-delay:動畫延遲播放時間

animation-iteration-count:動畫的播放次數

      預設值為1,infinite:無限次播放

animation-direction:

      normal:預設值,動畫每次迴圈向前播放;

      alternate:第偶數次向前播放,第奇數次向反方向播放。

小知識點:

1、box-sizing:content-box/border-box;//定義和模式的解析方式

           content-box:width/height=border+padding+content;

           border-box:widht/height=content;

2、resize:css3新增的,調節元素的尺寸,手動

   none:瀏覽器不提供尺寸調節機制,使用者不能操作機制調節元素尺寸;

   both:瀏覽器提供雙向調節機制,使用者可以調節高度和寬度

   horizontal:單向水平尺寸調節,即調節寬度;

   vertical:垂直調節,即調節高度;

   inherit:預設繼承;

3、外輪廓:與邊框不同,不佔頁面佈局空間,它屬於動態樣式,只有當前物件獲取焦點或啟用時呈現。

outline:[outline-color]|[outline-style]|[outline-widht]|[outline-offset]|inherit

outline-color:各種顏色,或者invert(逆向顏色)

outline-style:auto或者none,dotted,dashed,solid,double,groove,ridge,inset,outset;

outline-width:<length數值>或者thin,medium,thick

outline-offset:數值;//定義輪廓邊框偏移位置的數值。