• 纯CSS实现tab栏切换,简易轮播图


    很多时候实现tab栏需要调整js事件,实际上如果不嫌麻烦的话,可以使用纯css实现栏目切换效果。

    超链接写法:

    tab栏目

    超链接写法的实现,依赖于超链接描点功能,可以给栏目的元素定义id,在超链接的href属性值里填写相应id即可。

    例:

    1. <div class="tab-box">
    2. <ul class="tab-nav">
    3. <li><a class="tab-tit" href="#active1">第一项a>li>
    4. <li><a class="tab-tit" href="#active2">第二项a>li>
    5. <li><a class="tab-tit" href="#active3">第三项a>li>
    6. <li><a class="tab-tit" href="#active4">第四项a>li>
    7. ul>
    8. <div class="tab-content">
    9. <div class="tab-content" id="active1">内容1div>
    10. <div class="tab-content" id="active2">内容2div>
    11. <div class="tab-content" id="active3">内容3div>
    12. <div class="tab-content" id="active4">内容4div>
    13. div>
    14. div>

    然后调整样式即可

    一、调整整体宽、高均为可视化窗口的一半,ul使用flex布局,使li铺满。

    注意:这里整体宽高可以自定义px,等,ul下li布局可以采用浮动,定位等。

    1. .tab-box {
    2. width: 50vw;
    3. height: 50vh;
    4. margin: 0 auto;
    5. border: 1px solid #f0f;
    6. border-radius: 5px;
    7. overflow: hidden;
    8. }
    9. .tab-nav {
    10. width: 100%;
    11. height: 60px;
    12. padding: 0;
    13. margin: 0;
    14. list-style: none;
    15. display: flex;
    16. }

    二、li均分ul宽度,给选项卡统一背景色,将选项卡a撑高

    注意:可以使用a直接给撑高

    1. .tab-nav li {
    2. flex: 1;
    3. height: 60px;
    4. text-align: center;
    5. background: cornflowerblue;
    6. }
    7. .tab-tit {
    8. display: block;
    9. width: 100%;
    10. height: 100%;
    11. line-height: 60px;
    12. cursor: pointer;
    13. text-decoration: none;
    14. color: #000;
    15. }

    计算内容展示区域高度,超出部分隐藏,各项内容宽高为内容展示区域宽高,通过锚点定位,hover高亮效果:

    注意:展示区域高度可以自定义。

    1. .tab-content {
    2. height: calc(100% - 60px);
    3. overflow: hidden;
    4. }
    5. .tab-content div {
    6. text-align: left;
    7. height: 100%;
    8. text-indent: 2em;
    9. padding: 10px;
    10. box-sizing: border-box;
    11. }
    12. .tab-tit:hover {
    13. background: #f0f;
    14. color: #fff;
    15. }

    实现效果展示:

     

    简易轮播图

    同理:以上的方法也可以用来写css简易版轮播图。

    内容:

    和栏目没有什么不同,只是内容区换位图片即可。

    1. <div class="banner">
    2. <ul class="paging">
    3. <li><a class="pag-btn" href="#active1">1a>li>
    4. <li><a class="pag-btn" href="#active2">2a>li>
    5. <li><a class="pag-btn" href="#active3">3a>li>
    6. <li><a class="pag-btn" href="#active4">4a>li>
    7. ul>
    8. <div class="content">
    9. <div class="con" id="active1">
    10. <img src="./image/text.jpg" alt="!">
    11. div>
    12. <div class="con" id="active2">
    13. <img src="./image/text.jpg" alt="!">
    14. div>
    15. <div class="con" id="active3">
    16. <img src="./image/text.jpg" alt="!">
    17. div>
    18. <div class="con" id="active4">
    19. <img src="./image/text.jpg" alt="!">
    20. div>
    21. div>
    22. div>

    清除样式,设置banner区域宽度

    1. * {
    2. padding: 0;
    3. text-decoration: none;
    4. list-style: none;
    5. }
    6. .banner {
    7. width: 730px;
    8. height: 455px;
    9. margin: 0 auto;
    10. position: relative;
    11. }

    设置分页器按钮,一样可以使用flex等布局手段。

    注意如果需要左右导航按钮,一样的操作,只需要加两个a标签放好位置即可。

    1. .paging {
    2. position: absolute;
    3. bottom: 5px;
    4. left: 40%;
    5. }
    6. .paging li {
    7. float: left;
    8. }
    9. .paging li a {
    10. display: block;
    11. width: 20px;
    12. line-height: 20px;
    13. text-align: center;
    14. background-color: rgba(0, 0, 0, .4);
    15. color: white;
    16. margin: 0 10px;
    17. border-radius: 50%;
    18. }
    19. .paging li a:hover {
    20. background-color: orange;
    21. color: black;
    22. }

    设置轮播图内容展示区高度。多余部分裁掉。

    1. .content {
    2. height: 100%;
    3. overflow: hidden;
    4. }

     可以实现简易版的点击切换效果,本质上还是栏目,只是栏目的内容是图片,栏目的标题放在了想要的位置。

  • 相关阅读:
    Linux环境下安装docker环境(亲测无坑)
    《Mycat分布式数据库架构》之数据切分实战
    服务端 TCP 连接的 TIME_WAIT 过多问题的分析与解决
    华为eNSP配置专题-浮动路由及BFD的配置
    vivado产生报告阅读分析10-时序报告6
    MySQL表的操作
    Java密码学之加解密
    聊聊云原生数据平台
    AtCoder Beginner Contest 276 G.Count Sequences(计数/组合数学)
    数据结构:树和二叉树的概念及性质
  • 原文地址:https://blog.csdn.net/BambooStrip/article/details/126725967