h5c3动画

本文详细介绍了 CSS3 中的 transition 过渡动画、盒子阴影、盒子模型、文字阴影、背景设置、线性渐变、径向渐变、二维及三维转换等高级特性。通过丰富的案例和代码实例,帮助读者掌握 CSS3 的动画效果和布局技巧。
摘要由CSDN通过智能技术生成

transition 过渡动画

transition 的参数
        参数1:表示过渡的属性 all 代表所有的属性
        参数2:表示过渡的时间
        参数3:表示动画的延迟时间
        参数4:表示动画的运动方式 linear 匀速  staps()分布的 表示这个动画需要  几步完成

案例

实现结果
在这里插入图片描述
部分代码

.box{
   width: 100px;
   height: 100px;
   background-color: green;

   transition: all 2s 0s linear;
   /* 如果过渡动画卸写在 hover 里面 就只是 hover的时候有动画效果  返回原装就没有了 */
}

盒子阴影

 盒子阴影的几个参数
            参数1   是这个盒子阴影的水平位置
            参数2   是这个盒子阴影的垂直位置
            参数3   是阴影的模糊度
            参数4   是这个阴影的宽度
            参数5   阴影的颜色
            参数6   是决定阴影是外扩还是内聚 默认外扩
            
 盒子阴影可以写多个  多个阴影之间应 , 隔开 而且先写的优先级更高 可以直接覆盖后面的

案例

在这里插入图片描述
部分代码

p {
    font-size: 50px;
    margin: 100px;
    border: 5px solid black;
    box-shadow: 0px 0px 10px 20px gold;
}
}

盒子模型

box-sizing这个属性会用来设置盒子的边框以及边距是外扩还是内聚
默认情况下盒子是外扩外扩会使盒子整体呈现出来的效果变大可能会影响的我们的布局

内聚的属性值border-box
默认值 content-box

文字阴影

text-shadow
        参数1 文字阴影的水平位置
        参数2 文字阴影的垂直位置
        参数3 模糊度
        参数4 阴影的颜色

案例

在这里插入图片描述
部分代码

p:hover{
    text-shadow: -5px -5px 5px white, 5px 5px 5px black;
    transition: all 2s;
}

background

background参数
        参数1   背景图片的路径
        参数2   表示的是是否平铺
                repeat允许背景图片平铺是默认值
                no- -repeat不允许平铺
                repeat--x沿轴平铺
                repeat-y沿y轴平铺

        参数3表示的是图片的位置
            参数3 有两个值 第一个值表示水平位置的 第二个值表示垂直位置
            参数3的值可以给多种数据
                方位值   水平 left cener right
                            垂直  top left  center  right
                具体的像素值    水平方向    代表距离盒子左边是多少像素
                                垂直方向    代表距离盒子上面是多少像素
                给百分比    给百分比的意思是 图片相对应的百分比盒子对饮的百分比数重合

        参数4  注意点  要加参数4 就必须在 参数3 的后面加一个 /     
            参数4 表示的是图片的大小
                给具体的像素值  表示的是背景图片的大小
                给百分比 指的是相对盒子的百分比 100% 就是铺满盒子                       
                给特殊的单词 
                    cover  会使得图片有一部分没有显示   表示的是  图片必须覆盖盒子  缩放后 图片一定大于等于 盒子
                    contain    背景图片同比放大  图片不会变行  表示盒子必须包含这个背景图片 缩放后 图片一定小于等于图片

        参数5 背景颜色
            如果有多张图片作为背景 那最先写的优先级要高于后写的

background 是一个复合属性 (继承属性)就是说它是由多个子属性组成的

案例

实现结果

部分代码

.box{
   width: 623px;
   height: 417px;
   margin: 50px auto;
   background: url(./images/bg1.png) no-repeat left top,
               url(./images/bg2.png) no-repeat right top,
               url(./images/bg3.png) no-repeat right bottom,
               url(./images/bg4.png) no-repeat left bottom,
               url(./images/img6.jpg) no-repeat 113px 86px / 367px 257px;
}

线性渐变

线性渐变  linear-gradient 
            参数1 渐变的方向 指的是最终在哪个方向
            后面参数的颜色  至少是两个颜色
向右上角渐变
下面两行代码 是 等同的
background-image: linear-gradient(to right top, red, yellow);
background-image: linear-gradient(45deg, red, yellow);

在这里插入图片描述

径向渐变

径向渐变和线性渐变用法一模一样
       参数1  指的是径向渐变的圆的半径 和圆心的位置
       参数后面的接的颜色  至少有两种  而且作为填充色的都是最后一种颜色
 background-image: radial-gradient( 100px at center, Orange 30%, rgb(255, 217, 0), skyblue);

在这里插入图片描述

二维转换

旋转

rotate

transform: rotate(45deg);

平移

translate

只给一个参数  就是沿着X轴移动
transform: translate(300px);

 给两个参数  一个表示沿着x轴移动 一个沿着y轴移动
如果只要盒子沿着y轴移动  那么就写两个参数
transform: translate(0,300px);

 设置沿着y轴移动
transform: translateY(300px);
 设置沿着X轴移动 
transform: translateX(300px);

缩放

scale
参数中传入需要缩放的倍数

transform: scale(1.5);

扭曲

skew

transform: skew(360deg);

在这里插入图片描述

三维旋转

 三维旋转

x轴旋转 上下旋转书 横着拿翻书的动作 齿轮

y轴旋转 左右旋转 钢管舞

Z轴旋转 顺时针或者逆时针  大风车

如果直接进行变换  效果并不明显  所以我们要给他加一个视距

我们案例中直接网元素上面加视距的用法并不多

视距的作用:  让三维变换效果更明显 

效果

部分代码

li{
     transform: perspective(800px);

}
 li:nth-child(1):hover {
     transform: perspective(800px) rotateX(45deg);
 }

 li:nth-child(2):hover {
     transform: perspective(800px) rotateY(45deg);

 }

 li:nth-child(3):hover {
     /* rotateZ的效果就是直接写rotate的效果 */
     /* transform: perspective(800px) rotateZ(45deg); */
     transform: perspective(800px) rotate(45deg);
 }

在这里插入图片描述

三维移动

li:nth-child(1):hover {
  /* transform: perspective(800px) translate(400px); */
  transform: perspective(800px) translateX(400px);
}

li:nth-child(2):hover {
  transform: perspective(800px) translateY(400px);
}

li:nth-child(3):hover {
  transform: perspective(800px) translateZ(-400px);
}

在这里插入图片描述

3D盒子案例

<ul>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
 </ul>
<style>
        body{
            /* 我们加视距的时候  通常是给不动的那个盒子加的  如果上面的盒子在动 那么就一直往上加 */
            perspective: 800px;
        }

        ul{
            list-style: none;
            padding: 0;

            width: 200px;
            height: 200px;
            margin: 200px auto;
            border: 1px solid black;

            position: relative;
            /* perspective: 800px; */

            transition: all 3s;

            /* 浏览器没有默认的3D层级显示 所以我们需要设置 */
            transform-style: preserve-3d;
        }

        ul:hover{
            transform: rotateY(360deg) rotateX(360deg);
        }

        li{
            width: 100%;
            height: 100%;
            background-color: #0f0;

            /* 让所有的li都叠起来 */
            position: absolute;

            transition: all 1s;
        }

        li:nth-child(1){
            left: -200px;
            background-color: #f00;

            transform-origin: right;
            transform: rotateY(90deg);
        }

        li:nth-child(2){
            top: -200px;
            background-color:pink;

            transform-origin: bottom;
            transform: rotateX(-90deg);
        }

        li:nth-child(3){
            right: -200px;
            background-color: yellow;

            transform-origin: left;
            transform: rotateY(-90deg);
        }

        li:nth-child(4){
            bottom: -200px;
            background-color:plum;

            transform-origin: top;
            transform: rotateX(90deg);
        }

        li:nth-child(6){
            background-color: skyblue;
            transform: translateZ(200px);
        }
    </style>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值