zoukankan      html  css  js  c++  java
  • 用CSS做的简单弹窗

      最近在学习css,学习的时候发现,css是多么博大精深,是那么的神奇。

      老师给了一个项目给我们做练习,以下我介绍一个用纯css简单做的弹窗

    先看下其效果:

      

    想整理下思路:

    首先我设置了两个按钮,一个是打开弹窗,另外是关闭弹窗,这两个按钮用label关联到input:radio。

    布局如下:

    <input type="radio" name="btn" id="close" class="btn"/>
    <div class="box1">
        <label for="window1" class="text">投票</label>
        <input type="radio" name="btn" id="window1" class="btn" />
        <div class="window">
            <label for="close" class="fr"><img src="images/voting-close.png"/></label>
             <div>
                  <p>感谢您参与到我们的投票活动,您的投票已成功!</p>
                  <p>请留下您的联系方式,我们会在活动结束时举办一个抽奖活动,z中奖信息会公布在官网上,敬请留意,谢谢合作!</p>
                  <form action="" method="post">
                       您的姓名:
                       <input type="text" name="username" /><br /> 您的电话:
                       <input type="text" name="number" /><br />
                       <input type="submit" value="提交" />
                   </form>
              </div>
          </div>
    </div>

    这个时候我们来设置一个大div的样式class=”box1“:

    .box1 {
        position: relative;
        width: 320px;
        height: 275px;
        background: url(images/voting-img1.png) no-repeat;
    }

    然后设置一个投票按钮,这里是通过相对定位绝对定位来调整投票按钮的位置:

    .text {
        position: absolute;
        bottom: 0;
        left: 109px;
        color: #fff;
        padding: 10px 20px 10px 20px;
        background: #0000FF;
        border-radius: 10px;
    }

    再来设置一个弹窗window,用绝对定位设置弹窗window的位置。

    因为弹窗window事先是隐藏的,这里通过把宽高设为0,所以内容判定为超过容器,用overflow:hidden;隐藏整个弹窗window。

    .window {
        overflow: hidden;
        position: fixed;
        top: 30%;
        left: 25%;
        width: 0px;
        height: 0px;
        background: #c9cbcd;
        z-index: 111;
    }

    再把input:radio隐藏起来

    .btn{
        display: none;    
    }

    设置弹窗window的宽高,让弹窗window弹出来。

    我们通过checked伪类和相邻兄弟(”+“)选择器来调整input:radio的选中状态从而来实现弹窗window弹出与关闭。

    .btn:checked+ .window {
        width: 550px;
        height: 376px;
    }

    这里大体介绍了主要的css代码,另外一些字体等样式没写出来,但基本实现效果了。

    这里我在做的时候遇到了一个问题,就是原本投票按钮我是用<button>按钮标签做的,再用<label>标签包住,

    但是这里通过点击<button>标签并不能使input:radio被选定(checked)。后来我直接把<button>标签去掉了。

    这里主要是要理解伪类checked和相邻兄弟选择器。

    在没有js下,伪类checked和相邻兄弟选择器也能实现图片切换。

  • 相关阅读:
    Mysql备份工具xtraback全量和增量测试
    Linux进程管理四大工具ps dstat top htop
    Linux Netcat 命令——网络工具中的瑞士军刀
    Linux 下载工具 aria2
    C语言宏基础总结
    使用浏览器做编辑器
    设计模式(1)
    OpenGL 编程(1)
    使用ffmpeg推流
    FFMPEG 解码和编码(编码mjpeg)
  • 原文地址:https://www.cnblogs.com/lzh739887959/p/5797803.html
Copyright © 2011-2022 走看看