• 做一个弹窗


    起因

    在京东面试时面试官问我如何实现一个弹框,我答了z-index;看来要复习一下了;

    基础知识

    css中z-index层级

    思路

    1.先用一个div蒙尘罩罩住最低下的东西;
    2.在div蒙尘罩中间放一个div用于写弹框内的东西;
    3.用display或visibility控制显示隐藏;

    主要代码

        <style>
        /* html,body{
             100%;
            height: 100%;
        } */
      *{
          padding: 0px;
          margin:0px;
      }
       body{
           background:purple ;
    
       }
       h1{
           position: absolute;
           z-index: 0;
       }
       .cover{
           position: absolute;
           z-index: 1;
            100%;
           height: 100%;
           background: rgb(163, 159, 159,0.5);
           display: none;
           justify-content: center;
           align-items: center;
       }
       .box{
        position: absolute;
           z-index:2;
            200px;
           height: 200px;
           background: yellow;
       }
       #open{
           position: absolute;
           left:100px;
       }
        </style>
    <body>
        <div class="all">
            <h1>我是主页</h1>
            <button id="open">打开弹窗</button>
        </div>
        <div class="cover" id="cover">
          <div class="box">
              我是弹窗
              <button id="close">关闭弹窗</button>
          </div>
        </div>
        <script>
            var btnOpen=document.getElementById("open");
            var btnClose=document.getElementById("close");
            var box=document.getElementById("cover");
            btnOpen.onclick=function(){
                box.style.display="flex";
                console.log("打开了");
            }
            btnClose.onclick=function(){
                box.style.display="none";
                console.log("关了");
            }
    
        </script>
    </body>
    

    效果展示


    遇到问题

    1. z-index必须要改变position值才能生效(position不为static)
      position设置为static时(默认),z-index和四个方位对其都无效;
    2. 关于div无元素时的撑开:
    /*1.给div设定position*/
      css中position有五种属性: static:默认值,没有定位;absolute:绝对定位,相对于父级元素进行定位;relative:相对定位;fixed:固定定位,相对于浏览器窗口进行定位;inherit:从父元素继承定位信息;除了默认值static和inherit之外,添加其他三种都可以实现窗口自适应。
    /*2.给html,body设置宽高来让div继承*/
    2         *{
     3             margin: 0;
     4             padding: 0;
     5         }
     6         html,body{
     7              100%;
     8             height: 100%;
     9         }
    10         div{
    11             100%;
    12             height: 100%;
    13             background: yellow;
    14         }
    
  • 相关阅读:
    605. Can Place Flowers
    1184. Distance Between Bus Stops
    1711. Count Good Meals
    1710. Maximum Units on a Truck
    566. Reshape the Matrix
    980. Unique Paths III
    212. Word Search II
    每日总结
    每日总结
    每日总结
  • 原文地址:https://www.cnblogs.com/xmjs/p/14087739.html
Copyright © 2020-2023  润新知