• 纯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. }

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

  • 相关阅读:
    代码随想录算法训练营Day1 : 704.二分查找、27.移除元素
    【Node.JS 】创建基本的web服务器
    Java并发编程—如何写好代码?链式调用该怎么玩?
    神经网络(六)循环神经网络
    MOS管米勒效应
    Kubernetes初始化失败dial tcp 127.0.0.1:10248: connect: connection refused.
    Go的网络编程详解
    21条最佳实践,全面保障 GitHub 使用安全
    Docker实现挂载的N种方式
    [SQL]视图和权限
  • 原文地址:https://blog.csdn.net/BambooStrip/article/details/126725967