当前位置 : 主页 > 手机开发 > harmonyos >

【CSS3】CSS3 2D 转换 - rotate 旋转 ④ ( 旋转案例 )

来源:互联网 收集:自由互联 发布时间:2023-08-28
文章目录 一、需求分析 二、代码示例 三、运行效果 一、需求分析 给定一个 盒子模型 , 鼠标移动上去后 , 通过旋转的方式 , 出现一个 新的 盒子模型 布局 , 旋转上去后 , 新的布局会覆



文章目录

  • 一、需求分析
  • 二、代码示例
  • 三、运行效果







一、需求分析



给定一个 盒子模型 ,

【CSS3】CSS3 2D 转换 - rotate 旋转 ④ ( 旋转案例 )_css


鼠标移动上去后 , 通过旋转的方式 , 出现一个 新的 盒子模型 布局 ,

【CSS3】CSS3 2D 转换 - rotate 旋转 ④ ( 旋转案例 )_css_02

旋转上去后 , 新的布局会覆盖住之前的 盒子模型 ;

【CSS3】CSS3 2D 转换 - rotate 旋转 ④ ( 旋转案例 )_css_03



实现原理如下 :

在绘制的时候 , 预先绘制了两个 盒子模型 ,

一个是 空的 盒子模型 , 在 空盒子模型 中 , 绘制了一个 子盒子 ,

子盒子 是 有实际元素的 盒子模型 ;

【CSS3】CSS3 2D 转换 - rotate 旋转 ④ ( 旋转案例 )_原力计划_04

有 实际内容 的 子盒子模型 , 初始状态就 沿着 左下角为中心点 , 顺时针旋转了 90 度 ;

如果 父容器 设置了

/* 隐藏边界之外的元素 
               旋转前的伪类 div::before 元素需要先隐藏 */
            overflow: hidden;

样式 , 超出 父容器 边界的内容 , 就会自动隐藏 , 表现为下图的样式 :

【CSS3】CSS3 2D 转换 - rotate 旋转 ④ ( 旋转案例 )_css






二、代码示例



实际的盒子模型内容 , 是通过 div::before 伪元素添加进去的 ;

div::before 伪元素 是行内元素 无法设置大小 , 需要 将其设置为行内块元素 才能设置宽高 ;

/* before 元素是行内元素 无法设置大小 
               将其设置为行内块元素 才能设置宽高 */
            display: block;

为 实际内容 设置 旋转 相关的属性 : 旋转中心点 , 默认的初始角度 , 旋转的动画持续时间 ;

/* 设置以左下角为中心旋转 */
            transform-origin: left bottom;
            /* 绕 左下角 旋转 180 度 */
            transform: rotate(90deg);
            /* 设置过渡动画 */
            transition: all 1s;



代码示例 :

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS3 2D 转换 - rotate 旋转</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            /* 上下 100 像素外边距, 居中对齐 */
            margin: 100px auto;
            /* 设置 1 像素边框 */
            border: 1px solid pink;
            /* 隐藏边界之外的元素 
               旋转前的伪类 div::before 元素需要先隐藏 */
            /* overflow: hidden; */
        }
        
        div::before {
            content: "2D旋转";
            /* before 元素是行内元素 无法设置大小 
               将其设置为行内块元素 才能设置宽高 */
            display: block;
            width: 100%;
            height: 100%;
            /* 设置背景颜色 */
            background-color: cyan;
            /* 设置以左下角为中心旋转 */
            transform-origin: left bottom;
            /* 绕 左下角 旋转 180 度 */
            transform: rotate(90deg);
            /* 设置过渡动画 */
            transition: all 1s;
        }
        /* 设置 鼠标 移动到 div::before 伪元素 上的效果 */
        
        div:hover::before {
            /* 鼠标移动上去后  */
            transform: rotate(0deg);
        }
    </style>
</head>

<body>
    <div>
    </div>
</body>

</html>






三、运行效果



初始状态为 :

【CSS3】CSS3 2D 转换 - rotate 旋转 ④ ( 旋转案例 )_盒子模型_06


鼠标移动到 盒子 模型上 , 旋转到 一半时的样式 :

【CSS3】CSS3 2D 转换 - rotate 旋转 ④ ( 旋转案例 )_css3_07

旋转完成后的样式 :

【CSS3】CSS3 2D 转换 - rotate 旋转 ④ ( 旋转案例 )_前端_08


【文章转自中东服务器 http://www.558idc.com/dibai.html欢迎留下您的宝贵建议】
上一篇:MYSQL进阶-查询优化- 实战 STATUS
下一篇:没有了
网友评论