You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS固定定位按钮无法右移问题求助(附代码)

解决方案

问题核心:你的CSS样式是给.controls容器设置的,但HTML里.controls是个空div,所有按钮(.control元素)都在它外面,样式根本没作用到按钮上;另外top:50%仅会让容器顶部对齐视口中间,需要额外偏移才能实现垂直居中。

1. 修正HTML结构

把所有.control按钮嵌套进.controls容器里:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css" integrity="sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A==" crossorigin="anonymous" referrerpolicy="no-referrer"
/>

<div class="controls">
  <div class="control control-1 active-btn">
    <i class="fas fa-home"></i>
  </div>
  <div class="control control-2" data-id="about">
    <i class="fas fa-user"></i>
  </div>
  <div class="control control-3" data-id="portfolio">
    <i class="fas fa-briefcase"></i>
  </div>
  <div class="control control-4" data-id="blogs">
    <i class="fas fa-newspaper"></i>
  </div>
  <div class="control control-5" data-id="contact">
    <i class="fas fa-envelope"></i>
  </div>
</div>

2. 完善CSS样式

添加垂直居中偏移,同时给按钮加基础显示样式:

.controls {
  position: fixed;
  z-index: 10;
  top: 50%;
  right: 150px;
  /* 让容器自身垂直居中 */
  transform: translateY(-50%);
  /* 按钮垂直排列并设置间距 */
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.control {
  /* 基础按钮样式,确保可见 */
  width: 40px;
  height: 40px;
  background: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.control.active-btn {
  /* 高亮激活状态 */
  background: #2c3e50;
  color: #fff;
}

修改后按钮容器会固定在右侧150px位置并垂直居中,按钮也能正常显示对齐。

内容的提问来源于stack exchange,提问作者shoaib khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:15:38