当前位置:首页 > CSS

css右导航栏制作

2026-02-12 15:54:28CSS

固定定位实现右导航栏

使用position: fixed将导航栏固定在视窗右侧,不受页面滚动影响。设置right: 0定位到右侧边缘,通过toptransform调整垂直居中。

.right-navbar {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 200px;
  background: #f5f5f5;
  padding: 20px;
  box-shadow: -2px 0 5px rgba(0,0,0,0.1);
}

弹性布局控制内部元素

采用Flexbox布局管理导航项排列,flex-direction: column实现垂直堆叠。gap属性设置项目间距,align-items控制对齐方式。

.right-navbar {
  display: flex;
  flex-direction: column;
  gap: 15px;
  align-items: flex-end;
}

.nav-item {
  padding: 10px 15px;
  border-right: 3px solid transparent;
  transition: all 0.3s ease;
}

.nav-item:hover {
  border-right-color: #4CAF50;
}

响应式设计适配移动端

通过媒体查询在较小屏幕时调整导航栏样式。修改宽度、定位方式和显示形式以适应移动设备。

@media (max-width: 768px) {
  .right-navbar {
    width: 100%;
    position: static;
    flex-direction: row;
    justify-content: center;
    box-shadow: none;
    padding: 10px 0;
  }

  .nav-item {
    border-right: none;
    border-bottom: 3px solid transparent;
  }
}

滚动监听高亮当前章节

结合JavaScript实现滚动时自动高亮对应导航项。通过IntersectionObserverAPI检测元素可见性。

const observer = new IntersectionObserver((entries) => {
  entries.forEach(entry => {
    const id = entry.target.getAttribute('id');
    const navItem = document.querySelector(`.nav-item[href="#${id}"]`);
    if (entry.isIntersecting) {
      navItem.classList.add('active');
    } else {
      navItem.classList.remove('active');
    }
  });
}, { threshold: 0.5 });

document.querySelectorAll('section').forEach(section => {
  observer.observe(section);
});

对应CSS样式:

.nav-item.active {
  font-weight: bold;
  color: #4CAF50;
  border-right-color: #4CAF50;
}

css右导航栏制作

标签: css
分享给朋友:

相关文章

css制作标尺

css制作标尺

使用CSS制作标尺的方法 方法一:使用线性渐变和伪元素 通过CSS的线性渐变和伪元素可以创建水平或垂直标尺。以下是一个水平标尺的示例代码: .ruler { width: 100%;…

制作css外部

制作css外部

创建CSS外部文件的方法 新建一个纯文本文件,将文件扩展名改为.css,例如styles.css。确保文件内容只包含CSS代码,不包含HTML标签。 编写CSS内容 在CSS文件中直接编写样式规则…

css图标制作

css图标制作

CSS 图标制作方法 使用 Unicode 或图标字体 通过引入字体库(如 Font Awesome)或直接使用 Unicode 符号生成图标。例如,Font Awesome 的图标可通过类名调用:…

css制作彩虹

css制作彩虹

使用线性渐变创建彩虹效果 通过CSS的linear-gradient属性可以轻松实现彩虹效果。以下是一个基础的彩虹样式代码: .rainbow { width: 100%; height:…

css制作开关

css制作开关

使用纯CSS制作开关 通过CSS的伪元素和input[type="checkbox"]可以创建自定义开关样式。关键点在于隐藏原生复选框,用CSS重新设计外观。 <label class="s…

css怎么制作时钟

css怎么制作时钟

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