【问题标题】:Bootstrap affixed sidebar being overlapped by main content in Angular appBootstrap 附加的侧边栏被 Angular 应用程序中的主要内容重叠
【发布时间】:2017-06-13 05:23:02
【问题描述】:

我有一个 Angular 应用程序,其中包含一些可能导致问题的嵌套视图,但我无法确定它。每当position: fixed 被添加到侧边栏时,主要内容就会移动并覆盖它。你可以在this page 看到发生了什么,这是我的一些代码,如果需要更多,请告诉我。

*更新 我尝试结合 app.products 和 app.products.juice 状态,但我仍然遇到问题,所以我认为这是我的 CSS 而不是嵌套状态

控制器

.controller('ProductsCtrl', function() {
    $('#affix').affix({
      offset: {
        top: function () {
              var $el = $('#productsBg');
              return (this.top = $el.position().top + $el.outerHeight(true));
            },
        bottom: 50
      }
    })
  })

SCSS

.ui-view-container {
  position: relative;
}
.panelNav {
  margin: 5% 0 0 5%;
  &.affix {
    top: 0;
  }
}

状态应用

<header>
...
</header>

<div class="ui-view-container">
  <main ui-view="mainContent"></main>
</div>

<footer id="footer">

</footer>

说明 app.products

<div class="container-fluid">
  <div id=affix class="col-md-2 panelNav">
    <div class="panel panel-primary">

      <div class="panel-heading">Products Menu</div>

      <div class="list-group">
        <a class="list-group-item" ui-sref="app.products.juice">Juice</a>
        <a class="list-group-item" ui-sref="app.products.mods">Mods</a>
        <a class="list-group-item" ui-sref="app.products.batteries">Batteries</a>
        <a class="list-group-item" ui-sref="app.products.tanks">Tanks</a>
      </div>

    </div>
  </div>

  <section class="col-md-9">
    <ui-view name="productsContent"></ui-view>
  </section>
</div>

声明 app.products.juice

<div>
  <p> 10 paragraphs of filler text</p>
</div>

【问题讨论】:

    标签: css angularjs twitter-bootstrap-3


    【解决方案1】:

    2017 年 6 月更新:正如 @AdamPlocher 所指出的,我在下面的原始建议并未明确回答问题,这里有一个更好的说明:

    https://codepen.io/panchroma/pen/ZyOOdM

    ====
    原答案

    看看这对你有没有帮助:http://codepen.io/panchroma/pen/EKGXGj

    当你将position: fixed; 应用到侧边栏时,它会使其失去流动性,主要内容向左移动,进入侧边栏所占据的空间。

    我认为应该为您工作的一个选项是保持侧边栏不变,而是创建一个新的子 div 并将 position:fixed; 应用于此子 div。 (见下文)

    执行此操作时,侧边栏保持流畅,不会折叠,主要内容也不会向左移动。

    希望这会有所帮助!

    === CSS ===

    .panelNav{
      position:absolute;
    }
    

    === 原始 HTML ===

    <div class="container-fluid original">
       <div class="col-md-2 sidebar panelNav">sidebar</div>
       <div class="col-md-9 main-content">main content</div>
    </div>
    

    === 更新的 HTML ===

    <div class="container-fluid">
       <div class="col-md-2 sidebar">
          <div class="panelNav">sidebar</div>
       </div>
      <div class="col-md-9 main-content">main content</div>
    </div>
    

    【讨论】:

    • 感谢您的帮助。这停止了​​与侧边栏重叠的内容。侧边栏虽然会缩小,但没有什么是额外的 CSS 解决不了的。再次感谢!
    • 您的示例中没有“固定”的东西? -1
    • 哈哈@AdamPlocher 你是对的,不知道那里发生了什么。我想重要的一点是我试图展示如何在不折叠侧边栏的情况下使 panelNav 脱离正常流程。也许这更接近您的预期:codepen.io/panchroma/pen/QgNqRK
    • @DavidTaiaroa 大声笑谢谢你,不赞成投票,给你+1 好先生。现在我觉得你的回答触及了(至少我从中得到了什么)被问到的问题:)。抱歉,线程千斤顶,但我对任何“固定”解决方案的问题是:stackoverflow.com/questions/44487529/… 也可以在您的示例中看到:codepen.io/aplocher/pen/QgENNR - 请注意文本在修复时如何溢出,无法找到方法准确地确定父级的宽度并使其包裹 - 我猜不是没有 JS。
    • 没问题@AdamPlocher,看看这是否有帮助:codepen.io/panchroma/pen/ZyOOdM
    猜你喜欢
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多