2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

HTML5 第二天

一、rotate

2d旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转

使用步骤:

  1. 给元素添加转换属性 transform
  2. 属性值为 rotate(角度)transform:rotate(30deg) 顺时针方向旋转 30度
div{
      transform: rotate(0deg);
}
二、三角
  • 代码演示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            position: relative;
            width: 249px;
            height: 35px;
            border: 1px solid #000;
        }

        div::after {
            content: "";
            position: absolute;
            top: 8px;
            right: 15px;
            width: 10px;
            height: 10px;
            border-right: 1px solid #000;
            border-bottom: 1px solid #000;
            transform: rotate(45deg);
            transition: all 0.2s;
        }
        /* 鼠标经过div  里面的三角旋转 */

        div:hover::after {
            transform: rotate(225deg);
        }
    </style>
</head>

<body>

</body>

</html>
二、设置元素旋转中心点(transform-origin)
  1. transform-origin 基础语法
transform-origin: x y;
  1. 重要知识点

  2. 注意后面的参数 x 和 y 用空格隔开

  3. x y 默认旋转的中心点是元素的中心 (50% 50%),等价于 center center
  4. 还可以给 x y 设置像素或者方位名词(topbottomleftrightcenter)
三、旋转中心案例
  • 代码演示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            margin: 100px auto;
            transition: all 1s;
            /* 1.可以跟方位名词 */
            /* transform-origin: left bottom; */
            /* 2. 默认的是 50%  50%  等价于 center  center */
            /* 3. 可以是px 像素 */
            transform-origin: 50px 50px;
        }

        div:hover {
            transform: rotate(360deg);
        }
    </style>
</head>

<body>

</body>

</html>
四、 2D 转换之 scale
  1. scale 的作用

  2. 用来控制元素的放大与缩小

  3. 语法

transform: scale(x, y)
  1. 知识要点

  2. 注意,x 与 y 之间使用逗号进行分隔

  3. transform: scale(1, 1): 宽高都放大一倍,相当于没有放大
  4. transform: scale(2, 2): 宽和高都放大了二倍
  5. transform: scale(2): 如果只写了一个参数,第二个参数就和第一个参数一致
  6. transform:scale(0.5, 0.5): 缩小
  7. scale 最大的优势:可以设置转换中心点缩放,默认以中心点缩放,而且不影响其他盒子

  8. 代码演示

   div:hover {
       /* &#x6CE8;&#x610F;&#xFF0C;&#x6570;&#x5B57;&#x662F;&#x500D;&#x6570;&#x7684;&#x542B;&#x4E49;&#xFF0C;&#x6240;&#x4EE5;&#x4E0D;&#x9700;&#x8981;&#x52A0;&#x5355;&#x4F4D; */
       /* transform: scale(2, 2) */

       /* &#x5B9E;&#x73B0;&#x7B49;&#x6BD4;&#x7F29;&#x653E;&#xFF0C;&#x540C;&#x65F6;&#x4FEE;&#x6539;&#x5BBD;&#x4E0E;&#x9AD8; */
       /* transform: scale(2) */

       /* &#x5C0F;&#x4E8E; 1 &#x5C31;&#x7B49;&#x4E8E;&#x7F29;&#x653E;*/
       transform: scale(0.5, 0.5)
   }
五、图片放大案例
  • 代码演示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            overflow: hidden;
            float: left;
            margin: 10px;
        }

        div img {
            transition: all .4s;
        }

        div img:hover {
            transform: scale(1.1);
        }
    </style>
</head>

<body>

</body>

</html>
六、分页按钮案例
  • 代码演示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        li {
            float: left;
            width: 30px;
            height: 30px;
            border: 1px solid pink;
            margin: 10px;
            text-align: center;
            line-height: 30px;
            list-style: none;
            border-radius: 50%;
            cursor: pointer;
            transition: all .4s;
        }

        li:hover {
            transform: scale(1.2);
        }
    </style>
</head>

<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
    </ul>
</body>

</html>
七、 2D 转换综合写法以及顺序问题
  1. 知识要点

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

  3. 顺序会影响到转换的效果(先旋转会改变坐标轴方向)
  4. 但我们同时有位置或者其他属性的时候,要将位移放到最前面

  5. 代码演示

div:hover {
  transform: translate(200px, 0) rotate(360deg) scale(1.2)
}
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            transition: all .5s;
        }

        div:hover {
            /* transform: rotate(180deg) translate(150px, 50px); */
            /* 我们同时有位移和其他属性,我们需要把位移放到最前面 */
            transform: translate(150px, 50px) rotate(180deg) scale(1.2);
        }
    </style>
</head>

<body>

</body>

</html>
八、 动画(animation)
  1. 什么是动画

  2. 动画是 CSS3 中最具颠覆性的特征之一,可通过设置多个节点来精确的控制一个或者一组动画,从而实现
    复杂的动画效果

  3. 动画的基本使用

  4. 先定义动画

  5. 在调用定义好的动画

  6. 语法格式(定义动画)

@keyframes &#x52A8;&#x753B;&#x540D;&#x79F0; {
    0% {
        width: 100px;
    }
    100% {
        width: 200px
    }
}
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        /* 我们想页面一打开,一个盒子就从左边走到右边 */
        /* 1. 定义动画 */

        @keyframes move {
            /* 开始状态 */
            0% {
                transform: translateX(0px);
            }
            /* 结束状态 */
            100% {
                transform: translateX(1000px);
            }
        }

        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            /* 2. 调用动画 */
            /* 动画名称 */
            animation-name: move;
            /* 持续时间 */
            animation-duration: 2s;
        }
    </style>
</head>

<body>

</body>

</html>
  1. 语法格式(使用动画)
div {
    /* &#x8C03;&#x7528;&#x52A8;&#x753B; */
    animation-name: &#x52A8;&#x753B;&#x540D;&#x79F0;;
    /* &#x6301;&#x7EED;&#x65F6;&#x95F4; */
    animation-duration: &#x6301;&#x7EED;&#x65F6;&#x95F4;&#xFF1B;
}
  1. 动画序列

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

  3. 在 @keyframs 中规定某项 CSS 样式,就由创建当前样式逐渐改为新样式的动画效果
  4. 动画是使元素从一个样式逐渐变化为另一个样式的效果,可以改变任意多的样式任意多的次数
  5. 用百分比来规定变化发生的时间,或用 fromto,等同于 0% 和 100%

  6. 代码演示

<style>
    div {
      width: 100px;
      height: 100px;
      background-color: aquamarine;
      animation-name: move;
      animation-duration: 0.5s;
    }

    @keyframes move{
      0% {
        transform: translate(0px)
      }
      100% {
        transform: translate(500px, 0)
      }
    }
  </style>
九、动画序列
  • 代码演示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        /* from to 等价于  0% 和  100% */
        /* @keyframes move {
            from {
                transform: translate(0, 0);
            }
            to {
                transform: translate(1000px, 0);
            }
        } */
        /* 动画序列 */
        /* 1. 可以做多个状态的变化 keyframe 关键帧 */
        /* 2. 里面的百分比要是整数 */
        /* 3. 里面的百分比就是 总的时间(我们这个案例10s)的划分 25% * 10  =  2.5s */

        @keyframes move {
            0% {
                transform: translate(0, 0);
            }
            25% {
                transform: translate(1000px, 0)
            }
            50% {
                transform: translate(1000px, 500px);
            }
            75% {
                transform: translate(0, 500px);
            }
            100% {
                transform: translate(0, 0);
            }
        }

        div {
            width: 100px;
            height: 100px;
            background-color: pink;
            animation-name: move;
            animation-duration: 10s;
        }
    </style>
</head>

<body>

</body>

</html>
十、动画常见属性
  1. 常见的属性

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02
  1. 代码演示
div {
  width: 100px;
  height: 100px;
  background-color: aquamarine;
  /* &#x52A8;&#x753B;&#x540D;&#x79F0; */
  animation-name: move;
  /* &#x52A8;&#x753B;&#x82B1;&#x8D39;&#x65F6;&#x957F; */
  animation-duration: 2s;
  /* &#x52A8;&#x753B;&#x901F;&#x5EA6;&#x66F2;&#x7EBF; */
  animation-timing-function: ease-in-out;
  /* &#x52A8;&#x753B;&#x7B49;&#x5F85;&#x591A;&#x957F;&#x65F6;&#x95F4;&#x6267;&#x884C; */
  animation-delay: 2s;
  /* &#x89C4;&#x5B9A;&#x52A8;&#x753B;&#x64AD;&#x653E;&#x6B21;&#x6570; infinite: &#x65E0;&#x9650;&#x5FAA;&#x73AF; */
  animation-iteration-count: infinite;
  /* &#x662F;&#x5426;&#x9006;&#x884C;&#x64AD;&#x653E; */
  animation-direction: alternate;
  /* &#x52A8;&#x753B;&#x7ED3;&#x675F;&#x4E4B;&#x540E;&#x7684;&#x72B6;&#x6001; */
  animation-fill-mode: forwards;
}

div:hover {
  /* &#x89C4;&#x5B9A;&#x52A8;&#x753B;&#x662F;&#x5426;&#x6682;&#x505C;&#x6216;&#x8005;&#x64AD;&#x653E; */
  animation-play-state: paused;
}
十一、 动画简写方式
  1. 动画简写方式
/* animation: &#x52A8;&#x753B;&#x540D;&#x79F0; &#x6301;&#x7EED;&#x65F6;&#x95F4; &#x8FD0;&#x52A8;&#x66F2;&#x7EBF; &#x4F55;&#x65F6;&#x5F00;&#x59CB; &#x64AD;&#x653E;&#x6B21;&#x6570; &#x662F;&#x5426;&#x53CD;&#x65B9;&#x5411; &#x8D77;&#x59CB;&#x4E0E;&#x7ED3;&#x675F;&#x72B6;&#x6001; */
animation: name duration timing-function delay iteration-count direction fill-mode
  1. 知识要点

  2. 简写属性里面不包含 animation-paly-state

  3. 暂停动画 animation-paly-state: paused; 经常和鼠标经过等其他配合使用
  4. 要想动画走回来,而不是直接调回来: animation-direction: alternate
  5. 盒子动画结束后,停在结束位置: animation-fill-mode: forwards

  6. 代码演示

animation: move 2s linear 1s infinite alternate forwards;
十二、速度曲线细节
  1. 速度曲线细节

  2. animation-timing-function: 规定动画的速度曲线,默认是 ease

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02
  1. 代码演示
div {
  width: 0px;
  height: 50px;
  line-height: 50px;
  white-space: nowrap;
  overflow: hidden;
  background-color: aquamarine;
  animation: move 4s steps(24) forwards;
}

@keyframes move {
  0% {
    width: 0px;
  }

  100% {
    width: 480px;
  }
}

十三、奔跑的熊大

  1. 代码演示
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body {
            background-color: #ccc;
        }
        div {
            position: absolute;
            width: 200px;
            height: 100px;
            background: url(media/bear.png) no-repeat;
            /* 我们元素可以添加多个动画, 用逗号分隔 */
            animation: bear .4s steps(8) infinite, move 3s forwards;
        }

        @keyframes bear {
            0% {
                background-position: 0 0;
            }
            100% {
                background-position: -1600px 0;
            }
        }

        @keyframes move {
            0% {
                left: 0;
            }
            100% {
                left: 50%;
                /* margin-left: -100px; */
                transform: translateX(-50%);
            }
        }
    </style>
</head>

<body>

</body>

</html>

拓展阅读@

扫一扫下面的二维码,关注我们,获取更多精彩活动资讯,有好礼相送哦~

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【腾讯云】618云上GO!云服务器限时秒杀,1核2G首年95元!

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【华为云】特惠专区,多款产品限时特价!

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【阿里云】上新必买抢先知,劲爆优惠不错过!

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【七牛云】优惠专区,多款云产品限时抢购!

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【又拍云】免费CDN专区,10G免费大放送!

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【知识星球】一个资料分享的站点,各种学习资料,随时分享

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

微信赞助; 微信打赏 支付宝打赏

免责声明:本文所有内容均为互联网上收集而来,仅供学习交流,整理文章为传播相关技术,如有侵权,请联系删除

Original: https://www.cnblogs.com/minvenus/p/Learning-webpage_html_css_2.html
Author: Destiny_Minvenus
Title: 2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586114/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • NoteOfMySQL-07-索引

    1. 索引概述 创建索引的目的是为了优化数据库的查询速度,不添加索引的情况下需要遍历所有数据才能进行删、查、改等操作。 2. 索引存储类型 存储类型 支持的存储引擎 B型树(BTR…

    Linux 2023年6月14日
    088
  • 使用input+datalist简单实现实时匹配的可编辑下拉列表-并解决选定后浏览器默认只显示value的可读性问题

    问题背景 最近小伙伴提了一个希望提高后台下拉列表可操作性的需求,原因是下拉列表选项过多,每次下拉选择比较费时费力且容易出错,硬着头皮啃了啃前端知识,网上搜寻了一些下拉列表实现的资料…

    Linux 2023年6月6日
    094
  • python 练习题:计算的BMI指数,并根据BMI指数条件选择

    小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:低于18.5:过轻18.5-25:正常25-28:过重28-3…

    Linux 2023年6月8日
    0132
  • (Java初学篇)IDEA项目新建流程和软件配置优化以及怎么彻底删除项目

    相信很多小伙伴们在初学 Java 时都会出现这样的情况,就是在网上一顿搜索加捣鼓终于把 JDK 和IDEA 这两款软件安装配置好,但是发现面对这个陌生的软件此时却无从下手,那么接下…

    Linux 2023年6月6日
    0143
  • Mysql数据库 ALTER 基本操作

    背景: ALTER作为DDL语言之一,工作中经常遇到,这里我们简单介绍一下常见的几种使用场景 新建两个测试表offices 和 employess CREATE TABLE off…

    Linux 2023年6月6日
    0114
  • HRShell:Flask构建的HTTPS HTTP反向Shell

    https://www.freebuf.com/sectool/212678.html 纸上得来终觉浅,绝知此事要躬行! Original: https://www.cnblogs…

    Linux 2023年5月28日
    0113
  • jmeter beanshell 从文件中获取随机参数

    loadruner 参数化有个功能,可以设置在脚本每次出现参数时,自动更换参数值。在做jmeter自动化测试过程中,同一个请求中出现多个参数值,如一个接口可以添加n个信息的请求 […

    Linux 2023年5月28日
    0214
  • 飞鸽传书:一个局域网QQ

    推荐一个类似局域网QQ的免费软件——飞鸽传书,支持windows、mac、Linux、安卓、苹果手机。 飞鸽传书:一个局域网QQ 局域网文件和消息互传应该用什么呢?在这里推荐一个类…

    Linux 2023年6月6日
    0107
  • Redis源码系列(二)

    Redis源码系列——双链表 redis底层的数据结构使用了双链表,其实现很简洁,值得阅读。 原型 src/adlist.h /*list node*/ typedef struc…

    Linux 2023年6月8日
    0110
  • 设计模式——面向对象设计原则

    面向对象设计原则 都是为了高内聚低耦合原则。编程时基本都要遵守 分类原则:一种人只干一种事。 举例:(比较简单就不代码了) 人可以干的事情有很多:敲代码、唱歌、跳舞、打篮球&#82…

    Linux 2023年6月7日
    0155
  • 【原创】Linux虚拟化KVM-Qemu分析(二)之ARMv8虚拟化

    背景 Read the fucking source code! –By 鲁迅 A picture is worth a thousand words. –…

    Linux 2023年6月8日
    096
  • ajax跨域问题

    public class CrosFilter implements Filter { @Override public void destroy() { // TODO Auto…

    Linux 2023年6月7日
    0101
  • Python之pexpect详解

    Pexpect程序主要用于人机对话的模拟,就是那种系统提问,人来回答yes/no,或者账号登陆输入用户名和密码等等的情况。因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现…

    Linux 2023年6月14日
    093
  • dpdk21.11 添加igb_uio模块

    dpdk 21.11 添加 IGB_UIO模块 IGB_UIO模块 两种添加方式 零、 下载IGB_UIO模块 一、 直接添加到文件中 1.1 复制 dpdk-kmods/linu…

    Linux 2023年6月6日
    0104
  • Golang 实现 Redis(9): 使用GeoHash 搜索附近的人

    本文是使用 golang 实现 redis 系列的第九篇,主要介绍如何使用 GeoHash 实现搜索附近的人。 搜索附近的POI是一个非常常见的功能,它的技术难点在于地理位置是二维…

    Linux 2023年5月28日
    0116
  • 浪剑天下H5游戏详细图文架设教程

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球