思路

  1. 利用input标签的radio类型中的checked属性控制当前选中tab
  2. 隐藏radio的显示,用label标签的for属性关联radio,对label进行样式编写实现tab栏的自定义。
  3. 一个tab对应一个列表,所有列表初始化做隐藏显示。
  4. tab和列表同级显示,才能通过下列选择器结合去找选中tab对应列表
  • 属性选择器'[]'
  • :checked选择器
  • 兄弟选择器'~'
  • 相邻兄弟选择器'+'

完整例子

<html><head><title>app下载</title><meta charset="UTF-8"><meta content=yes name=apple-mobile-web-app-capable /><meta content=yes name=apple-touch-fullscreen /><meta content="telephone=no,email=no" name=format-detection /><meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no,viewport-fit=cover"><style media="screen">.download {font-size:0;padding: 0 20px;}header {font-size: 18px;padding: 20px 0;border-bottom: 2px solid #e37430;margin-bottom: 5px;}label {display: inline-block;text-align: center;width: 80px;height: 40px;line-height: 40px;background-color: #dcdcdc;color: #000;font-size: 16px;margin-bottom: 1px;}input[type="radio"] {display: none;}input[type="radio"]:checked + label {background-color: #e37430;color: #fff;}input[type="radio"][data-type="mmcm"]:checked ~ .mmcm {display: table;}input[type="radio"][data-type="cmt"]:checked ~ .cmt {display: table;}table {width: 100%;border-bottom: 5px solid #e37430;display: none;font-size: 14px;}table th {background-color: #e37430;color: #fff;height: 33px;line-height: 33px;text-align: center;}table tr {text-align: center;}table tr td {padding: 20px 0;}.btn {height: 20px;line-height: 20px;display: block;width: 80px;margin: 0 auto;background-color: #b1b2b3;border-radius: 4px;color: #000;}.version {color: green;}.signature {color: red;}</style></head><body><div class="download"><header>安装包平台</header><input id="project-mmcm" name="project" type="radio" checked="checked" data-type="mmcm"><label for="project-mmcm">安卓</label><input id="project-cmt" name="project" type="radio" data-type="cmt"><label for="project-cmt">iOS</label><table class="mmcm"><thead><tr><th>签名</th><th>安装地址</th><th>版本号</th><th>发售日期</th></tr></thead><tbody><tr><td class="signature">test1</td><td><a class="btn" href="http://www.baidu.com">下载安装</a></td><td class="version">v1.0</td><td>2018-11-15</td></tr></tbody></table><table class="cmt"><thead><tr><th>签名</th><th>安装地址</th><th>版本号</th><th>发售日期</th></tr></thead><tbody><tr><td class="signature">test2</td><td><a class="btn" href="http://www.baidu.com">下载安装</a></td><td class="version">v1.0</td><td>2018-11-15</td></tr></tbody></table></div></body>
</html>
复制代码

注意事项:因为tab要横向排布,所以label标签的display设置成inline-block

inline-block存在的小问题:

  • 用了display:inline-block后,存在间隙问题,间隙为4像素,这个问题产生的原因是换行引起的,因为我们写标签时通常会在标签结束符后顺手打个回车,而回车会产生回车符,回车符相当于空白符,通常情况下,多个连续的空白符会合并成一个空白符,而产生“空白间隙”的真正原因就是这个让我们并不怎么注意的空白符。

  • 去除空隙的方法: 对父元素添加{font-size:0},即将字体大小设为0那么那个空白符也变成0px从而消除空隙

纯CSS实现Tab栏的切换相关推荐

  1. 用纯css实现优雅的tab页,纯CSS实现Tab页切换效果的方法

    纯CSS实现Tab页切换效果的方法 发布时间:2020-10-26 09:30:20 来源:亿速云 阅读:104 作者:小新 小编给大家分享一下纯CSS实现Tab页切换效果的方法,希望大家阅读完这篇文 ...

  2. css 实现标签切换,CSS_纯CSS实现Tab切换标签效果代码,本文实例讲述了纯CSS实现Tab切 - phpStudy...

    纯CSS实现Tab切换标签效果代码 本文实例讲述了纯CSS实现Tab切换标签效果代码.分享给大家供大家参考.具体如下: 这是一款纯CSS实现的Tab简洁版,很不错的效果,希望大家喜欢. 运行效果截图如 ...

  3. css制作动态按钮导航栏,巧妙使用checkbox制作纯css动态导航栏

    前提:很多时候.我们的网页都需要一个垂直的导航栏.可以分类.有分类.自然就有展开.关闭的功能.你还在使用jquery操作dom来制作吗?那你就out了! 方案:使用checkbox 的 checked ...

  4. html导航去下划线,纯CSS实现导航栏下划线跟随的示例代码

    本篇文章主要介绍了纯CSS实现导航栏下划线跟随的示例代码,分享给大家,具体如下: 效果: 代码: html: aaaa bbbbbbb cccc dddd eeee css: ul { padding ...

  5. html导航页面转换,纯CSS实现导航栏Tab切换效果

    不用 Javascript,使用纯 CSS 方案,实现类似下图的导航栏切换: CSS 的强大之处有的时候超乎我们的想象,Tab 切换,常规而言确实需要用到一定的脚本才能实现.下面看看如何使用 CSS ...

  6. css订单导航栏横线动画,小程序 纯css 实现tab导航栏下划线跟随动画

    很多时候在做tab导航的点击时我们都会要上一个过渡的动画,不然的话会显得生硬,用户没有达到比较佳的用户体验.如下图: 在开发者工具中预览效果 t3fyo-a07nj.gif 我们可以用两种方法实现这样 ...

  7. JavaScript基础 - 经典案例3 - tab栏选项卡切换

    通常我们用 js 写 tab 栏切换功能会用到 排他思想,即干掉其他人,留下我自己 但也可以用一个更有效率的方法:找出那个特殊的人,精准干掉他,放过其他无辜的人,然后留下我自己 实现过程:假设需要切换 ...

  8. 纯Css制作tab选项卡

    Css本身的功能就很强大的,尤其是Css3出来之后,大部分特效只用Css3就能完成了,无需再费心思去研究js.jQuery该怎么怎么去写,代码简洁方便.下面这个是用纯Css制作的tab选项卡效果: 用 ...

  9. tab栏自动切换功能 鼠标移动上去取消自动切换 离开启动自动切换

    <!DOCTYPE html> <html><head><meta charset="utf-8" /><meta name= ...

最新文章

  1. 小程序的生命周期函数?
  2. Python3.2 --- Print函数用法
  3. 计算机主板等级指标,转载一篇主板文章,教你认识三大厂主板分级
  4. Python网络数据采集系列-------概述
  5. mysql 触发器不能同时 insert or update or delete_MySQL6:触发器
  6. 手机360浏览器怎么清空历史记录 手机360浏览器历史记录清空方法分享
  7. 苹果七绕过基带激活2020_苹果漏洞,可跳过苹果激活锁
  8. asp多表查询并显示_高级子查询
  9. symfony api 异常处理_dubbo-RPC服务的异常处理
  10. Struts初学者教程
  11. python导入datetime模块_Python时间模块datetime用法
  12. fckeditor for php 下载,PHP_FCKeditor的安装(PHP),1.下载新最版的FCKEditor,解压 2. - phpStudy...
  13. Brooklyn 最新版 |创意多用途响应式 WordPress 主题下载
  14. 房屋户型图识别方法AI自适应墙体识别
  15. 计算机网络安全漏洞排查报告,网络安全漏洞自查报告.docx
  16. 游戏机生产厂家世界OL破甲刀战详细攻略
  17. 网格计算和云计算之间的比较
  18. CDN是什么?使用CDN有什么优势?
  19. 【Termiology】常见术语的检索
  20. 知识:在遥远的海王星和天王星内部,居然会下钻石雨。

热门文章

  1. 判断多选按钮被选中两种方法
  2. Spark Streaming Backpressure分析
  3. 001 Servlet 介绍
  4. 提升效率的JQUERY(转)
  5. 设备像素,设备独立像素,CSS像素
  6. IDEA及IDEA汉化包
  7. 【Linux】ubuntu下词典软件Goldendict介绍(可屏幕取词)和StarDict(星际译王)的安装...
  8. 程序员最后可能的出路
  9. POJ1151基本的扫描线求面积
  10. 【开发环境】安装 Visual Studio Code 开发环境 ( 下载 Visual Studio Code 安装器 | Visual Studio Code )