Css3的新特性和Css3的动画

一,Css3新增特性有哪些

css3比css2多了一些新特性,比如:.nth-child,nth-of-type,first-child,last-child等一些伪类选择器还有圆角:border-radius,盒阴影:box-shadow,渐变:linear gradiendt还有动画:transition(过渡),transform(实现位移(translate),倾斜(skew),旋转(rotate),缩放(scale)),animation(关键帧动画)配合@keyframes等 以及@media 和flex弹性盒子;

CSS3的新特性大致分为以下六大类;

CSS3选择器;

1.基本选择器

基本选择器又分为:
子选择器;
相邻兄弟选择器;
通用兄弟选择器;
群组选择器;

2.属性选择器

属性选择器允许按照元素的某个属性来选择元素。例如,可以根据元素的属性值选择特定的元素。

   <div bb >
    </div>
    <div  aa >
    </div>
div[bb]{
 width: 50px;
 height: 50px;
 background-color: red;
}
div[aa]{
 width: 50px;
 height: 50px;
 background-color: blanchedalmond;
}

在这里插入图片描述

3.伪类选择器

伪类就是开头为冒号的关键字:

:pseudo-class-name

示例:

    <p>记得喝水</p>

    <p>记得吃饭</p>
p:first-child {
  font-size: 120%;
  font-weight: bold;
}

在这里插入图片描述
还有一些如::last-child,:only-child,:invalid
伪元素开头为双冒号::

::pseudo-element-name

注意:一些早期的伪元素曾使用单冒号的语法,所以你可能会在代码或者示例中看到。现代的浏览器为了保持后向兼容,支持早期的带有单双冒号语法的伪元素。
::first-line伪元素选择器会值得信赖地做到这件事——即使单词/字符的数目改变,它也只会选中第一行。
示例:

      <p>Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo
            melon azuki bean garlic.</p>

    <p>Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard
            greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</p>
p::first-line {
    width: 200px;
  font-size: 120%;
  font-weight: bold;
}

在这里插入图片描述
除了以上示例还有更多伪类伪元素 https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements 查看

4、CSS3边框与圆角

1.CSS3圆角border-radius:可以为元素添加圆角边框(块元素,行内块元素,行内元素)
属性:
border-top-left-radius 左上角
border-top-right-radius 右上角
border-bottom-right-radius 右下角
border-bottom-left-radius 左下角
复合属性:border-radius:
属性值

四个值:左上角 右上角 右下角 左下角
三个值:左上角 右上角和左下角 右下角
两个值:左上角和右下角 右上角和左下角
一个值:4个角都生效
border-radius中的属性值由两个参数值构成: value1 / value2,值之间用/分隔,value1代表圆角的水平半径,value2代表圆角的垂直半径。
圆形与椭圆:
一旦使用百分比,参照的是元素本身的高度与宽度
当拿50%时,宽等于高为圆形 宽不等于高为椭圆形;

2.盒阴影box-shadow:可以控制一个或多个下拉阴影的框;
语法:box-shadow: 水平方向的偏移量 垂直方向的偏移量 模糊程度 扩展程度 颜色 是否具有内阴影;
属性值的介绍:

偏移量:

把元素左上角(0,0)作为基准点,找水

平方向和垂直方向的偏移量

水平: 正值 — 右 ,负值 — 左

垂直: 正值 — 下 ,负值 — 上

模糊程度:

边界模糊,但是边界线未动
由边界线向外模糊多少像素

扩展程度:

盒子阴影,上下左右都向外扩展多少像素
是否具有内阴影:

inset(默认没有,也就是默认是外阴影)
加上inset,盒子的阴影为内阴影
扩展程度可为负值,但是模糊程度不可以

5.CSS3背景与渐变

背景:
background-image

backgroundimage:url('1.jpg),url('2.jpg')

使用逗号把图片分开
background-cilp

background-cilp:border-box / padding-box / content-box

background-origin
定义:设置背景图像的原始起始位置

background-repeat
定义:设置是否及如何重复背景图像,默认地,背景图像在水平和垂直方向上重复。

background-size
定义:指定背景图像的大小

复合属性background
定义:可以在一个声明中设置所有的背景属性
CSS3渐变:
定义:可以在两个或者多个指定颜色之间显示平移的过渡

线性渐变
定义:是沿着一根轴线改变颜色,从起点到终点进行顺序渐变(从一边拉向另一边)
语法:background:linear-gradient(方向,开始颜色,结束颜色)

径向渐变
定义:从起点到终点,颜色从内向外进行圆形渐变
语法:background:radial-gradient(形状尺寸,开始颜色,结束颜色)

6、CSS3过渡

定义:允许css的属性值在一定时间区间内平滑的过渡,在鼠标点击,鼠标滑过或对元素任何改变中触发,并圆滑地以动画形式改变css的属性值。

1.transition-property属性
定义:设置对象中的参与过渡的属性
语法:transition-property:none | all | property

2.transition-duration属性
定义: 设置对象过渡的持续时间
语法:transition-duration:time

3.transition-timing-function属性
定义:设置对象中过渡的动画类型,即规定过渡效果的速度曲线。
该属性允许过渡效果随着时间来改变其速度。
语法:只能使用一个属性值
transition-timing-function: linear|ease|ease-in|ease-out|ease-in-out|cubic-
bezier(n,n,n,n);

4.transition-delay属性
定义:设置对象延迟的过渡时间
语法:transition-delay:time
参数说明:
指定秒或者毫秒数来延迟动画效果的开始,默认是0

5.transition复合属性
语法:
transition : property duration timing-function delay;
参数说明:过渡时间和延迟时间的顺序不能乱、

CSS3变换

定义:让一个元素在一个坐标系统中变形,这个属性包含一系列的变形函数,可以移动,旋转,缩放元素。

语法:transform:none | 默认值是none

2d变换

1.rotate()旋转

定义:通过指定一个角度参数,对元素指定一个2D的旋转

语法:transform:rotate(angle) 单位deg

参数说明:angle指旋转角度,正数表示顺时针旋转,负数表示逆时针旋转

2.translate()平移

定义:根据X轴和Y轴的位置给定参数,使当前元素位置移动

分类:

translateX() 仅水平方向移动

语法:transform:translateX() 单位px

translateY() 仅垂直方向移动

语法:transform:translateY() 单位px

translate(x,y) 水平方向和垂直方向同时移动

语法:transform:translate( X, Y) 单位px

注意:如果只写一个参数,第二个默认是0,也就是只设置了水平方向上的位移

3.scale( )缩放

定义:设置元素的缩放程度

分类:

scaleX( ) 仅水平方向缩放

语法:transform:scaleX() 没有单位

scaleY( ) 仅垂直方向缩放

子主题 语法:transform:scaleY() 没有单位

scale(x,y) 使元素水平和垂直方向同时缩放

语法:transform:scale(x,y) 没有单位

4.skew()扭曲/倾斜

定义:设置元素的倾斜状态

分类:

skewX( ) 仅使元素在水平方向上扭曲变形 单位deg 正值 ----逆时针

skewY( ) 仅使元素在垂直方向上扭曲变形 单位deg 正值 ----顺时针

skew( ) 使元素在水平方向和垂直方向上扭曲变形 单位deg

注意:0deg与180deg 效果一样

二、CSS3动画

定义:使元素从一种样式逐渐变化到另外一种样式的效果

@keyframes

定义:keyframes关键帧,用来决定动画变化的关键位置

注意:keyframes 控制关键位置,并不是所有的位置

语法:

@keyframes animationname{

keyframes-selector{

cssStyles;

}}

animationname:必写项,定义动画的名称

keyframes-selector:必写项,动画持续时间的百分比 0% - 100%之间, 或者使用form和to关键字也可以设置,form代表0%,to代表100%

示例:

@keyframes abc {

from{transform: rotate(0)}

50%{transform:rotate(90deg)}

to{transform: rotate(360deg)}

}

animation属性

1.animation-name属性

设置对象所应用的动画名称

语法:

animation-name:keyframename | none

参数说明:

keyframename:指定要绑定到选择器的关键帧的动画名称

2.animation-duration属性

定义:设置对象动画的持续时间

语法:

animation-duration:time

参数说明:指定对象播放完成需要花费的时间,默认值是0

3.animation-timing-function属性

定义:设置对象动画的过渡类型,即规定动画的速度曲线

速度曲线定义动画从一套 CSS 样式变为另一套所用的时间。
速度曲线用于使变化更为平滑。

语法:

animation-timing-function: value;

参数说明:与transition-timing-function属性的参数一样

linear 动画从头到尾的速度是相同的。
ease 默认。动画以低速开始,然后加快,在结束前变慢。
ease-in 动画以低速开始。
ease-out 动画以低速结束。
ease-in-out 动画以低速开始和结束。
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。
4.animation-delay属性

定义:设置动画的延迟时间

语法:

animation-delay:time

参数说明:可选值,定义动画开始前等待的时间,以秒或者毫秒数计数,默认值是0

5.animation-iteration-count属性

定义:设置对象动画的循环次数

语法:

animation-iteration-count : infinite | number

参数说明:

number为数字,其默认值是1

infinite:无限循环次数

6.animation-direction属性

定义:设置对象动画是否反向运动

语法:

animation-direction:normal , reverse , alternate , alternate-reverse

参数说明:

normal : 正常方向

reverse :反向运动

alternate : 先正常运动在反向运动,并持续交替运行, 需要配合循环属性使用

alternate-reverse : 先反向运动在正常运动,并持续交替运行, 需要配合循环属性使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值