当前位置:首页 > CSS

css制作tab菜单

2026-02-26 23:28:22CSS

使用纯CSS制作Tab菜单

通过CSS的:target伪类或:checked伪类结合相邻兄弟选择器,可以实现无JavaScript的Tab切换效果。以下是两种常见实现方式:

方法一:基于:target伪类

HTML结构:

<div class="tab-container">
  <nav class="tab-nav">
    <a href="#tab1">Tab 1</a>
    <a href="#tab2">Tab 2</a>
  </nav>
  <div class="tab-content">
    <div id="tab1">Content 1</div>
    <div id="tab2">Content 2</div>
  </div>
</div>

CSS样式:

css制作tab菜单

.tab-content > div {
  display: none;
  padding: 20px;
  border: 1px solid #ddd;
}

.tab-content > div:target {
  display: block;
}

.tab-nav a {
  padding: 10px 15px;
  background: #f0f0f0;
  text-decoration: none;
  color: #333;
}

.tab-nav a:hover {
  background: #e0e0e0;
}

方法二:基于radio input

HTML结构:

<div class="tab-container">
  <input type="radio" name="tabs" id="tab1" checked>
  <label for="tab1">Tab 1</label>

  <input type="radio" name="tabs" id="tab2">
  <label for="tab2">Tab 2</label>

  <div class="tab-content">
    <div>Content 1</div>
    <div>Content 2</div>
  </div>
</div>

CSS样式:

css制作tab菜单

input[type="radio"] {
  display: none;
}

label {
  display: inline-block;
  padding: 10px 15px;
  background: #f0f0f0;
  cursor: pointer;
}

.tab-content > div {
  display: none;
  padding: 20px;
  border: 1px solid #ddd;
}

#tab1:checked ~ .tab-content > div:nth-child(1),
#tab2:checked ~ .tab-content > div:nth-child(2) {
  display: block;
}

添加动画效果

可以为Tab切换添加过渡动画:

.tab-content > div {
  opacity: 0;
  height: 0;
  overflow: hidden;
  transition: opacity 0.3s ease;
}

.tab-content > div:target {
  opacity: 1;
  height: auto;
}

响应式设计建议

针对移动设备可以调整布局:

@media (max-width: 600px) {
  .tab-nav {
    display: flex;
    flex-direction: column;
  }

  label {
    width: 100%;
    text-align: center;
  }
}

样式增强技巧

添加选中状态指示器:

.tab-nav a.active,
input[type="radio"]:checked + label {
  background: #4CAF50;
  color: white;
  position: relative;
}

input[type="radio"]:checked + label::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-bottom: 5px solid #4CAF50;
}

这些方法均无需JavaScript即可实现完整功能,适合需要轻量级解决方案的场景。根据项目需求选择合适的方法,:target方案更简洁但会修改URL哈希,radio方案更灵活但需要更多HTML结构。

标签: 菜单css
分享给朋友:

相关文章

css制作图片

css制作图片

CSS 制作图片的方法 使用 background-image 属性 通过 background-image 属性可以为元素设置背景图片。这种方法适用于将图片作为背景而非内容的一部分。 .eleme…

css网页制作教程下载

css网页制作教程下载

CSS网页制作教程下载资源推荐 免费在线教程平台 W3Schools(www.w3schools.com/css/)提供交互式CSS教程,涵盖基础到高级内容,支持在线练习。 MDN Web Docs(…

css与html制作

css与html制作

CSS与HTML制作基础 CSS与HTML是构建网页的核心技术,HTML负责结构,CSS负责样式。以下是关键要点: HTML基础结构 <!DOCTYPE html> <html&…

css制作搜索框

css制作搜索框

制作搜索框的基本结构 使用HTML创建一个简单的搜索框结构,包含输入框和搜索按钮: <div class="search-box"> <input type="text" p…

css继承制作教程

css继承制作教程

CSS继承的基本概念 CSS继承是指某些CSS属性可以从父元素传递到子元素的特性。并非所有属性都支持继承,但常见的文本相关属性(如font-family、color)默认具有继承性。通过合理利用继承,…

制作 .css

制作 .css

创建 CSS 文件的基本步骤 新建一个文本文件,将其保存为 .css 扩展名(例如 style.css)。使用纯文本编辑器(如 Notepad++、VS Code 或 Sublime Text)编写…