• css3 实现 tooltip


    /* START TOOLTIP STYLES */
    [tooltip] {
      position: relative; /* opinion 1 */
    }
    
    /* Applies to all tooltips */
    [tooltip]::before,
    [tooltip]::after {
      text-transform: none; /* opinion 2 */
      font-size: .9em; /* opinion 3 */
      line-height: 1;
      user-select: none;
      pointer-events: none;
      position: absolute;
      display: none;
      opacity: 0;
    }
    [tooltip]::before {
      content: '';
      border: 5px solid transparent; /* opinion 4 */
      z-index: 1001; /* absurdity 1 */
    }
    [tooltip]::after {
      content: attr(tooltip); /* magic! */
      
      /* most of the rest of this is opinion */
      font-family: Helvetica, sans-serif;
      text-align: center;
      
      /* 
        Let the content set the size of the tooltips 
        but this will also keep them from being obnoxious
        */
      min- 3em;
      max- 21em;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      padding: 1ch 1.5ch;
      border-radius: .3ch;
      box-shadow: 0 1em 2em -.5em rgba(0, 0, 0, 0.35);
      background: #333;
      color: #fff;
      z-index: 1000; /* absurdity 2 */
    }
    
    /* Make the tooltips respond to hover */
    [tooltip]:hover::before,
    [tooltip]:hover::after {
      display: block;
    }
    
    /* don't show empty tooltips */
    [tooltip='']::before,
    [tooltip='']::after {
      display: none !important;
    }
    
    /* FLOW: UP */
    [tooltip]:not([flow])::before,
    [tooltip][flow^="up"]::before {
      bottom: 100%;
      border-bottom- 0;
      border-top-color: #333;
    }
    [tooltip]:not([flow])::after,
    [tooltip][flow^="up"]::after {
      bottom: calc(100% + 5px);
    }
    [tooltip]:not([flow])::before,
    [tooltip]:not([flow])::after,
    [tooltip][flow^="up"]::before,
    [tooltip][flow^="up"]::after {
      left: 50%;
      transform: translate(-50%, -.5em);
    }
    
    /* FLOW: DOWN */
    [tooltip][flow^="down"]::before {
      top: 100%;
      border-top- 0;
      border-bottom-color: #333;
    }
    [tooltip][flow^="down"]::after {
      top: calc(100% + 5px);
    }
    [tooltip][flow^="down"]::before,
    [tooltip][flow^="down"]::after {
      left: 50%;
      transform: translate(-50%, .5em);
    }
    
    /* FLOW: LEFT */
    [tooltip][flow^="left"]::before {
      top: 50%;
      border-right- 0;
      border-left-color: #333;
      left: calc(0em - 5px);
      transform: translate(-.5em, -50%);
    }
    [tooltip][flow^="left"]::after {
      top: 50%;
      right: calc(100% + 5px);
      transform: translate(-.5em, -50%);
    }
    
    /* FLOW: RIGHT */
    [tooltip][flow^="right"]::before {
      top: 50%;
      border-left- 0;
      border-right-color: #333;
      right: calc(0em - 5px);
      transform: translate(.5em, -50%);
    }
    [tooltip][flow^="right"]::after {
      top: 50%;
      left: calc(100% + 5px);
      transform: translate(.5em, -50%);
    }
    
    /* KEYFRAMES */
    @keyframes tooltips-vert {
      to {
        opacity: .9;
        transform: translate(-50%, 0);
      }
    }
    
    @keyframes tooltips-horz {
      to {
        opacity: .9;
        transform: translate(0, -50%);
      }
    }
    
    /* FX All The Things */ 
    [tooltip]:not([flow]):hover::before,
    [tooltip]:not([flow]):hover::after,
    [tooltip][flow^="up"]:hover::before,
    [tooltip][flow^="up"]:hover::after,
    [tooltip][flow^="down"]:hover::before,
    [tooltip][flow^="down"]:hover::after {
      animation: tooltips-vert 300ms ease-out forwards;
    }
    
    [tooltip][flow^="left"]:hover::before,
    [tooltip][flow^="left"]:hover::after,
    [tooltip][flow^="right"]:hover::before,
    [tooltip][flow^="right"]:hover::after {
      animation: tooltips-horz 300ms ease-out forwards;
    }
      
      
    

      

  • 相关阅读:
    在SQL使用正则表达式
    What is callback?
    readResolve()的使用
    What is a serialVersionUID and why should I use it?
    How to terminate a thread in Java
    Eclipse导入源文件出现编码的问题
    What is livelock?
    [转]不要迷失在技术的海洋中
    [转]基于.Net的单点登录(SSO)解决方案
    IIS网站真正301重定向的方法(包括首页和内页)
  • 原文地址:https://www.cnblogs.com/zh33gl/p/7111327.html
Copyright © 2020-2023  润新知