3种纯css方法控制元素隐藏显示

1.通过hover,也是最常用的方式。此方法要求按钮与被控制元素必须有层级关系。(兼容低端浏览器常用)

    <div class="nav-btn">
        <h2>按钮</h2>
        <ul class="nav-box">
            <li><a href="#">菜单1</a></li>
            <li><a href="#">菜单2</a></li>
            <li><a href="#">菜单3</a></li>
        </ul>
    </div>
        *{
            padding: 0;
            margin: 0;
        }
        ul,li{
            list-style: none;
        }
        .nav-btn{
            position: relative;
        }
        .nav-btn h2{
            height: 60px;
            line-height: 60px;
            width: 130px;
            text-align:center;
            background: #ff0;
        }
        .nav-box{
            position: absolute;
            top:60px;
            left: 0px;
            display: none;
        }
        .nav-btn:hover .nav-box{
            display: block;
        }

2.通过:focus点击按钮显示,点击空白处隐藏。此方通同样需要按钮与被控制元素之间存在层级关系。(需用到CSS3选择器)

    <div class="nav-btn">
        <button>按钮</button>
        <ul class="nav-box">
            <li><a href="#">菜单1</a></li>
            <li><a href="#">菜单2</a></li>
            <li><a href="#">菜单3</a></li>
        </ul>
    </div>
        *{
            padding: 0;
            margin: 0;
        }
        ul,li{
            list-style: none;
        }
        .nav-btn{
            position: relative;
        }
        .nav-btn h2{
            height: 60px;
            line-height: 60px;
            width: 130px;
            text-align:center;
            background: #ff0;
        }
        .nav-box{
            position: absolute;
            top:60px;
            left: 0px;
            display: none;
        }
        .nav-btn button:focus ~ .nav-box{
            display: block;
        }

3.利用label的for属性绑定checkbox,此方法对按钮与盒子的层级关系没有限制(需用到CSS3选择器)

    <label for="control" class="nav-btn">菜单</label>
    <div>
        <input type="checkbox" name="" id="control" class="nav-con">
        <ul class="nav-box">
            <li><a href="#">首页</a></li>
            <li><a href="#">联系我们</a></li>
            <li><a href="#">产品</a></li>
            <li><a href="#">新闻</a></li>
        </ul>
    </div>
        ul,li{
            list-style: none;
        }
        *{
            padding: 0;
            margin: 0;
        }
        .nav-con{
            display: none;
        }
        .nav-box{
            display: none;
        }
        .nav-con:checked ~ .nav-box{
           display: block;
        }
        .nav-btn{
            padding: 10px 15px;
            background:;
        }
时间: 2024-08-24 08:01:53

3种纯css方法控制元素隐藏显示的相关文章

三种纯CSS方法实现等高列

在这篇文章里, 我会介绍三种使用纯css的方式来实现等高列的方法.在网页布局中设置列等高是比较常见的, 所以写这篇文章就是要总结下一些优雅的纯CSS解决方案. 插图自己弄得,不喜莫喷 哈哈.. 下面介绍的三种方法都只用到了CSS , 不涉及jQuery.JavaScript计算实现的方法,所以我把它这篇文章标题设为:三种纯CSS方法实现等高列. 方法-1: 使用Margins, Paddings和 Overflow来实现 第一种方法使用margins, paddings和overflow来迫使列

CSS实现控制元素的显示和隐藏

1 使用label + input实现元素的隐藏和显示 以下代码点击‘菜单’可以实现li列表的显示和隐藏: <style type="text/css"> *{ margin: 0; padding: 0; } input, ul{ display: none; } input:checked ~ ul { display: block; } </style> <body> <label for="menu">菜单&l

使用CSS3动画 animation 来控制元素的显示和隐藏

CSS3中 animation 和 transition 俩样式都能创建动画效果,而且是后台C++执行的,所以效率比普通jQuery的js模拟动画的效率高很多,所以建议大家能用css实现的效果都用css. transition的使用比较简单,这里就不介绍了,着重为大家介绍下 animation . animation 的css属性有很多,本文通过 animation-name 来控制启动动画和转换动画,以下是一个通过 animation 来控制元素的显示和隐藏的例子(仅支持webkit): <!

三种纯CSS实现三角形的方法

看到像上图这样的 tip 的小三角,你会怎么办? 切个图上去?恩,不错,简单,兼容性也一级棒,不但好控制,那点小东西也增加不了多少图片的大小.但有没有更好更讲究技巧的办法呢?哈哈,那必须有啊,而且还不止一种呢:) 纯 CSS 做三角形的方法,目前我知道三种,分别是利用 border 属性,“◆”字符,和 CSS3 transfrom 做 45 度旋转实现的,CSS3的方法是在码头哥的博客上学到的,很感谢你们的分享,前端有你们更精彩! 1.利用 border 属性实现三角形 这个原理很简单,我我们

css鼠标悬浮控制元素隐藏与显示

在网页开发中经常有需求是鼠标移动到一个元素A身上时,另外一个元素B显示. 如下图 当鼠标移到图片上时,相关的描述从下方显示出来. css实现原理与情景: A 是 B 的父元素 B 默认隐藏 B{opacity:0,transition: all 0.3s: transform: translateY(100%)} 当鼠标在A上时,即 A:hover状态,B显示 css实现即 A:hover B{opacity:1,translateY(0)} 示例代码: html <li class="r

关于元素隐藏/显示的各种方法

元素的隐藏/显示可以说数使用频率最高的方法之一,比如二级菜单,响应式布局,透明过度等等许许多多的特效都会使用到,以下介绍一下元素隐藏的各属性以及他们的特性和使用方法:display  visibility  opacity  overflow  position 我们先设置一些共有属性: <head> <style> div{ width: 100px; height: 100px; background-color: #444; margin: 10px; color: #f00

解析JQuery中css()方法,获取元素CSS值之getComputedStyle方法(转载,写的很好)

一.碎碎念~前言 我们都用过jQuery的CSS()方法,其底层运作就应用了getComputedStyle以及getPropertyValue方法. 对于那些只想混口饭吃的人来讲,晓得CSS()如何使用就足够了.对于希望在JS道路上越走越远的来人说,简单了解一些JS库底层实现对自己的学习很有帮助.可能谈不上信手拈来的使用,至少对创造一些创意新颖的新技术拓宽了思路. jQuery为何受欢迎,其中原因之一就是方法名称比较短.好比打架一样,块头大的潜意识认为厉害,就不由得心生畏惧,退避三舍:小个子(

html学习 - 元素隐藏/显示和input隐藏

元素隐藏 在html中我们经常需要把某些元素隐藏起来,有时候我们需要临时隐藏页面,让其他元素显示,来完成操作.有时候有些信息我们需要传给js,但是又不想给用户看,所以也会隐藏起来. display/visibility方法 在html中有这两个方法都可以隐藏元素. 先上一段html代码,然后进行操作. html代码 <!DOCTYPE html> <head> <title>aliens</title> <script src="./js/j

CSS3实战开发: 纯CSS实现图片过滤分类显示特效

各位网友大家好,今天我要带领大家开发一个纯CSS的图片分类显示的网址导航,单纯看标题大家可能有些困惑,依照以往惯例,我先给大家演示一下实际运行效果: 从上面的运行效果,大家不难发现,当我点击某一菜单时,导航区域会相应高亮显示此分类的图标,而其他图标则会变暗. 很多人可能会说,这个这么简单,直接使用javascript或jQuery等前端框架,再配合一些CSS,就可以很快实现同样的效果了.如果你是这一部分人,我也希望你停下脚步,看看这篇教程.因为在今天这篇教程中,我会用另一个思维方式来思考问题,我