用CSS实现Tab页切换效果的示例代码_CSS教程_CSS_网页制作

最近切一个页面的时候涉及到了一个tab切换的部分,因为不想用js想着能不能用纯css的选择器来实现切换效果。搜了一下大致有下面三种写法。

1、利用 :hover 选择器

缺点:只有鼠标在元素上面的时候才有效果,无法实现选中和默认显示某一个的效果

2、利用 a标签的锚点 + :target选择器

缺点:因为锚点会将选中的元素滚动到页面最上面,每次切换位置都要移动,体验极差。

立即学习“前端免费学习笔记(深入)”;

3、利用 label和radio 的绑定关系和 radio选中时的:checked 来实现效果

缺点:HTML结构元素更复杂

用CSS实现Tab页切换效果的示例代码_CSS教程_CSS_网页制作

经过实验发现第三种方法达到的效果最好。所以下面讲一下第三种实现的方法。

这种方法的写法不固定,我查资料的时候各种各样的写法都有一度让我一头雾水的。最后看完发现总体思路都是一样的,无非就是下面的几个步骤。

绑定label和radio:这个不用说id和for属性绑定

隐藏radio按钮:这个方法有很多充分发挥你们的想象力就可以了,我见过的方法有设置 display:none; 隐藏的、设置 绝对定位,将left设置为很大的负值 ,移动到页面外达到隐藏效果、设置**绝对定位:使元素脱离文档流,然后 opacity: 0; **设置为透明来达到隐藏效果。

隐藏多余的tab页:和上面同理,还可以通过 z-index 设置层级关系来相互遮挡。

设置默认项:在默认按钮上添加 checked=”checked” 属性

设置选中效果:利用 + 选择器 和 ~ 选择器来设置选中对应元素时下方的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;}

这样就可以实现一个Tab页切换的效果了,不用一点儿js,当然肯定也有兼容性的问题。实际操作中tab页还是使用js比较好。下面是小Demo的代码,样式比较多主要是为了实现各种选中效果, 真正用来达到选择切换目地的核心代码就几行

演示地址

代码:

                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;        }        
  • 111111111111

  • 2222222222222

  • 33333333333333

以上就是用CSS实现Tab页切换效果的示例代码_CSS教程_CSS_网页制作的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1609147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 00:37:40
下一篇 2025年12月24日 00:38:02

相关推荐

  • css实现图片未加载完成时占位显示实例分享

    通过css控制,可以实现加载网络图片时,未加载完成的时候显示本地一张占位图,加载完成后显示网络图片; 原理:通过在img标签的after伪元素上添加一张占位图,并且img都设置为position:relative;after设置position:absolute;img标签的src为网络图片,这样加…

    好文分享 2025年12月24日
    000
  • css之分页打印

    这次给大家带来css之分页打印,css之分页打印的注意事项有哪些,下面就是实战案例,一起来看一下。 很久没写文章了,最近做了一个员工入职的项目,该系统有一个批量打印个人信息的功能需求。因为之前也没接触过打印这方面的功能,就上网查了下,发现jquery有个打印功能的 API(PrintArea) ,关…

    2025年12月24日
    000
  • 清除css浮动的方法

    这次给大家带来清除css浮动的方法,清除css浮动的注意事项有哪些,下面就是实战案例,一起来看一下。 一,我们为什么要浮动 为什么浮动,为什么要清除浮动,以及清除浮动的方法。在网页布局的时候有时需要元素并排显示,如果不选择浮动,那么那些块状元素就会一行一行显示,占用空间不说,用户体验也是极为不好的。…

    2025年12月24日 好文分享
    000
  • 使用CSS做出3D翻页效果

    这次给大家带来使用CSS做出3D翻页效果,使用CSS做出3D翻页效果的注意事项有哪些,下面就是实战案例,一起来看一下。 今天开始~小编将与大家分享一系列的web前端特效荟萃,喜欢把玩儿炫酷效果的小伙伴快快看过来^_^ ,希望大家喜欢呦~ 第一期,给大家分享一个使用纯CSS实现书籍3D翻页效果, 相关…

    2025年12月24日
    000
  • css3如何做出小于一像素的细线

    这次给大家带来css3如何做出小于一像素的细线,css3做出小于一像素的细线的注意事项有哪些,下面就是实战案例,一起来看一下。 Webapp中的CSS3实现 0.5px的细线 感觉很长时间没写过博客了,最近生活还算稳定,过得较为充实,所以又要开始写写东西了,一个是为了做些记录,是怕自己某一天,忘记了…

    2025年12月24日 好文分享
    000
  • css判断子元素个数

    这次给大家带来css判断子元素个数,css判断子元素个数的注意事项有哪些,下面就是实战案例,一起来看一下。 工作时遇到这样一个问题:根据某元素所包含的子元素个数,分别设置不同的样式,这个用js可以解决,不过个人认为用css解决可能更简单一点。这也正好加深了我对css选择器的理解和运用。demo如下:…

    2025年12月24日 好文分享
    000
  • CSS的定位属性详解

    这次给大家带来CSS的定位属性详解,使用CSS定位属性的注意事项有哪些,下面就是实战案例,一起来看一下。 CSS的定位属性有三种,分别是绝对定位、相对定位、固定定位。 position: absolute; position: relative; position: fixed; 下面逐一介绍。 相…

    2025年12月24日 好文分享
    000
  • CSS实现波浪移动

    这次给大家带来CSS实现波浪移动,CSS实现波浪移动的注意事项有哪些,下面就是实战案例,一起来看一下。 在某些页面上常常看到波浪的效果,虽然只有装饰的作用,但是却让页面看上去更生动了,同时某些情况下也能起到进度条的作用,而波浪的形式却比普通进度条更美观有趣。 如果想要实现波浪的效果,作者想到的第一个…

    2025年12月24日
    000
  • 你必须要知道的CSS三大特性

    这次给大家带来你必须要知道的css三大特性,使用css三大特性的注意事项有哪些,下面就是实战案例,一起来看一下。 CSS三大特性 : 继承,层叠,优先级 一. 继承性 1.什么是继承性? 作用: 给父元素设置一些属性, 子元素也可以使用, 这个我们就称之为继承性 立即学习“前端免费学习笔记(深入)”…

    好文分享 2025年12月24日
    000
  • CSS的显示模式如何使用

    这次给大家带来css的显示模式如何使用,使用css的显示模式的注意事项有哪些,下面就是实战案例,一起来看一下。 一. 标签补充  div 和s pan 1.什么是div? 作用: 一般用于配合css完成网页的基本布局 2.什么是span? 作用: 一般用于配合css修改网页中的一些局部信息 3.di…

    好文分享 2025年12月24日
    000
  • CSS的背景与精灵图

    这次给大家带来css的背景与精灵图,使用css的背景与精灵图的注意事项有哪些,下面就是实战案例,一起来看一下。 1.如何设置标签的背景颜色? 在CSS中有一个background-color:属性, 就是专门用来设置标签的背景颜色的 取值: 具体单词  rgb rgba 十六进制 立即学习“前端免费…

    好文分享 2025年12月24日
    000
  • HTML与CSS的盒子模型

    这次给大家带来html与css的盒子模型,使用html与css的盒子模型的注意事项有哪些,下面就是实战案例,一起来看一下。 一.边框 (上) 1.什么边框? 边框就是环绕在标签宽度和高度周围的线条 2.边框属性的格式 立即学习“前端免费学习笔记(深入)”; 2.1连写(同时设置四条边的边框)bord…

    2025年12月24日
    000
  • CSS实现宽高等比布局的代码

    宽度是高度的两倍(等比缩放)实现思路: 以父级元素为基准, 子级 width:100%; (也就是父级宽度的100%), padding-top:50% (也就是父级宽度的50%,根据css规范, padding用百分比表示的话, padding: 100%等于父元素的宽度); 为什么不直接`wid…

    2025年12月24日
    000
  • CSS实现数字标签样式

    大家在逛购物网站或者小说网站的时候都会发现,有商品或小说封面图旁边都有排名或者受欢迎等标志,那么我们今天就来讲一下是如何实现这些标志的吧! CSS实现排行榜标签样式   即:    主要分以下几步介绍我的实现过程: 初始实现方法(不成功) 后续实现方法(成功) 立即学习“前端免费学习笔记(深入)”;…

    2025年12月24日 好文分享
    000
  • css实现商品封面图向上浮动方法详细讲述

    本篇文章讲述了css如何实现商品封面图触摸向上浮动,不了解css如何实现商品封面图触摸向上浮动同学,我们一起来看看本篇文章吧!、 今天在写css时需要实现:当鼠标悬停在由图片和介绍组成的超链接时,榴莲向上浮动的效果。 我在实现这个效果时思路分为以下几步: 鼠标悬停 图片移动 下方元素绝对定位 立即学…

    2025年12月24日
    000
  • CSS实现分隔线的多种方法详细讲解

    本篇文章讲述了css如何实现分隔线的多种方法,我们在写前端页面的时候分隔线可以起到美观作用,css实现分隔线的方法有多种,那么我们就一起来看看使用css如何实现分隔线更美观点吧! 单个标签实现分隔线: html: 小小分隔线 单标签实现 css: .demo_line_01{ padding: 0 …

    好文分享 2025年12月24日
    000
  • css实现盒子模型详细讲解

     本篇文章讲述了css实现盒子模型,大家对css实现盒子模型不了解的话或者对css实现盒子模型感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 盒子模型是html+css中最核心的基础知识,理解了这个重要的概念才能更好的排版,进行页面布局。下面是自己积累和总结的关于css盒子模型的…

    2025年12月24日 好文分享
    000
  • css3的聊天气泡样式

    这次给大家带来css3的聊天气泡样式,做出css3的聊天气泡样式的注意事项有哪些,下面就是实战案例,一起来看一下。 在聊天的场景中,聊天内容需要用到气泡修饰,如下图。下面一一讲解。 图片式: 第一个样式是京东客服,气泡的圆角和钩子都是用了图片。使用了一个table组合成了一个圆角的框框。lm样式拼出…

    2025年12月24日
    000
  • 详谈css样式初始化

    这次给大家带来详谈css样式初始化 ,css的样式初始化注意事项有哪些,下面就是实战案例,一起来看一下。      在网站编写的时候,由于许多的标签会有默认存在的样式,比如P标签的外边距,a标签的下划线等等,通常我们会把这些默认样式去除,以免在后面的编写中造成诸多的不变。 1、拥有默认内外边距的标签…

    好文分享 2025年12月24日
    000
  • css的渐变颜色

    这次给大家带来css的渐变颜色,使用css渐变颜色的注意事项有哪些,下面就是实战案例,一起来看一下。 background: -o-linear-gradient(left, #109afd, #3ed3fe);background: -moz-linear-gradient(left, #109a…

    好文分享 2025年12月24日
    000

发表回复

登录后才能评论
关注微信