html5和css3新增的常用知识点

时间:2022-11-16 09:19:11

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:数值;//定义轮廓边框偏移位置的数值。