• CSS(十二).transition的应用之CSS中心扩散


    实现 css中心向两边扩散的两个核心

    • 1.hover 之前的 垂直居中
    • 2.文字置于最顶层
    顺道来讲讲hover

    伪元素是不支持 hover 的,不过我们可以给普通的 tag 标签添加 hover 以此来支持伪元素的 hover,例如 .div2:hover::before

    顺道抬一手absolute

    absolute有悬浮在元素上层的作用。

    实现一

    css

    .wrap {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
         200px;
        height: 60px;
        background-color: #6B7C7A;
        border-radius: 10px;
        color: #fff;
        cursor: pointer;
      }
      .box {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
         0;
        height: 60px;
        transition: all .8s;
      }
      .wrap:hover .box {
         200px;
        border-radius: 10px;
        background-color: #000;
        transition: width .8s;
      }
    

    html

      <div class="wrap">
        兄弟元素是一个div
        <div class="box"></div>
      </div>
    
    • 概述
      一个尚未成型的功能。
      通过 flex 的方式将文字居中。
      内嵌了一个空的 div 元素,并且设置为 absolute 使其不影响毗邻的 文字。

    • 待解决
      也许我们能够通过 伪元素 来改进使得不需要 多嵌入那一个 div。
      同时,文字的上排显示 也是我们需要解决的一个问题。


    实现二

    根据上面,A.我们可以利用伪元素来改进 多余的那个 div
    B. 同时,我们通过对 文字 使用 absolute 来解决文字没有置顶的问题。

    这里主要要注意的是 伪元素 没有 content 是不会出现的

    css

      .wrap {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
         200px;
        height: 60px;
        background-color: #6B7C7A;
        border-radius: 10px;
        color: #fff;
        cursor: pointer;
      }
      .wrap:before {
        content: '';
         0;
        height: 60px;
        transition: all .8s;
      }
      .wrap:hover::before {
         200px;
        border-radius: 10px;
        background-color: #000;
        transition: width .8s;
      }
      .box {
        position: absolute;
      }
    

    html

    <div class="wrap">
        <div class="box">现在文字出现在了内框</div>
    </div>
    
    • 概述
      基本上实现了我们所需要的功能。双层结构。其实 删除了 多余的代码 之后,这种实现已经非常不错了。
    • 待解决
      文字置顶的方法或许可以改进 ? 不一定让其为 absolute?

    等待未来更好的办法

    那么我们来想想办法,不让文字被遮挡,或者说 -- 文字置顶。

    父级的 absolute 主要是两个作用,一个是怕影响到文字,二是居中。A.其实,直接设置文字为 absolute 即可(孤掌难鸣)。 B.其实 flex 的布局方式已经实现了居中。

  • 相关阅读:
    利用Python进行数据分析(3) 使用IPython提高开发效率
    利用Python进行数据分析(2) 尝试处理一份JSON数据并生成条形图
    利用Python进行数据分析(1) 简单介绍
    在真机调试 iOS 应用:理解 Certificates, Identifiers & Profiles
    iOS: 在iPhone和Apple Watch之间共享数据: App Groups
    iOS: 在UIViewController 中添加Static UITableView
    iOS Interface Builder:在.xib文件中加载另一个.xib文件
    在项目中同时使用Objective-C和Swift
    iOS: 为画板App增加 Undo/Redo(撤销/重做)操作
    在iOS中实现一个简单的画板App
  • 原文地址:https://www.cnblogs.com/can-i-do/p/8550935.html
Copyright © 2020-2023  润新知