用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和相邻兄弟选择器也能实现图片切换。

时间: 2024-08-07 21:18:40

用CSS做的简单弹窗的相关文章

【Css】一个简单的选项卡

这次来做一个简单的选项卡. 选项卡其实就分3个部分:html代码,用于显示的内容:css代码,用于显示的样式:javascript代码,用于点击事件. 老规矩,先写一个html坯子. 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4

[转载] ul li css 做横向菜单

原文地址: http://www.cnblogs.com/amylis_chen/archive/2011/09/24/2188398.html 第一步:建立一个无序列表 我们先建立一个无序列表,来建立菜单的结构.代码是: <ul> <li><a href="1">首页</a></li> <li><a href="2">产品介绍</a></li> <li

用纯CSS做的图片切换

前段时间做了一个用css做的图片切换.  我们先来看下html结构: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" type="text/css" href="css/index.css"/> </he

【CSS】如何用css做一个爱心

摘要:HTML的标签都比较简单,入门非常的迅速,但是CSS是一个需要我们深度挖掘的东西,里面的很多样式属性掌握几个常用的便可以实现很好看的效果,下面我便教大家如何用CSS做一个爱心. 前期预备知识: 明白正方形的画法. 明白圆形的画法. 明白什么是定位. 明白怎么旋转. 话不多说,先教大家怎么用css画一个圆形. .disc1{ width: 100px; height: 100px; border:1px solid red; background-color: red; margin:300

使用React并做一个简单的to-do-list

1. 前言 说到React,我从一年之前就开始试着了解并且看了相关的入门教程,而且还买过一本<React:引领未来的用户界面开发框架 >拜读.React的轻量组件化的思想及其visual-dom的这种技术创新,也算是早就有了初步了解.一来没有学的太深入,二来后来在工作中和业余项目中都没有用到,因此慢慢的就更加生疏了. 近期,因为我想把自己的开源项目wangEditor能放在React.angular和vuejs中使用.先从react开始,顺手自己也重试一下React的基础知识,顺便再做一个小d

做个简单的本地弹幕播放器

前言 本文仅仅是做一个简单的弹幕播放器 本文弹幕播放器仅仅是演示一下发送弹幕功能 请跳转本文底部的在线调试代码进行调试 最终实现效果如下: Okay.首先你得找到一个弹幕开源库就是这个啦:https://github.com/jabbany/CommentCoreLibrary 其次你得准备好一个HTML文件 准备完后lets do it 更多内容请见原文链接:http://www.gbtags.com/gb/share/5769.htm 引入两个重要的弹幕开源库文件 这里用了我blog的文件

如何做一个简单的Chrome Extension用于网页截屏

Chrome extension是一个文件包,里面包含了一个配置文件manifest.json,以及一些用于Web开发的文件和资源 (HTML, JavaScript, CSS,等). Chrome Extension开发指南 Chrome Extension Overview Chrome Extension Debugging Chrome Extension Samples 如何实现网页截屏功能 看一下manifest文件: {       "name": "Scree

web前端课程技术内容之如何做一个简单的手机端页面的翻页

[如何做一个简单的手机端页面的翻页] 第一步:创建移动端页面内 HTML + CSS [注]可用弹性布局 但需要注意的是 外层盒子的定位 第二步: 思考问题 要实现怎样的效果? 1. 手指滑动时触发事件[左右]两个方向 2.点击footer部分的下标实现切换效果 3.点击footer部分的下标实现下标颜色变化 第三步:编写JS代码 添加监听事件 document.addEventListener('DOMContentLoaded',function(){ 创建一个数组用于调用数组属性值 或者

.Net Core 3.0后台使用httpclient请求网络网页和图片_使用Core3.0做一个简单的代理服务器

原文:.Net Core 3.0后台使用httpclient请求网络网页和图片_使用Core3.0做一个简单的代理服务器 目标:使用.net core最新的3.0版本,借助httpclient和本机的host域名代理,实现网络请求转发和内容获取,最终显示到目标客户端! 背景:本人在core领域是个新手,对core的使用不多,因此在实现的过程中遇到了很多坑,在这边博客中,逐一介绍下.下面进入正文 正文: 1-启用httpClient注入: 参考文档:https://docs.microsoft.c