假期重点复习

## 滤镜filter

filter: blur($px); blur模糊处理 数值越大越模糊

## 过渡

transition: 要过渡的属性 花费时间 运动曲线 何时开始;

多个属性用逗号隔开(transition:width .4s,height .5s;),也可以写成 transition: all .5s;

注: 花费时间与何时开始后面必须家单位 s  ;

    该属性谁做过渡给谁加

***

div{

    width:200px;

    height:100px;

    transition:width .5s  1s, height .5s 1s;

}

div::hover{

    width:400px;

    height:200px;

}

***

# 动画

制作动画步骤:

1. 先定义动画

2. 在使用(调用)动画

它比过渡样式更多。可以不用鼠标经过也可以变化

## 用keyframes(关键帧)定义动画(类似于定义类选择器)

注意:  1.可以定义多次动画

      2.里面的百分比为整数

      3. 里面的百分比即为 总时间 的划分

### 格式

***

@keyframes 动画名称{

    0%{

        width1:00px;

    }

    100%{

        width:200px;

    }

}

***

<!-- 调用动画 -->

div{

    <!-- 调用动画 -->

    animation-name: 动画名称;

    <!-- 持续时间 -->

    animation-duration:持续时间(单位为 s );

}

### 动画序列

1. 0%是动画开始,100%是动画完成。这样的规则就是动画序列

2. 在@keyframes中规定某项CSS样式,就能创建当前样式逐渐改变为新样式的动画效果

3. 可以改变任意多的样式任意次数

4. 用百分比的形式来规定变化发生的时间,或用关键词"from"和"to",等同于0%和100%


 

### 多次调用

@keyframes 动画名称{

    0%{

        translate();

    }

     25%{

        translate();

    }

      50%{

        translate();

    }

      75%{

        translate();

    }

      100%{

        translate();

    }

}

## 动画属性

规定动画名称

animation-name: 动画名称;   (必须写)

规定持续时间

animation-duration:持续时间; (必须写)

规定运动曲线

animation-timing-function:ease(默认值);

属性值:

linear: 动画从头到尾速度是相同的,匀速

ease: 动画以低俗开始,然后加快,在结束时前变慢

ease-in:动画以低速开始

ease-out: 动画以低速结束

ease-in-out:动画以低速开始结束

重点关注:    steps():指定了时间函数中的时间数量(步长)   效果是一步一步走



 

规定开始时间  delay(延迟)

animation-delay:1s;

规定重复次数   iteration(重复的)

animtion-iteration-count:1;(默认1次)   infinite(无限)

规定是否在下一周期逆向播放  direction(方向)

animation-direction:normal(默认);   alternate(逆播放)

规定动画结束后状态, forwards(保持) backwards(回到起始)(默认)

animation-fill-mode:forwards;

规定动画是否正在运行或暂停 running(运行)(默认)  paused(暂停)

animation-play-state: paused;

## 动画简写属性 顺序只对两个时间有一定要求  不包括animation-play-state

animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画其实或者结束状态


 

重点: 元素可以添加多个动画,之间用逗号隔开

例如: animation:bear 5s,fox 2s;

# 2D转换

2D转换是改变标签在二维平面上的位置与形状的一种技术

转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果。

转换 可以简单理解为变形

移动:translate   旋转:rotate   缩放:scale

## 二维坐标系

水平向右为X轴,垂直向下为Y轴

## 2D移动 translate  

2D移动是2D转换的一种功能,可改变元素在页面中的位置,类似于定位

### 语法

transform:translate(x,y);

或者分开写:

transform:translateX(n);

transform:translateY(n);

注:分开写里边的X Y要大写  单位一般为px


 

### 重点

1. translate最大优点是:不会影响到其他元素位置(他还占有原先位置)

2. 如果translate里边的参数若为百分数,移动的距离为 盒子自身 的宽度或高度来对比的

3. translate对于行盒无效 (块盒及行块盒有效)


 

## 2D旋转

### 语法

transform:rotate(度数);

### 重点

1. rotate里面跟度数,单位是deg.比如rotate(45deg)

2. 角度为正时,顺时针旋转,为负,逆时针旋转

3. 默认旋转中心为元素的中心点

***重点*** 旋转过后会改变坐标轴


 

## 转换中心点  transform-origin

### 语法

transform-origin:x y;

### 重点

1. 后面的参数x和y使用空格隔开

2. 默认转换中心为元素的中心点 (50% 50%)

3. 还可以给x y 设置像素 或者 方位名词 (top right bottom lift center)

## 2D缩放

### 语法

transform: scale(x,y);

### 重点

1. 参数里面是数字,不跟单位, 数字表示为原本倍数

2. 等比例缩放(即宽高缩放相同比例)有特殊写法,例如:

    transform:scale(2);

3. 可以缩小 参数要小于1

    transform:scale(0.5,0.5);

4. scale相比于width height 的优势: 不会影响其他盒子 而且可以设置缩放中心

## 2D转换的综合性写法

注意: 1. 同时使用多个转换,其格式为: transform:translate() rotate() scale() 等

      2. 其顺序会影响转换的效果 (先旋转会改变坐标轴方向)

      3. 当我们同时有位移和其他属性的时候,记得将位移放在最前面

# 3D转换

## 三维坐标系

立方体的旋转中心为体心,以此建立三维坐标系,非人为设置不会改变

x轴:水平向右  注意:水平向右为正值

y轴:垂直向下  注意:下面为正值

z轴:垂直屏幕  注意:垂直屏幕往外面为正值,往里面为负值

## 3D位移

translateX(100px);

translateY(100px);

translateZ(100px);    (注意:translateZ一般以px为单位)

复合写法:

translate3d(x,y,z);   (此时的x y z是不能省略的 ,没有就写0)

注意:transform:translateX(100px);

     transform:translateY(100px);

    此时只有Y轴有效



 

## 3D旋转 rotate3d

3D旋转指可将物体沿着x y z轴或者自定义轴旋转

### 语法

transform:rotateX(45deg):沿X轴正方向旋转45度

transform:rotateY(45deg):沿Y轴正方向旋转45度

transform:rotateZ(45deg):沿Z轴正方向旋转45度

transform:rotate3d(x,y,z,deg):沿着自定义轴旋转deg为角度(了解即可)


 

判断旋转方向  左手准则:

大拇指指向轴的正方向,其他手指弯曲方向为正值时的旋转方向

例如:x y z轴的值可以为任何值

transform:rotate3d(1,1,0,45deg)

x y z表示旋转轴的矢量,是标示你是否希望沿着该轴旋转,最后一个标示旋转角度

## 透视  perspective  近大远小 只能确保亲子元素开启立体空间

如果想要在网页中实现3D效果图,我们就需要透视

透视我们也称为视距:视距就是人的眼睛到屏幕的距离

视距越小,成像越大,视距越大,成像越小

透视的单位是像素

重点:透视写在被观察元素的父盒子上面的,加在祖先元素上也可以(有的可能不支持继承)

perspective,视距,视距就是一个距离人的眼睛到屏幕的距离,视距越小,成像越大,视距越大,成像越小

translateZ,表示物体距离屏幕的距离,z轴越大(正值)我们看到的物体就越大

以上两个属性都可以改变成像大小

## 3D呈现  transform-style  为子元素开启立体空间

1. 控制子元素是否开启3D空间

2. transform-style:flat;子元素不开启立体空间 (默认的)

3. transform-style:preserve-3d; 子元素开启立体空间  (preserve:保留)

4. 代码写给父级,但影响的是子盒子

5. 这个属性很重要

自己总结:后辈元素必须同时拥有transform-style以及perspective下可以实现3D效果

# 背景渐变linear-gradient

## 语法

background: linear-gradient(起始方向、颜色1、颜色2、···)

background: -webkit-linear-gradient(left、red、blue、···)

background: -webkit-linear-gradient(left top、red、blue、···)

注意: 其实方向可以是:方位名词 或者 度数,如果省略默认就是top

创建背景渐变同样可以通过CSS来实现,使用linear-gradient或者radial-gradient属性。这两者分别用于线性渐变和径向渐变。

线性渐变(linear-gradient):

css

.gradient-bg {

  background: linear-gradient(to right, #ff0000, #00ff00);

}

这个例子中,to right表示渐变方向是从左到右,#ff0000是起始颜色(红色),#00ff00是结束颜色(绿色)。你可以根据需要调整渐变的方向和颜色。

径向渐变(radial-gradient):

css

.gradient-bg {

  background: radial-gradient(circle, #ff0000, #00ff00);

}

在这个例子中,circle表示渐变形状是一个圆形,#ff0000是起始颜色,#00ff00是结束颜色。你可以调整形状、起始(圆心)和结束颜色。

多色渐变:

你还可以使用多个颜色实现更复杂的渐变效果:

css

.gradient-bg {

  background: linear-gradient(to right, #ff0000, #00ff00, #0000ff);

}

这会创建一个从红色到绿色再到蓝色的线性渐变。

角度渐变:

css

.gradient-bg {

  background: linear-gradient(45deg, #ff0000, #00ff00);

}

这个例子中,45deg表示渐变的方向是从45度的角度开始。

# 粘性定位

position: sticky;

粘性定位特点:

1. 以浏览器的可视窗口为参照点移动元素

2. 粘性定位占有原先位置

3. 必须添加top、left、right、bottom其中一个才会有效,否则以相对定位形式

# 盒子阴影

box-shadow: h-shadow v-shadow blur spread color inset;

h-shadow: 必需,水平阴影的位置,允许为负值

v-shadow: 必需,垂直阴影的位置,允许为负值

blur: 可选,模糊距离

spread:可选,阴影的尺寸

color: 可选,阴影的颜色

inset: 可选,将外部阴影(outset)改为内部阴影(inset)   (默认为外部阴影,但不能书写outset)


 

注:盒子阴影是不占用空间的

# 文字阴影

text-shadow:h-shadow v-shadow blur color;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值