zoukankan      html  css  js  c++  java
  • 伪类target实现纯css模态框

    今天看到一个纯css模态框,觉得是很牛呀

    看了下用了target伪类,

    一直不知道有这么神奇的伪类

    。。

    用法是这样的,给模态框一个id,

    <div id="pop" class="overlay">
    

     然后通过锚链接的方法

    <a class="button" href="#pop">Click!</a>
    

     点击之后,伪类的css就能发生作用了

    .overlay:target {
      visibility: visible;
      opacity: 1;
    }
    
    .overlay:target > .modal {
      transform: translateY(30%) scale(0.9);
      transition-timing-function: cubic-bezier(0.8, 0, 0, 1.5);
      opacity: 1;
    }
    

    顺便把别人的源码发一下

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>CSS模态框-jq22.com</title>
    <style>
    html, body {
      height: 100%;
      -webkit-font-smoothing: antialiased;
      -webkit-tap-highlight-color: transparent;
    }
    
    body {
      margin: 0;
      background-color: #FAFAFB;
      color: slategrey;
    }
    
    a.button {
      text-decoration: none;
      text-align: center;
      text-shadow: 0 1px 0 #fff;
      color: steelblue;
      font-weight: 500;
      padding: 8px 15px 8px 15px;
      border: 1px solid rgba(26, 53, 71, 0.1);
      border-radius: 4px;
      -webkit-border-radius: 4px;
      -moz-border-radius: 4px;
      transition: .25s;
      background: linear-gradient(white, ghostwhite);
    }
    a.button:hover {
      border: 1px solid rgba(26, 53, 71, 0.2);
      background: white;
    }
    
    .wrapper {
       600px;
      height: 100%;
      margin: auto;
      text-align: center;
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    
    .overlay {
      position: fixed;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      background: rgba(0, 0, 0, 0.7);
      transition: opacity .5s;
      visibility: hidden;
      opacity: 0;
    }
    .overlay:target {
      visibility: visible;
      opacity: 1;
    }
    
    .modal {
       20%;
      position: relative;
      margin: auto;
      padding: 1.5rem;
      background: #fff;
      border-radius: 4px;
      -webkit-border-radius: 4px;
      -moz-border-radius: 4px;
      transition: .5s;
      opacity: 0;
    }
    .modal .content {
      margin-top: 1rem;
    }
    .modal .content a {
      max- 60%;
      margin: auto;
      display: block;
    }
    
    .overlay:target > .modal {
      transform: translateY(30%) scale(0.9);
      transition-timing-function: cubic-bezier(0.8, 0, 0, 1.5);
      opacity: 1;
    }
    
    h2 {
      text-align: center;
      margin-top: 2rem;
    }
    
    a.close {
      position: absolute;
      top: 15px;
      left: 15px;
       22px;
      height: 22px;
      text-decoration: none;
      text-align: center;
      font-size: 20px;
      line-height: 21px;
      color: lightslategrey;
      background-color: lightgrey;
      border-radius: 50%;
      -webkit-border-radius: 50%;
      -moz-border-radius: 50%;
      transition: .25s;
    }
    a.close:hover {
      background-color: tomato;
      color: white;
    }
    
    </style>
    </head>
    <body>
    <div class="wrapper">
      <a class="button" href="#pop">Click!</a>
    </div>
    
    <div id="pop" class="overlay">
      <div class="modal">
        <h2>Hey there!</h2>
        <a class="close" href="#">×</a>
        <div class="content">
          So, here we are:<br/>
          I am a pure (S)CSS Modal and work with the <strong>:target</strong> element.<br/><br/>
          You can close me by clicking the x in the upper left corner or the button at the bottom.<br/><br/>
          See you next time:)<br/><br/>
          <a class="button" href="#">Close</a>
        </div>
      </div>
    </div>
    </body>
    </html>
    
  • 相关阅读:
    关于ORA-04091异常的出现原因,以及解决方案
    <Interview problem>二进制加法
    Hadoop日志文件分析系统
    Android studio安装
    weex环境配置
    weex构建项目
    参数保存
    下拉搜索的小白demo
    angularJs中$http获取后台数据实例(搜集到的)
    前后台对接angularjs(搜集的)
  • 原文地址:https://www.cnblogs.com/anxiaoyu/p/6937469.html
Copyright © 2011-2022 走看看