css3新增功能

CSS3新增功能

1 CSS3选择器详解

1.1 基础选择器

  • 通配选择器*
  • 元素选择器E
  • ID选择器#id
  • CLASS选择器.class
  • 群组选择器select1,selectN

1.2 层次选择器

  • 后代选择器 E F
  • 子选择器 E>F
  • 相邻兄弟选择器 E+F
  • 通用兄弟选择器 E~F

1.3 属性选择器

  • E[attr] 选择具有att属性的E元素。
  • E[attr="val"] 选择具有att属性且属性值等于val的E元素。
  • E[attr~="val"] 选择具有att属性且属性值为一用空格分隔的字词列表,其中一个等于val的E元素(包含只有一个值且该值等于val的情况)。
  • E[attr^="val"] 选择具有att属性且属性值为以val开头的字符串的E元素。
  • E[attr$="val"]选择具有att属性且属性值为以val结尾的字符串的E元素。
  • E[attr*="val"] 选择具有att属性且属性值为包含val的字符串的E元素。
  • E[attr|="val"] 选择具有att属性且属性值为以val开头并用连接符"-"分隔的字符串的E元素,如果属性值仅为val,也将被选择。

1.4 伪类选择器

动态伪类选择器

  • E:link

      设置超链接a在未被访问前的样式。
    

    注意,a:hover 必须位于 a:link 和 a:visited 之后,a:active 必须位于 a:hover 之后

  • E:visited
      设置超链接a在其链接地址已被访问过时的样式。
    
  • E:hover
      设置元素在其鼠标悬停时的样式。
    
  • E:active
      设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式。
    
  • E:focus
      设置对象在成为输入焦点(该对象的onfocus事件发生)时的样式。
    

目标伪类选择器

  • E:target

      匹配相关URL指向的E元素。
    

语言伪类选择器

  • E:lang(fr)

      匹配使用特殊语言的E元素
    

UI元素伪类选择器

  • E:checked

      匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时)
    
  • E:enabled
      匹配用户界面上处于可用状态的表单元素
    
  • E:disabled
      匹配用户界面上处于禁用状态的表单元素
    

结构伪类选择器

  • E:root

      匹配E元素在文档的根元素。在HTML中,根元素永远是HTML
    
  • E:first-child
      匹配父元素的第一个子元素E。
    
  • E:last-child
      匹配父元素的最后一个子元素E。
    
  • E:only-child
      匹配父元素仅有的一个子元素E。
    
  • E:nth-child(n)
      匹配父元素的第n个子元素E,假设该子元素不是E,则选择符无效。
    
  • E:nth-last-child(n)
      匹配父元素的倒数第n个子元素E,假设该子元素不是E,则选择符无效。
    
  • E:first-of-type
      匹配同类型中的第一个同级兄弟元素E
    
  • E:last-of-type
      匹配同类型中的最后一个同级兄弟元素E
    
  • E:only-of-type
      匹配同类型中的唯一的一个同级兄弟元素E
    
  • E:nth-of-type(n)
      匹配同类型中的第n个同级兄弟元素E
    
  • E:nth-last-of-type(n)
      匹配同类型中的倒数第n个同级兄弟元素E
    
  • E:empty
      匹配没有任何子元素(包括text节点)的元素E
    

否定伪类选择器

  • E:not(s)

      匹配不含有s选择符的元素E
    

1.5 伪元素选择器

  • E:first-letter/E::first-letter

      设置对象内的第一个字符的样式。
    
  • E:first-line/E::first-line
      设置对象内的第一行的样式。
    
  • E:before/E::before
      设置在对象前(依据对象树的逻辑结构)发生的内容。用来和content属性一起使用
    
  • E:after/E::after
      设置在对象后(依据对象树的逻辑结构)发生的内容。用来和content属性一起使用
    
  • E::placeholder
      设置对象文字占位符的样式。
    
  • E::selection
      设置对象被选择时的样式。
    

2 CSS3 基本功能

2.1 CSS3新增长度单位

  • rem 相对于根元素(即html元素)font-size计算值的倍数
  • vm 视口被均分为100单位的vw
  • vh 视口被均分为100单位的vh
  • vmax 相对于视口的宽度或高度中较大的那个。其中最大的那个被均分为100单位的vmax
  • vmin 相对于视口的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vmin

2.2 CSS3新增颜色单位

  • RGBA(R,G,B,A) A:Alpha透明度。取值0~1之间。
  • HSL(H,S,L)

    H: Hue(色调)。0(或360)表示红色,120表示绿色,240表示蓝色,也可取其他数值来指定颜色。取值为:0 - 360

    S:Saturation(饱和度)。取值为:0.0% - 100.0%

    L:Lightness(亮度)。取值为:0.0% - 100.0%

  • HSLA(H,S,L,A)

2.3 CSS3渐变(了解)

线性渐变

语法

<linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner> ] ,]? <color-stop>[, <color-stop>]+)

<side-or-corner> = [left | right] || [top | bottom]

<color-stop> = <color> [ <length> | <percentage> ]?

取值

<angle>:用角度值指定渐变的方向(或角度)。
    to left: 设置渐变为从右到左。相当于: 270deg
    to right:设置渐变从左到右。相当于: 90deg
    to top:  设置渐变从下到上。相当于: 0deg
    to bottom: 设置渐变从上到下。相当于: 180deg。这是默认值,等同于留空不写。
<color-stop> 用于指定渐变的起止颜色:
    <color>:  指定颜色。
    <length>: 用长度值指定起止色位置。不允许负值
    <percentage>: 用百分比指定起止色位置。

示例

linear-gradient(#fff, #333);
linear-gradient(to bottom, #fff, #333);
linear-gradient(to top, #333, #fff);
linear-gradient(180deg, #fff, #333);
linear-gradient(to bottom, #fff 0%, #333 100%);

径向渐变

语法

<radial-gradient> = radial-gradient([ [ <shape> || <size> ] [ at <position> ]? , | at <position>, ]?<color-stop>[ , <color-stop> ]+)

<position> = [ <length>① | <percentage>① | left | center① | right ]? [ <length>② | <percentage>② | top | center② | bottom ]?

<shape> = circle | ellipse

<size> = <extent-keyword> | [ <circle-size> || <ellipse-size> ]

<extent-keyword> = closest-side | closest-corner | farthest-side | farthest-corner

<circle-size> = <length>

<ellipse-size> = [ <length> | <percentage> ]{2}

<shape-size> = <length> | <percentage>

<color-stop> = <color> [ <length> | <percentage> ]?

取值

<position> 确定圆心的位置。如果提供2个参数,第一个表示横坐标,第二个表示纵坐标;如果只提供一个,第二值默认为50%,即center
    <percentage>①:用百分比指定径向渐变圆心的横坐标值。可以为负值。
    <length>①:用长度值指定径向渐变圆心的横坐标值。可以为负值。
    left:设置左边为径向渐变圆心的横坐标值。
    center①:设置中间为径向渐变圆心的横坐标值。
    right:设置右边为径向渐变圆心的横坐标值。
    <percentage>②:用百分比指定径向渐变圆心的纵坐标值。可以为负值。
    <length>②:用长度值指定径向渐变圆心的纵坐标值。可以为负值。
    top:设置顶部为径向渐变圆心的纵坐标值。
    center②:设置中间为径向渐变圆心的纵坐标值。
    bottom:设置底部为径向渐变圆心的纵坐标值。

<shape> 确定圆的类型
    circle:指定圆形的径向渐变
    ellipse:指定椭圆形的径向渐变。

<extent-keyword> circle | ellipse 都接受该值作为 size
    closest-side:指定径向渐变的半径长度为从圆心到离圆心最近的边
    closest-corner:指定径向渐变的半径长度为从圆心到离圆心最近的角
    farthest-side:指定径向渐变的半径长度为从圆心到离圆心最远的边
    farthest-corner:指定径向渐变的半径长度为从圆心到离圆心最远的角

<circle-size> circle 接受该值作为 size
    <length>:用长度值指定正圆径向渐变的半径长度。不允许负值。

<ellipse-size> ellipse 接受该值作为 size
    <length>:用长度值指定椭圆径向渐变的横向或纵向半径长度。不允许负值。
    <percentage>:用百分比指定椭圆径向渐变的横向或纵向半径长度。不允许负值。

<color-stop> 用于指定渐变的起止颜色:
    <color>:指定颜色。
    <length>:用长度值指定起止色位置。不允许负值
    <percentage>:用百分比指定起止色位置。不允许负值

示例

radial-gradient(circle, #f00, #ff0, #080);
radial-gradient(circle at center, #f00, #ff0, #080);
radial-gradient(circle at 50%, #f00, #ff0, #080);
radial-gradient(circle farthest-corner, #f00, #ff0, #080);

3 CSS3 新增基本属性

3.1 布局相关属性

  • box-sizing 定义盒子模型的尺寸解析方式

    >content-box(默认)
    >border-box
    
  • resize 否允许用户缩放,调节元素尺寸大小
    none: 不允许用户调整元素大小。 (默认)
    both: 用户可以调节元素的宽度和高度。
    horizontal: 用户可以调节元素的宽度
    vertical: 用户可以调节元素的高度。
    
  • display 盒子是否以及如何显示
    > none: 隐藏对象。与visibility属性的hidden值不同,其不为被隐藏的对象保留其物理空间
    > inline: 指定对象为内联元素。
    > block: 指定对象为块元素。
    > list-item: 指定对象为列表项目。
    > inline-block: 指定对象为内联块元素。(CSS2)
    > table: 指定对象作为块元素级的表格。类同于html标签<table>(CSS2)
    > inline-table: 指定对象作为内联元素级的表格。类同于html标签<table>(CSS2)
    > table-caption: 指定对象作为表格标题。类同于html标签<caption>(CSS2)
    > table-cell: 指定对象作为表格单元格。类同于html标签<td>(CSS2)
    > table-row: 指定对象作为表格行。类同于html标签<tr>(CSS2)
    > table-row-group: 指定对象作为表格行组。类同于html标签<tbody>(CSS2)
    > table-column: 指定对象作为表格列。类同于html标签<col>(CSS2)
    > table-column-group: 指定对象作为表格列组显示。类同于html标签<colgroup>(CSS2)
    > table-header-group: 指定对象作为表格标题组。类同于html标签<thead>(CSS2)
    > table-footer-group: 指定对象作为表格脚注组。类同于html标签<tfoot>(CSS2)
    > run-in: 根据上下文决定对象是内联对象还是块级对象。(CSS3)
    > box: 将对象作为弹性伸缩盒显示。(伸缩盒最老版本)(CSS3)
    > inline-box: 将对象作为内联块级弹性伸缩盒显示。(伸缩盒最老版本)(CSS3)
    > flexbox: 将对象作为弹性伸缩盒显示。(伸缩盒过渡版本)(CSS3)
    > inline-flexbox: 将对象作为内联块级弹性伸缩盒显示。(伸缩盒过渡版本)(CSS3)
    > flex: 将对象作为弹性伸缩盒显示。(伸缩盒最新版本)(CSS3)
    > inline-flex: 将对象作为内联块级弹性伸缩盒显示。(伸缩盒最新版本)(CSS3)
    

    ?

3.2 外轮廓

  • outline 给元素周围绘制一条轮廓线

    <‘ outline-width ‘> || <‘ outline-style ‘> || <‘ outline-color ‘>
    
  • outline-width 外廓线宽度

    : 用长度值来定义轮廓的厚度。不允许负值 medium: 定义默认宽度的轮廓。 thin: 定义比默认宽度细的轮廓。 thick: 定义比默认宽度粗的轮廓。

  • outline-style 外廓线风格

    none: 无轮廓。与任何指定的 <‘ outline-width ‘> 值无关 dotted: 点状轮廓。 dashed: 虚线轮廓。 solid: 实线轮廓 double: 双线轮廓。两条单线与其间隔的和等于指定的 <‘ outline-width ‘> 值 groove: 3D凹槽轮廓。 ridge: 3D凸槽轮廓。 inset: 3D凹边轮廓。 outset: 3D凸边轮廓。

  • outline-color 外廓线颜色
  • outline-offset 外廓线的偏移量

3.3 颜色

  • opacity 检索或设置对象的不透明度。 对于尚不支持opacity属性的IE浏览器可以使用IE私有的滤镜属性来实现与opacity相同的效果

4 CSS3新增边框和背景属性

4.1 边框圆角

  • border-radius

    设置或检索对象使用圆角边框。提供2个参数,2个参数以“/”分隔,每个参数允许设置1~4个参数值,第1个参数表示水平半径,第2个参数表示垂直半径,如第2个参数省略,则默认等于第1个参数 水平半径:如果提供全部四个参数值,将按上左(top-left)、上右(top-right)、下右(bottom-right)、下左(bottom-left)的顺序作用于四个角。 如果只提供一个,将用于全部的于四个角。 如果提供两个,第一个用于上左(top-left)、下右(bottom-right),第二个用于上右(top-right)、下左(bottom-left)。 如果提供三个,第一个用于上左(top-left),第二个用于上右(top-right)、下左(bottom-left),第三个用于下右(bottom-right)。

    垂直半径也遵循以上4点。

  • border-top-left-radius 设置或检索对象的左上角圆角边框
  • border-top-right-radius 设置或检索对象的右上角圆角边框
  • border-bottom-right-radius 设置或检索对象的右下角圆角边框
  • border-bottom-left-radius 设置或检索对象的左下角圆角边框

4.2 盒子阴影

  • box-shadow 设置元素的阴影

    值: none | [ , ]*
    = inset? && {2,4} && ?

    取值:

    ? none: 无阴影

    <length>①: 第1个长度值用来设置对象的阴影水平偏移值。可以为负值
    <length>②: 第2个长度值用来设置对象的阴影垂直偏移值。可以为负值
    <length>③: 如果提供了第3个长度值则用来设置对象的阴影模糊值。不允许负值
    <length>④: 如果提供了第4个长度值则用来设置对象的阴影外延值。可以为负值
    <color>: 设置对象的阴影的颜色。
    inset: 设置对象的阴影类型为内阴影。该值为空时,则对象的阴影类型为外阴影
    

    可以设定多组效果,每组参数值以逗号分隔

    test .outset {
        box-shadow: 5px 5px rgba(0, 0, 0, .6);
    }
    .test .outset-blur {
        box-shadow: 5px 5px 5px rgba(0, 0, 0, .6);
    }
    .test .outset-extension {
        box-shadow: 5px 5px 5px 10px rgba(0, 0, 0, .6);
    }
    .test .inset {
        box-shadow: 2px 2px 5px 1px rgba(0, 0, 0, .6) inset;
    }
    .test .multiple-shadow {
        box-shadow:
            0 0 5px 3px rgba(255, 0, 0, .6),
            0 0 5px 6px rgba(0, 182, 0, .6),
            0 0 5px 10px rgba(255, 255, 0, .6);
    }
    
  • box-reflect 倒影 (仅webkit 了解)

    值: box-reflect:none | ? ?

    取值:

    direction

    above: 指定倒影在对象的上边
    below: 指定倒影在对象的下边
    left: 指定倒影在对象的左边
    right: 指定倒影在对象的右边
    

    offset

    <length>: 用长度值来定义倒影与对象之间的间隔。可以为负值
    <percentage>: 用百分比来定义倒影与对象之间的间隔。可以为负值
    

    mask-box-image

    none: 无遮罩图像
    <url>: 使用绝对或相对地址指定遮罩图像。
    <linear-gradient>: 使用线性渐变创建遮罩图像。
    <radial-gradient>: 使用径向(放射性)渐变创建遮罩图像。
    <repeating-linear-gradient>: 使用重复的线性渐变创建背遮罩像。
    <repeating-radial-gradient>: 使用重复的径向(放射性)渐变创建遮罩图像。
    

4.3 CSS3新增背景属性

background: bg-image bg-position / bg-size bg-repeat bg-attachment bg-origin bg-clip bg-color
  • background-origin 背景图片原点

    取值:
    padding-box:(默认值) 从padding区域(含padding)开始显示背景图像。
    border-box: 从border区域(含border)开始显示背景图像。
    content-box: 从content区域开始显示背景图像。
    
  • backgroun-clip 指定对象的背景图像向外裁剪的区域。
    取值:
    padding-box: 从padding区域(不含padding)开始向外裁剪背景。
    border-box: (默认值)从border区域(不含border)开始向外裁剪背景。
    content-box: 从content区域开始向外裁剪背景。
    text: 从前景内容的形状(比如文字)作为裁剪区域向外裁剪,如此即可实现使用背景作为填充色之类的遮罩效果
    
  • background-size 背景图像的尺寸
    <length>: 用长度值指定背景图像大小。不允许负值。
    <percentage>: 用百分比指定背景图像大小。不允许负值。
    auto: 背景图像的真实大小。
    cover: 将背景图像等比缩放到完全覆盖容器,背景图像有可能超出容器。
    contain: 将背景图像等比缩放到宽度或高度与容器的宽度或高度相等,背景图像始终被包含在容器内。
    
  • CSS3多背景
    background:url(test1.jpg) no-repeat scroll 10px 20px/50px 60px content-box padding-box,
                  url(test1.jpg) no-repeat scroll 10px 20px/70px 90px content-box padding-box,
               url(test1.jpg) no-repeat scroll 10px 20px/110px 130px content-box padding-box #aaa;
    

4.4 CSS3边框图片(了解)

  • border-image

    border-image:<‘ border-image-source ‘> || <‘ border-image-slice ‘> [ / <‘ border-image-width ‘> | / <‘ border-image-width ‘>? / <‘ border-image-outset ‘> ]? || <‘ border-image-repeat ‘
    
    复合属性。设置或检索对象的边框样式使用图像来填充。
    
  • border-image-source 设置或检索对象的边框样式使用图像路径。 值: url
  • border-image-slice 设置或检索对象的边框背景图的分割方式。 值: 浮点数/百分比
  • border-image-width 设置或检索对象的边框厚度。值: 长度值/百分比/浮点数
  • border-image-outset 设置或检索对象的边框背景图的扩展 值: 长度值/浮点数
  • border-image-repeat 设置或检索对象的边框图像的平铺方式。
    值:
    stretch: 指定用拉伸方式来填充边框背景图。
    repeat: 指定用平铺方式来填充边框背景图。当图片碰到边界时,如果超过则被截断。
    round: 指定用平铺方式来填充边框背景图。图片会根据边框的尺寸动态调整图片的大小直至正好可以铺满整个边框。
    space: 指定用平铺方式来填充边框背景图。图片会根据边框的尺寸动态调整图片的之间的间距直至正好可以铺满整个边框。
    

5 CSS3变换/过渡/动画

5.1 变换(transform)

相关属性

  • transform

    设置或检索对象的转换。

    取值

    none (默认值)无转换

    2D Transform Functions:

    matrix(): 以一个含六值的(a,b,c,d,e,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a,b,c,d,e,f]变换矩阵
    translate(): 指定对象的2D translation(2D平移)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0
    translatex(): 指定对象X轴(水平方向)的平移
    translatey(): 指定对象Y轴(垂直方向)的平移
    rotate(): 指定对象的2D rotation(2D旋转),需先有 <‘ transform-origin ‘> 属性的定义
    scale(): 指定对象的2D scale(2D缩放)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认取第一个参数的值
    scalex(): 指定对象X轴的(水平方向)缩放
    scaley(): 指定对象Y轴的(垂直方向)缩放
    skew(): 指定对象skew transformation(斜切扭曲)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0
    skewx(): 指定对象X轴的(水平方向)扭曲
    skewy(): 指定对象Y轴的(垂直方向)扭曲
    

    3D Transform Functions:

    matrix3d(): 以一个4x4矩阵的形式指定一个3D变换
    translate3d(): 指定对象的3D位移。第1个参数对应X轴,第2个参数对应Y轴,第3个参数对应Z轴,参数不允许省略
    translatez(): 指定对象Z轴的平移
    rotate3d(): 指定对象的3D旋转角度,其中前3个参数分别表示旋转的方向x,y,z,第4个参数表示旋转的角度,参数不允许省略
    rotatex(): 指定对象在x轴上的旋转角度
    rotatey(): 指定对象在y轴上的旋转角度
    rotatez(): 指定对象在z轴上的旋转角度
    scale3d(): 指定对象的3D缩放。第1个参数对应X轴,第2个参数对应Y轴,第3个参数对应Z轴,参数不允许省略
    scalez(): 指定对象的z轴缩放
    perspective(): 指定透视距离
    
  • transform-origin

    设置或检索对象以某个原点进行转换。 用法

    如果提供两个值,第一个用于横坐标,第二个用于纵坐标。
    如果只提供一个,该值将用于横坐标;纵坐标将默认为50%。
    3D变形需要制定Z坐标 第三个参数值
    

    取值

    left  right  center   <lenght>  <percentage>
    top bottom  center   <lenght>  <percentage>
    
  • transform-style

    指定某元素的子元素是(看起来)位于三维空间内,还是在该元素所在的平面内被扁平化。 flat: (默认)指定子元素位于此元素所在平面内 preserve-3d: 指定子元素定位在三维空间内

  • perspective

    指定观察者与「z=0」平面的距离,使具有三维位置变换的元素产生透视效果。「z>0」的三维元素比正常大,而「z<0」时则比正常小,大小程度由该属性的值决定。

    none: 不指定透视 : 指定观察者距离「z=0」平面的距离,为元素及其内容应用透视变换。不允许负值

  • perspective-origin

    设置透视点的位置

    用法

    ? 该属性提供2个参数值。

    如果提供两个,第一个用于横坐标,第二个用于纵坐标。
    如果只提供一个,该值将用于横坐标;纵坐标将默认为center。
    

    取值

    left  right  center   <lenght>  <percentage>
    top bottom  center   <lenght>  <percentage>
    
  • backface-visibility

    指定元素背面面向用户时是否可见。 决定一个元素背面面向用户时是否可见,需要直接在该元素上定义 <‘ backface-visibility ‘> 属性,而不能在其父元素上,因为该属性默认为不可继承。 取值

    visible: (默认)指定元素背面可见,允许显示正面的镜像。
    hidden: 指定元素背面不可见
    

2D变换

2D位移
  • translate(x, y)
  • translatex()
  • translatey()
2D缩放
  • scale(x, y)
  • scalex()
  • scaley()
2D旋转
  • rotate(deg)
2D倾斜
  • skew(x,y)
  • skewx()
  • skewy()
2D矩阵
  • matrix()

3D变换

3D位移
  • translate3d(x, y, z)
  • translatez()
3D缩放
  • scale3d()
  • scalez()
3D旋转
  • rotate3d(x, y, z, a)
  • rotatex()
  • rotatey()
  • rotatex()
3D矩阵
  • matrix3d()
多重变形
-webkit-transform:translate(-50%, -50%) rotate(45deg);
-moz-transform:translate(-50%, -50%) rotate(45deg);
-ms-transform:translate(-50%, -50%) rotate(45deg);
-o-transform:translate(-50%, -50%) rotate(45deg);
transform:translate(-50%, -50%) rotate(45deg);

5.2 过渡(transition)

过渡相关属性

  • transition 检索或设置对象变换时的过渡。

    注意:

    如果只提供一个参数,则为 <‘ transition-duration ‘> 的值定义;如果提供二个参数,则第一个为 <‘ transition-duration ‘> 的值定义,第二个为 <‘ transition-delay ‘> 的值定义

    用法 transition:[,]* = [ none | ] || || ||

  • transition-property 设置对象中的参与过渡的属性

    默认值为:all。默认为所有可以进行过渡的css属性。 如果提供多个属性值,以逗号进行分隔。 取值

    none: 不指定过渡的css属性
    all: 所有可以进行过渡的css属性
    <IDENT>: 指定要进行过渡的css属性
    

    那些CSS属性可以被过渡

    颜色属性
    具有长度值 百分比的属性
    值是数字的属性 如 z-index  opacity  outline-offset等
    变形系列属性
    阴影
    渐变
    
  • transition-duration 设置对象过渡的持续时间

    如果提供多个属性值,以逗号进行分隔。

  • transition-timing-function 设置对象中过渡的动画类型

    取值
    ease: 平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0) linear: 线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0) ease-in: 由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0) ease-out: 由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0) ease-in-out: 由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0) cubic-bezier(, , , ): 特定的贝塞尔曲线类型,4个数值需在[0, 1]区间内 http://cubic-bezier.com/ steps([, [ start | end ] ]?): 接受两个参数的步进函数。第一个参数必须为正整数,指定函数的步数。第二个参数取值可以是start或end,指定每一步的值发生变化的时间点。第二个参数是可选的,默认值为end。

  • transition-delay 设置对象延迟过渡的时间

CSS3触发过渡的条件

  • 伪元素触发
  • 媒体查询
  • JavaScript触发

5.3 动画

关键帧

帧——就是动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。

关键帧语法

@keyframes { }

:[ [ from | to | ]{ sRules } ][ [ , from | to | ]{ sRules } ]*

@keyframes testanimations {
    from { opacity: 1; }
    to { opacity: 0; }
}

@keyframes testanimations {
    from { transform: translate(0, 0); }
    20% { transform: translate(20px, 20px); }
    40% { transform: translate(40px, 0); }
    60% { transform: translate(60px, 20); }
    80% { transform: translate(80px, 0); }
    to { transform: translate(100px, 20px); }
}

@keyframes testanimations{
    0% { transform: translate(0, 0); }
    20% { transform: translate(20px, 20px); }
    40% { transform: translate(40px, 0); }
    60% { transform: translate(60px, 20px); }
    80% { transform: translate(80px, 0); }
    100% { transform: translate(100px, 20px); }
}

相关属性

  • animation 设置对象所应用的动画特效

    如果提供多组属性值,以逗号进行分隔。

    注意:如果只提供一个参数,则为 <‘ animation-duration ‘> 的值定义;如果提供二个参数,则第一个为 <‘ animation-duration ‘> 的值定义,第二个为 <‘ animation-delay ‘> 的值定义

    用法

    animation: <single-animation-name> || <time> || <single-animation-timing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state>
    
  • animation-name 设置对象所应用的动画名称

    必须与规则@keyframes配合使用,因为动画名称由@keyframes定义

  • animation-duration 设置对象动画的持续时间
  • animation-timing-function 设置对象动画的过渡类型

    ease: (默认)平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0) linear: 线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0) ease-in: 由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0) ease-out: 由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0) ease-in-out: 由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0) step-start: 等同于 steps(1, start) step-end: 等同于 steps(1, end) steps([, [ start | end ] ]?): 接受两个参数的步进函数。第一个参数必须为正整数,指定函数的步数。第二个参数取值可以是start或end,指定每一步的值发生变化的时间点。第二个参数是可选的,默认值为end。 cubic-bezier(, , , ): 特定的贝塞尔曲线类型,4个数值需在[0, 1]区间内

  • animation-delay 指定对象动画的延迟时间
  • animation-iteration-count 指定动画的具体循环次数

    number:动画循环次数 infinite: 无限循环

  • animation-direction 设置对象动画在循环中是否反向运动

    normal: 正常方向 (默认) reverse: 反方向运行 alternate: 动画先正常运行再反方向运行,并持续交替运行 alternate-reverse: 动画先反运行再正方向运行,并持续交替运行

  • animation-play-state 设置对象动画的状态

    running: 运动 (默认) paused: 暂停

  • animation-fill-mode 设置对象动画时间之外的状态

    none 默认值。动画在动画执行之前和之后不会应用任何样式到目标元素。 forwards 在动画结束后(由 animation-iteration-count 决定),动画将应用该属性值。 backwards 动画将应用在 animation-delay 定义期间启动动画的第一次迭代的关键帧中定义的属性值。这些都是from 关键帧中的值(当 animation-direction 为 "normal" 或 "alternate" 时)或 to 关键帧中的值(当 animation-direction 为 "reverse" 或 "alternate-reverse" 时)。 both 动画遵循 forwards 和 backwards 的规则。也就是说,动画会在两个方向上扩展动画属性。

?

6 CSS3嵌入WEB字体

6.1 什么是@font-face

  • 可以把字体放置在服务器上,而不受制于客户端系统字体
  • 浏览器会根据指定的命令将对应的字体下载到本地缓存
  • 1998年@font-face加入到css2中, 但css2.1中又被移出,css3重新加入
  • IE兼容性极好

6.2 @font-face语法

格式

@font-face {
    font-family: <identifier>;
    src: <fontsrc> [<string>] [, <fontsrc> [<string>]]*;
    [<font>];
 }

相关参数

  • identifier 字体名称
  • url 此值指的是你自定义的字体的存放路径,可以是相对路径也可以是绝路径
  • string 字体的格式,主要用来帮助浏览器识别, format(fontType)

    truetype .ttf

    Firefox3.5+ Chrome 4+ Safari 3+ Opear10+ IOS Mobile Safari 4.2+ IE9+
    

    opentype .otf

    Firefox3.5+ Chrome 4+ Safari 3+ Opear10+ IOS Mobile Safari 4.2+
    

    Web Open Font Format .woff

    Firefox 3.5+ Chrome 6+ Safari 3.6+ Opera 11.1+ IE9+
    

    embedded Open Type .eot

    IE4+
    

    svg .svg

    Chrome 4+ Safari 3.1 + Opera 10+ IOS Mobile Safari 3.2+
    
  • font 定义字体相关样式

    font-weight
    font-style
    font-size
    font-variant

    font-stretch

兼容性处理

@font-face {
    font-family: ‘diyfont‘;
    src: url(‘diyfont.eot‘); /* IE9兼容模式 */
    src: url(‘diyfont.eot?#iefix‘) format(‘embedded-opentype‘), /* IE9 - */
         url(‘diyfont.woff‘) format(‘woff‘), /* chrome、firefox opera  safari  IE9+ 最佳格式 */
         url(‘diyfont.ttf‘) format(‘truetype‘), /* chrome、firefox、opera、Safari, Android, iOS 4.2+ IE9+*/
         url(‘diyfont.svg#fontname‘) format(‘svg‘); /* iOS 4.1- */
}

6.3 字体工具

web字体定制

web字体转换

6.4 使用字体图标

使用字体图标的优势

  • 相比位图更加清晰
  • 灵活性高,更方便改变大小、颜色、风格等
  • 兼容性好,低版本IE也支持

常用的字体图标库

原文地址:https://www.cnblogs.com/ouyang99-/p/9784080.html

时间: 2024-10-13 07:53:17

css3新增功能的相关文章

CSS3新增功能02

1. CSS3中background新属性 1.1 background-size:直接设置图片的大小. 1.1.1 可以使用数值直接设置宽高. 1.1.2 cover:缩放图片,铺满盒子,图片的宽高比不变,会使图片某一部分伸出盒子范围. 1.1.3 contain:缩放图片,不会铺满盒子,图片的宽高比不变,在图片全部在盒子范围内的前提下,缩放图片直到图片的宽或者高达到盒子对应的值,会使盒子有一部分为空白. 1.2 background-origin:设置图片在盒子中开始显示的位置 1.2.1

CSS3新增功能03

1. 3d效果 1.1 transform属性的3d效果 在transform属性值中有rotate旋转,translate移动距离,scale缩放,skew扭曲.这些属性值都可以分为x轴方向,y轴方向和z轴方向.z轴方向是垂直浏览器向外的方向,可以通过多z轴方向设置各属性值来实现3d效果. 当元素需要设置3d效果时,必须给其父元素设置transform-style: preserve-3d;属性,使元素在做变换时是已3d的效果显示.同时可以给该元素的祖辈元素设置perspective: 100

CSS3新增属性text-shadow详解及燃烧的字体实战开发

今天我们有很多程序员在给文本设置样式时,都感觉无从下手.一般有两种情况: 1) 不知道关于文本到底有哪些样式属性: 2) 即使借助开发工具的自动提醒,依然不清楚样式属性的具体意思,以及具体用法. 今天这篇文章,我将带领大家一起来领受CSS3在文本样式应用方面的超强能力.通过精彩的实例,来使大家重新认识CSS3文本样式,真心希望大家通过此篇文章,即使不能做到精通CSS3的文本样式的应用,也会做到熟练应用. 实例: 如何利用CSS3制作燃烧的字体? 以前,如果我们网页上想要显示一个燃烧着的文本,大家

h5新增和css3新增

编辑器: webstorm, 英文版 sublime, hbuilder vscode, dwh5的新标签及特性(移动端用的多),,,,如果想在图片里面显示 “帅哥" 记得使用单双引号,外面是单引号,里面是双引号例如: <img src="" title='这里有一个"傻狗"'/>h5新增语义化标签:(对浏览器和搜索引擎友好,)div没有语义化, 都可能出现很多次 section元素 表示页面中的一个区块 article 元素: 表示页面中的一

PHP5.2至5.6的新增功能详解

截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护 [注] 的 PHP5.2, 其余的一半用户在使用 PHP5.3 [注].因为 PHP 那"集百家之长"的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣.本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征. PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数

Netbackup 7.6新增功能和优势

  一.新增功能 1.1NetBackup Accelerator(适用于 VMware) 此功能使用 Accelerator 技术加快虚拟化备份速度,在完成增量备份期间还提供完全备份映像.借助 VMware 更改数据块跟踪 (CBT) 和 NetBackup Accelerator,仅将发生变化的数据块从客户端传输至介质服务器. ·       备份速度增加高达 35 倍,可以更好地满足服务级别协议要求而不影响恢复 ·       减少了数据传输量,因此缓解了基础架构承受的压力 1.2NetB

CSS3新增特性

CSS3新增属性选择器 属性名称 含义 [att^="value"] 该属性的值以指定的值开始 [att$="value"] 该属性的值以指定的值结束 [att*="value"] 该属性的值包含指定的值,而无论其位置 RGBA透明度 当设置一个RGBA色彩的时候,参数依次设定为红.蓝.绿(可以位0~255或百分数)和通道Alpha(0~1之间) 多背景图片 用户可以使用多个属性来设置背景图片或特效效果,如background-image.bac

ADO.NET 中的新增功能

ADO.NET 中的新增功能: .NET Framework (current version) 以下是 .NET Framework 4.5 中 ADO.NET 的新增功能. SqlClient Data Provider 以下是 .NET Framework 4.5 中用于 SQL Server 的 .NET Framework 数据提供程序的新增功能: ConnectRetryCount 和 ConnectRetryInterval 连接字符串关键字 (ConnectionString)

.NET Framework 1.1、2.0、3.0、3.5、4.0各版本新增功能

一..NET Framework 1.1版本 1.ASP.NET移动控件 2.ADO.NET的改动 添加System.Data.Odbc命名空间 新增System.Data.OracleClient命名空间供Oracle使用 DataReader对象公开HasRows属性,判断是否有返回行 Connection对象具有EnlistDistributedTransaction,可以在分布式事务中启动手动登记. 3.并发执行 .NET Framework 1.1版本支持并行执行. 4..NET Fr