zoukankan      html  css  js  c++  java
  • CSS实现导航条Tab切换的三种方法

    布局方式:

    1. 语义布局:
      • 上代码:
          1 <!doctype html>
          2 <html>
          3 
          4     <head>
          5         <meta charset="utf-8">
          6         <title>tab导航</title>
          7     </head>
          8 
          9     <style>
         10         .box {
         11             margin: 300px auto;
         12         }
         13     </style>
         14 
         15     <body>
         16 
         17         <style>
         18             body,
         19             p {
         20                 margin: 0;
         21             }
         22             
         23             h2 {
         24                 margin: 0;
         25                 font-size: 100%;
         26             }
         27             
         28             ul {
         29                 margin: 0;
         30                 padding: 0;
         31                 list-style: none;
         32             }
         33             
         34             a {
         35                 text-decoration: none;
         36                 color: inherit;
         37             }
         38             
         39             .box {
         40                 width: 572px;
         41                 border: 1px solid #999;
         42                 overflow: hidden;
         43             }
         44             
         45             .nav {
         46                 margin-left: -1px;
         47                 font: 14px "微软雅黑";
         48                 overflow: hidden;
         49                 background-color: #f1f1f1;
         50             }
         51             
         52             .navI {
         53                 float: left;
         54                 width: 33.333%;
         55                 box-sizing: border-box;
         56             }
         57             
         58             .navI-tit {
         59                 line-height: 40px;
         60                 text-align: center;
         61                 cursor: pointer;
         62                 border-left: 1px solid #cecece;
         63                 border-bottom: 1px solid #cecece;
         64             }
         65             
         66             .navI-txt {
         67                 width: 572px;
         68                 height: 200px;
         69                 text-indent: 2em;
         70                 line-height: 2;
         71                 background: #fff;
         72             }
         73             
         74             .ml1 {
         75                 margin-left: -100%;
         76             }
         77             
         78             .ml2 {
         79                 margin-left: -200%;
         80             }
         81             
         82             .navI_active {
         83                 position: relative;
         84                 z-index: 1;
         85             }
         86         </style>
         87 
         88         <div class="box">
         89             <ul class="nav">
         90                 <li class="navI navI_active">
         91                     <h2 class="navI-tit">课程</h2>
         92                     <p class="navI-txt">课程内容</p>
         93                 </li>
         94                 <li class="navI">
         95                     <h2 class="navI-tit">学习计划</h2>
         96                     <p class="navI-txt ml1">学习计划内容</p>
         97                 </li>
         98                 <li class="navI">
         99                     <h2 class="navI-tit">技能图谱</h2>
        100                     <p class="navI-txt ml2">技能图谱内容</p>
        101                 </li>
        102             </ul>
        103         </div>
        104 
        105     </body>
        106 
        107 </html>
      • 效果图:
    2. 视觉布局:
      • 上代码:
         1 <!doctype html>
         2 <html>
         3 
         4     <head>
         5         <meta charset="utf-8">
         6         <title>tab导航</title>
         7     </head>
         8 
         9     <style>
        10         .box {
        11             margin: 300px auto;
        12         }
        13     </style>
        14 
        15     <body>
        16 
        17         <style>
        18             body,
        19             p {
        20                 margin: 0;
        21             }
        22             
        23             ul {
        24                 margin: 0;
        25                 padding: 0;
        26                 list-style: none;
        27             }
        28             
        29             a {
        30                 text-decoration: none;
        31                 color: inherit;
        32             }
        33             
        34             .box {
        35                 width: 572px;
        36                 border: 1px solid #999;
        37                 font: 14px "微软雅黑";
        38                 overflow: hidden;
        39             }
        40             
        41             .nav-tit {
        42                 margin-left: -1px;
        43                 height: 40px;
        44                 line-height: 40px;
        45                 text-align: center;
        46                 background-color: #f1f1f1;
        47                 overflow: hidden;
        48             }
        49             
        50             .nav-titI {
        51                 box-sizing: border-box;
        52                 float: left;
        53                 width: 33.333%;
        54                 border-left: 1px solid #cecece;
        55                 border-bottom: 1px solid #cecece;
        56                 cursor: pointer;
        57             }
        58             
        59             .nav-txt {
        60                 height: 200px;
        61                 text-indent: 2em;
        62                 line-height: 2;
        63             }
        64             
        65             .nav-txtI {
        66                 height: 200px;
        67             }
        68         </style>
        69 
        70         <div class="box">
        71             <nav class="nav-tit">
        72                 <a class="nav-titI">课程</a>
        73                 <a class="nav-titI">学习计划</a>
        74                 <a class="nav-titI">技能图谱</a>
        75             </nav>
        76             <ul class="nav-txt">
        77                 <li class="nav-txtI nav-txtI_active">课程内容</li>
        78                 <li class="nav-txtI">学习计划内容</li>
        79                 <li class="nav-txtI">技能图谱内容</li>
        80             </ul>
        81         </div>
        82 
        83     </body>
        84 
        85 </html>
      • 效果图:
    1. hover:
      • 上代码:
          1 <!doctype html>
          2 <html>
          3 
          4     <head>
          5         <meta charset="utf-8">
          6         <title>tab导航</title>
          7     </head>
          8 
          9     <style>
         10         .box {
         11             margin: 300px auto;
         12         }
         13     </style>
         14 
         15     <body>
         16 
         17         <style>
         18             body,
         19             p {
         20                 margin: 0;
         21             }
         22             
         23             h2 {
         24                 margin: 0;
         25                 font-size: 100%;
         26             }
         27             
         28             ul {
         29                 margin: 0;
         30                 padding: 0;
         31                 list-style: none;
         32             }
         33             
         34             a {
         35                 text-decoration: none;
         36                 color: inherit;
         37             }
         38             
         39             .box {
         40                 width: 572px;
         41                 border: 1px solid #999;
         42                 overflow: hidden;
         43             }
         44             
         45             .nav {
         46                 margin-left: -1px;
         47                 font: 14px "微软雅黑";
         48                 overflow: hidden;
         49                 background-color: #f1f1f1;
         50             }
         51             
         52             .navI {
         53                 float: left;
         54                 width: 33.333%;
         55                 box-sizing: border-box;
         56             }
         57             
         58             .navI-tit {
         59                 line-height: 40px;
         60                 text-align: center;
         61                 cursor: pointer;
         62                 border-left: 1px solid #cecece;
         63                 border-bottom: 1px solid #cecece;
         64             }
         65             
         66             .navI-txt {
         67                 width: 572px;
         68                 height: 200px;
         69                 text-indent: 2em;
         70                 line-height: 2;
         71                 background: #fff;
         72             }
         73             
         74             .ml1 {
         75                 margin-left: -100%;
         76             }
         77             
         78             .ml2 {
         79                 margin-left: -200%;
         80             }
         81             
         82             .navI_active {
         83                 position: relative;
         84                 z-index: 1;
         85             }
         86             /*重点代码*/
         87             
         88             .navI:hover {
         89                 position: relative;
         90                 z-index: 1;
         91             }
         92             
         93             .navI:hover .navI-tit {
         94                 background: #fff;
         95                 border-bottom: none;
         96             }
         97         </style>
         98 
         99         <div class="box">
        100             <ul class="nav">
        101                 <li class="navI navI_active">
        102                     <h2 class="navI-tit">课程</h2>
        103                     <p class="navI-txt">课程内容</p>
        104                 </li>
        105                 <li class="navI">
        106                     <h2 class="navI-tit">学习计划</h2>
        107                     <p class="navI-txt ml1">学习计划内容</p>
        108                 </li>
        109                 <li class="navI">
        110                     <h2 class="navI-tit">技能图谱</h2>
        111                     <p class="navI-txt ml2">技能图谱内容</p>
        112                 </li>
        113             </ul>
        114         </div>
        115 
        116     </body>
        117 
        118 </html>
    2. 锚点:
      1. 【使用语义布局】上代码:
          1 <!doctype html>
          2 <html>
          3 
          4     <head>
          5         <meta charset="utf-8">
          6         <title>tab导航</title>
          7     </head>
          8 
          9     <style>
         10         .box {
         11             margin: 300px auto;
         12         }
         13     </style>
         14 
         15     <body>
         16 
         17         <style>
         18             body,
         19             p {
         20                 margin: 0;
         21             }
         22             
         23             h2 {
         24                 margin: 0;
         25                 font-size: 100%;
         26             }
         27             
         28             ul {
         29                 margin: 0;
         30                 padding: 0;
         31                 list-style: none;
         32             }
         33             
         34             a {
         35                 text-decoration: none;
         36                 color: inherit;
         37             }
         38             
         39             .box {
         40                 width: 572px;
         41                 border: 1px solid #999;
         42                 overflow: hidden;
         43             }
         44             
         45             .nav {
         46                 margin-left: -1px;
         47                 font: 14px "微软雅黑";
         48                 overflow: hidden;
         49                 background-color: #f1f1f1;
         50             }
         51             
         52             .navI {
         53                 float: left;
         54                 width: 33.333%;
         55                 box-sizing: border-box;
         56                 position: relative;
         57             }
         58             
         59             .navI-tit {
         60                 position: absolute;
         61                 top: 0;
         62                 left: 0;
         63                 right: 0;
         64                 box-sizing: border-box;
         65                 line-height: 40px;
         66                 height: 40px;
         67                 text-align: center;
         68                 cursor: pointer;
         69                 border-left: 1px solid #cecece;
         70                 border-bottom: 1px solid #cecece;
         71             }
         72             
         73             .navI-txt {
         74                 width: 572px;
         75                 height: 200px;
         76                 margin-top: 40px;
         77                 text-indent: 2em;
         78                 line-height: 2;
         79                 background: #fff;
         80             }
         81             
         82             .ml1 {
         83                 margin-left: -100%;
         84             }
         85             
         86             .ml2 {
         87                 margin-left: -200%;
         88             }
         89             
         90             .navI_active {
         91                 z-index: 1;
         92             }
         93             /*重点代码*/
         94             
         95             .navI-txt:target {
         96                 position: relative;
         97                 z-index: 1;
         98             }
         99             
        100             .navI-txt:target~ .navI-tit {
        101                 background: #fff;
        102                 border-bottom: none;
        103             }
        104         </style>
        105 
        106         <div class="box">
        107             <ul class="nav">
        108                 <li class="navI navI_active">
        109                     <p class="navI-txt" id="kc">课程内容</p>
        110                     <a class="navI-tit" href="#kc">课程</a>
        111                 </li>
        112                 <li class="navI">
        113                     <p class="navI-txt ml1" id="xx">学习计划内容</p>
        114                     <a class="navI-tit" href="#xx">学习计划</a>
        115                 </li>
        116                 <li class="navI">
        117                     <p class="navI-txt ml2" id="jn">技能图谱内容</p>
        118                     <a class="navI-tit" href="#jn">技能图谱</a>
        119                 </li>
        120             </ul>
        121         </div>
        122 
        123     </body>
        124 
        125 </html>

      2. 【使用视觉布局】上代码:
         1 <!doctype html>
         2 <html>
         3 
         4     <head>
         5         <meta charset="utf-8">
         6         <title>tab导航</title>
         7     </head>
         8 
         9     <style>
        10         .box {
        11             margin: 300px auto;
        12         }
        13     </style>
        14 
        15     <body>
        16 
        17         <style>
        18             body,
        19             p {
        20                 margin: 0;
        21             }
        22             
        23             ul {
        24                 margin: 0;
        25                 padding: 0;
        26                 list-style: none;
        27             }
        28             
        29             a {
        30                 text-decoration: none;
        31                 color: inherit;
        32             }
        33             
        34             .box {
        35                 width: 572px;
        36                 border: 1px solid #999;
        37                 font: 14px "微软雅黑";
        38                 overflow: hidden;
        39             }
        40             
        41             .nav-tit {
        42                 margin-left: -1px;
        43                 height: 40px;
        44                 line-height: 40px;
        45                 text-align: center;
        46                 background-color: #f1f1f1;
        47                 overflow: hidden;
        48             }
        49             
        50             .nav-titI {
        51                 box-sizing: border-box;
        52                 float: left;
        53                 width: 33.333%;
        54                 border-left: 1px solid #cecece;
        55                 border-bottom: 1px solid #cecece;
        56                 cursor: pointer;
        57             }
        58             
        59             .nav-txt {
        60                 height: 200px;
        61                 text-indent: 2em;
        62                 line-height: 2;
        63             }
        64             
        65             .nav-txtI {
        66                 height: 200px;
        67             }
        68             /*重点内容*/
        69             
        70             .nav-txt {
        71                 overflow: hidden;
        72             }
        73             
        74             .nav-titI:hover {
        75                 background-color: white;
        76                 border-bottom: none;
        77             }
        78         </style>
        79 
        80         <div class="box">
        81             <nav class="nav-tit">
        82                 <a class="nav-titI" href="#kc">课程</a>
        83                 <a class="nav-titI" href="#xx">学习计划</a>
        84                 <a class="nav-titI" href="#jn">技能图谱</a>
        85             </nav>
        86             <ul class="nav-txt">
        87                 <li class="nav-txtI nav-txtI_active" id="kc">课程内容</li>
        88                 <li class="nav-txtI" id="xx">学习计划内容</li>
        89                 <li class="nav-txtI" id="jn">技能图谱内容</li>
        90             </ul>
        91         </div>
        92 
        93     </body>
        94 
        95 </html>
    3. label:
      1. 【使用语义布局】上代码:
          1 <!doctype html>
          2 <html>
          3 
          4     <head>
          5         <meta charset="utf-8">
          6         <title>tab导航</title>
          7     </head>
          8 
          9     <style>
         10         .box {
         11             margin: 300px auto;
         12         }
         13     </style>
         14 
         15     <body>
         16 
         17         <style>
         18             body,
         19             p {
         20                 margin: 0;
         21             }
         22             
         23             h2 {
         24                 margin: 0;
         25                 font-size: 100%;
         26             }
         27             
         28             ul {
         29                 margin: 0;
         30                 padding: 0;
         31                 list-style: none;
         32             }
         33             
         34             input {
         35                 margin: 0;
         36                 width: 0;
         37             }
         38             
         39             a {
         40                 text-decoration: none;
         41                 color: inherit;
         42             }
         43             
         44             .box {
         45                 width: 572px;
         46                 border: 1px solid #999;
         47                 overflow: hidden;
         48             }
         49             
         50             .nav {
         51                 margin-left: -1px;
         52                 font: 14px "微软雅黑";
         53                 overflow: hidden;
         54                 background-color: #f1f1f1;
         55             }
         56             
         57             .navI {
         58                 float: left;
         59                 width: 33.333%;
         60                 box-sizing: border-box;
         61             }
         62             
         63             .navI-tit {
         64                 display: block;
         65                 line-height: 40px;
         66                 text-align: center;
         67                 cursor: pointer;
         68                 border-left: 1px solid #cecece;
         69                 border-bottom: 1px solid #cecece;
         70             }
         71             
         72             .navI-txt {
         73                 position: relative;
         74                 width: 572px;
         75                 height: 200px;
         76                 text-indent: 2em;
         77                 line-height: 2;
         78                 background: #fff;
         79             }
         80             
         81             .ml1 {
         82                 margin-left: -100%;
         83             }
         84             
         85             .ml2 {
         86                 margin-left: -200%;
         87             }
         88             /*重点代码*/
         89             
         90             .navI-radio {
         91                 display: none;
         92             }
         93             
         94             .navI-radio:checked+ .navI-tit {
         95                 background: #fff;
         96                 border-bottom: none;
         97             }
         98             
         99             .navI-radio:checked~ .navI-txt {
        100                 z-index: 1;
        101             }
        102         </style>
        103 
        104         <div class="box">
        105             <ul class="nav">
        106                 <li class="navI">
        107                     <input class="navI-radio" name="nav" type="radio" id="kc" checked>
        108                     <label class="navI-tit" for="kc">课程</label>
        109                     <p class="navI-txt">课程内容</p>
        110                 </li>
        111                 <li class="navI">
        112                     <input class="navI-radio" name="nav" type="radio" id="xx">
        113                     <label class="navI-tit" for="xx">学习计划</label>
        114                     <p class="navI-txt ml1">学习计划内容</p>
        115                 </li>
        116                 <li class="navI">
        117                     <input class="navI-radio" name="nav" type="radio" id="jn">
        118                     <label class="navI-tit" for="jn">技能图谱</label>
        119                     <p class="navI-txt ml2">技能图谱内容</p>
        120                 </li>
        121             </ul>
        122         </div>
        123 
        124     </body>
        125 
        126 </html>
      2. 【使用视觉布局】上代码:
          1 <!doctype html>
          2 <html>
          3 
          4     <head>
          5         <meta charset="utf-8">
          6         <title>tab导航</title>
          7     </head>
          8 
          9     <style>
         10         .box {
         11             margin: 300px auto;
         12         }
         13     </style>
         14 
         15     <body>
         16 
         17         <style>
         18             body,
         19             p {
         20                 margin: 0;
         21             }
         22             
         23             ul {
         24                 margin: 0;
         25                 padding: 0;
         26                 list-style: none;
         27             }
         28             
         29             a {
         30                 text-decoration: none;
         31                 color: inherit;
         32             }
         33             
         34             input {
         35                 margin: 0;
         36                 padding: 0;
         37                 border: none;
         38             }
         39             
         40             .box {
         41                 width: 572px;
         42                 border: 1px solid #999;
         43                 font: 14px "微软雅黑";
         44                 overflow: hidden;
         45             }
         46             
         47             .nav-tit {
         48                 margin-left: -1px;
         49                 height: 40px;
         50                 line-height: 40px;
         51                 text-align: center;
         52                 background-color: #f1f1f1;
         53                 overflow: hidden;
         54             }
         55             
         56             .nav-titI {
         57                 box-sizing: border-box;
         58                 float: left;
         59                 width: 33.333%;
         60                 border-left: 1px solid #cecece;
         61                 border-bottom: 1px solid #cecece;
         62                 cursor: pointer;
         63             }
         64             
         65             .nav-txt {
         66                 height: 200px;
         67             }
         68             
         69             .nav-txtI {
         70                 height: 200px;
         71                 display: block;
         72                 width: 100%;
         73                 text-indent: 2em;
         74                 line-height: 2;
         75             }
         76             /*重点内容*/
         77             
         78             .nav-txt {
         79                 overflow: hidden;
         80             }
         81             
         82             .nav-titI:hover {
         83                 background-color: #fff;
         84                 border-bottom: none;
         85             }
         86         </style>
         87 
         88         <div class="box">
         89             <nav class="nav-tit">
         90                 <label class="nav-titI" for="kc">课程</label>
         91                 <label class="nav-titI" for="xx">学习计划</label>
         92                 <label class="nav-titI" for="jn">技能图谱</label>
         93             </nav>
         94             <nav class="nav-txt">
         95                 <input class="nav-txtI nav-txtI_active" id="kc" value="课程内容" readonly>
         96                 <input class="nav-txtI" id="xx" value="学习计划内容" readonly>
         97                 <input class="nav-txtI" id="jn" value="技能图谱内容" readonly>
         98             </nav>
         99         </div>
        100 
        101     </body>
        102 
        103 </html>
  • 相关阅读:
    简单读取网上的文本文件
    学习官方示例 System.RunError
    上周热点回顾(9.209.26)
    上周热点回顾(9.69.12)
    中国程序员节,10月24日,你同意吗?
    上周热点回顾(9.139.19)
    博客园电子期刊2010年8月刊发布啦
    [每周特惠]敏捷软件开发(原书第2版) +敏捷开发的艺术
    Meego专题上线了
    【投票】中国程序员节选在哪天
  • 原文地址:https://www.cnblogs.com/panda-ling/p/6285646.html
Copyright © 2011-2022 走看看