纯 CSS 实现 tab 切换效果的三种写法及注意事项

纯 CSS 实现 tab 切换效果的三种写法及注意事项

这次给大家带来纯CSS实现Tab页切换效果,纯CSS实现Tab页切换效果的注意事项有哪些,下面就是实战案例,一起来看一下。这样就可以实现一个Tab页切换的效果了,不用一点儿js,当然肯定也有兼容性的问题。

网页设计越来越重要!跟你们说说,有个超好玩儿的技能——全靠CSS就能做出Tab切换页面效果。是不是感觉挺高大上?别怕,我来教你怎么搞定它,还会告诉你一些小窍门。

为什么要用纯CSS实现Tab页切换效果?

用纯CSS做Tab页切换,能省去对JavaScript的依赖,使网页速度更快。再说,CSS选择器强大得很,可以弄出各种炫酷的效果。当然,这方法也有些麻烦,像兼容性的问题,但只要稍微注意下,就不会有啥大问题了。

三种常见的纯CSS实现Tab页切换方法

咱们首先来瞧瞧用CSS做tab页切换有哪些常用办法!第一招就是使用`:hover`选择器这个挺直白的,不过要注意的是只有鼠标放上去的时候才会显示。第二个是用a标签的锚点加`:target`选择器,不过这招每次切换都得让页面滚一下,感觉有点别扭。最后一个是用label和radio的绑定关系再配合radio被选中时的`:checked`选择器,虽然HTML结构看着复杂点儿,但是效果最棒。

第三种方法的详细步骤

纯 CSS 实现 tab 切换效果的三种写法及注意事项

咱们接着聊聊第三个方法怎么做。首先,要用id和for属性把标签和收音机绑起来。接着,把这个收音机藏起来,有几种方法,像设成显示为无,或是用绝对定位把它挪出屏幕去就好。再下一步,把不用的选项卡隐掉,用z-index调整上下位置就能做到。最后,弄好默认项和被选状态,给默认按钮加个checked属性,还有用加号和波浪符选择器设定选中样式就行了。

实际操作中的注意事项

做实战时,记得留意点小事情。像,保证每个选择器都没问题,不然可就没法儿看了。还有,哪怕用纯粹的CSS也能搞定很多东西,但是在有些场景里,用JavaScript那可真是省事儿多了。所以,咱们得看看啥情况再挑个最合适的办法!

小Demo代码分享

这里有段简单的样例代码,用来让你们更容易理解。虽然看起来很花哨,但搞定切换功能的主要代码其实就是那几条而已!你们想怎么调就怎么调。

兼容性问题

最后要记得看下兼容性!虽然纯CSS在现在的浏览器里应该没啥大问题,但是在老点的浏览器上就得当心了。用的时候别忘了看下浏览器能否支持。

/* 当radio为选中状态时设置它的test-label兄弟元素的属性 */
input[type="radio"]:checked+.test-label {
    /* 为了修饰存在的边框背景属性 */
    border-color: #cbcccc;
    border-bottom-color: #fff;
    background: #fff;
    /* 为了修饰存在的层级使下边框遮挡下方p的上边框 */
    z-index: 10;
}
/* 当radio为选中状态时设置与它同级的tab-box元素的显示层级 */
input[type="radio"]:checked~.tab-box {
    /* 选中时提升层级,遮挡其他tab页达到选中切换的效果 */
    z-index: 5;
}

总结

看了这么多,现在你们肯定都知道怎么用CSS做Tab页切换动画,这招不但好用,视觉效果还超赞!但别忘了,有些小地方还是得留意下,比如兼容性问题,操作时也得小心翼翼。

结尾,想问你一下:你试过纯CSS做出其他帅气的效果吗?快来评论区分享你的实战经验和想法!还有别忘了给我点个赞再转发!

nbsp;html>
    
    
    
    CSS实现Tab切换效果
    
        ul {
            margin: 0;
            padding: 0;
        }
        .clearfloat {
            zoom: 1;
        }
        .clearfloat::after {
            display: block;
            clear: both;
            content: "";
            visibility: hidden;
            height: 0;
        }
        .tab-list {
            position: relative;
        }
        .tab-list .tab-itom {
            float: left;
            list-style: none;
            margin-right: 4px;
        }
        .tab-itom .test-label {
            position: relative;
            display: block;
            width: 85px;
            height: 27px;
            border: 1px solid transparent;
            border-top-left-radius: 5px;
            border-top-right-radius: 5px;
            line-height: 27px;
            text-align: center;
            background: #e7e8eb;
        }
        .tab-itom .tab-box {
            /* 设置绝对定位方便定位相对于tab-list栏的位置,同时为了可以使用z-index属性 */
            position: absolute;
            left: 0;
            top: 28px;
            width: 488px;
            height: 248px;
            border: 1px solid #cbcccc;
            border-radius: 5px;
            border-top-left-radius: 0px;
            background: #fff;
            /* 设置层级最低方便选中状态遮挡 */
            z-index: 0;
        }
        /* 用绝对定位使按钮脱离文档流,透明度设置为0将其隐藏 */
        input[type="radio"] {
            position: absolute;
            opacity: 0;
        }
        /* 利用选择器实现  tab切换 */
        /* 当radio为选中状态时设置它的test-label兄弟元素的属性 */
        input[type="radio"]:checked + .test-label {
            /* 为了修饰存在的边框背景属性 */
            border-color: #cbcccc;
            border-bottom-color: #fff;
            background: #fff;
            /* 为了修饰存在的层级使下边框遮挡下方p的上边框 */
            z-index: 10;
        }
        /* 当radio为选中状态时设置与它同级的tab-box元素的显示层级 */
        input[type="radio"]:checked ~ .tab-box {
            /* 选中时提升层级,遮挡其他tab页达到选中切换的效果 */
            z-index: 5;
        }
    
    

原文链接:https://www.icz.com/technicalinformation/web/vue2/2024/06/18645.html,转载请注明出处~~~

0

评论0

请先

注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
没有账号? 注册  忘记密码?