纯CSStabs导航切换

看了一篇技术文章,使用纯CSS导航切换(label 绑定 input:radio && ~),其使用了  CSS3 兄弟选择符(E~F) ,即 选择选择E元素后面的所有兄弟元素F。 

利用input的 label for属性+csss 伪类:checked ,进行点击判断。其demo如下

复制代码
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<title>纯CSStabs导航切换 </title>
<style type="text/css">
  *{
    box-sizing:border-box;
  }
  .container{
    max-width: 600px;
    margin: 50px auto;
  }
  .container input{
    display: none;
  } 
  .nav {
    position: relative;
    overflow: hidden;
    display: block;
    margin: 0;
    padding: 0;
    width: 100%;
  } 
  .nav li {
    width: 50%;
    display: inline-block;
    text-align: center;
    background: #ddd;  
  }
  .nav li label{
    width: 100%;
    padding: 20px 0;
    display: block;
    cursor: pointer;
  }
  .content {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100px;
    border: 1px solid #999;
    box-sizing: border-box;
    padding: 10px;
  }
  .content1, .content2 {
    display: none;
    width: 100%;
    height: 100%;
  }

  .nav1:checked ~ .nav li ,.nav2:checked ~ .nav li{
    background: #ddd;
    color: #000;
  }
  .nav1:checked ~ .nav li:first-child {
    background: #ff7300;
    color: #fff;
  } 
  .nav2:checked ~ .nav li:last-child {
    background: #ff7300;
    color: #fff;
  }
  .nav1:checked ~ .content > div ,.nav2:checked ~ .content>div {
    display: none;
  }
  .nav1:checked ~ .content > div:first-child {
    display: block;
  }
 
  .nav2:checked ~ .content > div:last-child {
    display: block;
  }

  .active {
    background: #ff7300;
    color: #fff;
  }

  .default {
    display: block;
  }
</style>   
</head>

<body>
<div class="container">
  <input class="nav1" id="li1" type="radio" checked  name="nav">
  <input class="nav2" id="li2" type="radio" name="nav">
  <ul class='nav'>
    <li class='active'><label for="li1">列表1</label> 
    <li><label for="li2">列表2</label> 
  </ul>
  <div class="content">
    <div class="content1 default">列表1内容:123456</div>
    <div class="content2">列表2内容:abcdefgkijkl</div>
  </div>
</div> 
</body>
</html>
复制代码

 

 

posted @   Gaochunling  阅读(216)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示