目录

…">
当前位置:首页 > CSS

css制作目录

2026-02-27 06:28:56CSS

使用CSS制作目录的方法

基础HTML结构

创建一个简单的HTML结构,包含标题和对应的锚点链接。

<div class="toc">
  <h3>目录</h3>
  <ul>
    <li><a href="#section1">第一部分</a></li>
    <li><a href="#section2">第二部分</a></li>
    <li><a href="#section3">第三部分</a></li>
  </ul>
</div>

<div id="section1">
  <h2>第一部分</h2>
  <p>内容...</p>
</div>

<div id="section2">
  <h2>第二部分</h2>
  <p>内容...</p>
</div>

<div id="section3">
  <h2>第三部分</h2>
  <p>内容...</p>
</div>

基本CSS样式

为目录添加基础样式,如字体、间距和颜色。

.toc {
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  padding: 15px;
  border-radius: 5px;
  margin-bottom: 20px;
}

.toc h3 {
  margin-top: 0;
  color: #333;
}

.toc ul {
  list-style-type: none;
  padding-left: 0;
}

.toc li {
  margin-bottom: 8px;
}

.toc a {
  text-decoration: none;
  color: #0066cc;
}

.toc a:hover {
  text-decoration: underline;
}

美化目录样式

添加更复杂的美化样式,如悬停效果和层级缩进。

css制作目录

.toc {
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.toc ul ul {
  padding-left: 20px;
}

.toc a {
  display: block;
  padding: 5px 10px;
  transition: background-color 0.3s;
}

.toc a:hover {
  background-color: #f0f0f0;
  color: #004499;
}

响应式目录设计

确保目录在不同屏幕尺寸下都能正常显示。

@media (max-width: 768px) {
  .toc {
    width: 100%;
    box-sizing: border-box;
  }

  .toc ul {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .toc li {
    margin-bottom: 0;
  }
}

固定定位目录

创建固定在页面一侧的目录,方便长文档导航。

css制作目录

.toc {
  position: fixed;
  top: 20px;
  right: 20px;
  width: 250px;
  max-height: 80vh;
  overflow-y: auto;
}

@media (max-width: 1024px) {
  .toc {
    position: static;
    width: auto;
    max-height: none;
  }
}

动态高亮当前章节

使用JavaScript和CSS结合,高亮显示当前浏览的章节。

.toc a.active {
  font-weight: bold;
  color: #003366;
  background-color: #e6f2ff;
  border-left: 3px solid #0066cc;
}
window.addEventListener('scroll', function() {
  const sections = document.querySelectorAll('div[id^="section"]');
  const links = document.querySelectorAll('.toc a');

  sections.forEach(section => {
    const rect = section.getBoundingClientRect();
    if (rect.top <= 100 && rect.bottom >= 100) {
      links.forEach(link => {
        link.classList.remove('active');
        if (link.getAttribute('href') === `#${section.id}`) {
          link.classList.add('active');
        }
      });
    }
  });
});

多级嵌套目录样式

为包含多级子目录的情况设计样式。

.toc ul ul {
  margin-top: 5px;
  border-left: 1px dashed #ccc;
}

.toc ul ul a {
  font-size: 0.9em;
  color: #666;
}

.toc ul ul a:hover {
  color: #004499;
}

打印优化样式

确保目录在打印时也能正常显示。

@media print {
  .toc {
    page-break-after: avoid;
    break-after: avoid;
  }

  .toc a::after {
    content: " (第" target-counter(attr(href), page) "页)";
  }
}

标签: 目录css
分享给朋友:

相关文章

vue制作css

vue制作css

在Vue中制作CSS的方法 Vue提供了多种灵活的方式来编写和管理CSS,可以根据项目需求选择适合的方法。 使用内联样式 内联样式可以直接在Vue组件的模板中编写,适用于简单的样式需求。 <…

css怎么制作时钟

css怎么制作时钟

使用CSS制作时钟 通过CSS和少量JavaScript可以创建一个动态时钟。以下是实现方法: HTML结构 <div class="clock"> <div cla…

css怎么制作段落

css怎么制作段落

段落样式基础设置 使用 p 标签定义段落,通过CSS控制字体、间距等属性: p { font-family: Arial, sans-serif; font-size: 16px;…

css 制作购物网站

css 制作购物网站

布局设计 使用CSS Grid或Flexbox创建响应式布局。Grid适合整体页面结构,Flexbox适合局部组件排列。定义网格模板区域,如头部、导航、商品展示区、侧边栏和页脚。 .containe…

css制作扑克牌

css制作扑克牌

使用CSS制作扑克牌 扑克牌的样式可以通过CSS的border-radius、box-shadow和transform等属性实现。以下是一个简单的扑克牌设计示例: <div class="po…

用css制作导航条

用css制作导航条

基础导航条结构 HTML结构使用无序列表<ul>和列表项<li>,这是语义化的标准做法: <nav> <ul class="navbar">…