纯css实现切换标签效果

纯css实现切换标签效果

一.首先上demo
在这里插入图片描述
如图所示:点击第一个按钮显示按钮样式改变,弹出第一个界面;点击第二个按钮改变按钮样式,弹出第二个界面,实现的主要方式要看我们对input的了解程度
二.实现原理
1.首先创建div,为div添加宽高,设置div为相对定位的元素
2.创建两个type为radio的input,给两个input一个相同name,让它和同级的lable绑定,注意input要display:none掉,因为input即使没有了位置,但是它的点击事件依旧存在于label内,此时的label具备了input的所有特性,且可以改变样式
在这里插入图片描述
3.设置label的点击事件checked
我已经默认给了第一个按钮checked
在这里插入图片描述
设置点击事件 使用input:checked+label
在这里插入图片描述
4.创建两个div,在设置相对定位的div之下(父子关系)或者和input同级关系,这两个div设置绝对定位,设置样式,然后 visibility: hidden,再通过checked让这俩个div显示
在这里插入图片描述

总结:想使用css来做点击事件,a与iframe当然也可以实现,但是a不能做到点击后的样式改变,另一个恢复默认样式,熟练使用input可以实现很多简单的逻辑效果,例如轮播图,一个界面内切换标签等

下面放源码:
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=
    , initial-scale=1.0">
    <title>纯css实现切换标签效果</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        main {
            width: 600px;
            height: 600px;
            background-color: violet;
        }

        .demo {
            width: 100%;
            height: 100%;
            position: relative;

        }

        input {
            display: none;

        }

        #check_first+label,
        #check_second+label {
            display: inline-block;
            width: 100px;
            height: 60px;
            line-height: 60px;
            text-align: center;
            border: 1px solid;
            background-color: white;
            color: black;
            float: left;
        }
        #check_second+label {
            float: right;
        }

        #check_first:checked+label,
        #check_second:checked+label {
            background-color: black;
            color: white;

        }
        .window_first,
        .window_second{
            position: absolute;
            width: 400px;
            height: 200px;
            background-color: white;
            top: 100px;
            left: 100px;
            visibility: hidden;
        }
        .window_second{
            background-color: tomato;
        }
        #check_first:checked~.window_first,
        #check_second:checked~.window_second{
            visibility: visible;
            transform: scale(1.2);
            transition: all .3s ease;
        }
        
    </style>
</head>

<body>
    <main>
        <div class="demo">
            <input type="radio" name="bt" id="check_first" checked>
            <label for="check_first">按钮1</label>
            <input type="radio" name="bt" id="check_second">
            <label for="check_second">按钮2</label>
            <div class="window_first">这是第一个界面</div>
            <div class="window_second">这是第二个界面</div>
        </div>

    </main>
</body>

</html>
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS图片切换页面效果可以通过使用CSS动画来实现。下面是一个简单的例子: HTML代码: ```html <div class="image-slider"> <input type="radio" name="slide" id="slide-1" checked> <input type="radio" name="slide" id="slide-2"> <input type="radio" name="slide" id="slide-3"> <div class="slides"> <div class="slide1"></div> <div class="slide2"></div> <div class="slide3"></div> </div> <div class="controls"> <label for="slide-1"></label> <label for="slide-2"></label> <label for="slide-3"></label> </div> </div> ``` CSS代码: ```css .image-slider { position: relative; width: 100%; max-width: 600px; margin: 0 auto; } .slides { position: relative; } .slides > div { position: absolute; top: 0; left: 0; width: 100%; height: 300px; opacity: 0; transition: opacity 0.5s; } #slide-1:checked ~ .slides .slide1, #slide-2:checked ~ .slides .slide2, #slide-3:checked ~ .slides .slide3 { opacity: 1; } .controls { position: absolute; bottom: 10px; width: 100%; text-align: center; } .controls label { display: inline-block; width: 15px; height: 15px; background: #333; border-radius: 50%; margin: 0 5px; cursor: pointer; } #slide-1:checked ~ .controls label:nth-child(1), #slide-2:checked ~ .controls label:nth-child(2), #slide-3:checked ~ .controls label:nth-child(3) { background: #fff; } ``` 这段代码中,我们使用了radio input来控制图片的切换,每个radio input对应一个图片,通过CSS选择器和:checked伪类来控制当前需要显示的图片。同时,添加了一组控制按钮,通过点击按钮来切换不同的图片。这样就实现CSS图片切换页面效果

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值