html - 带有固定顶部 : text overflows 的 Bootstrap 4 导航栏

标签 html css bootstrap-4

抱歉,可能是菜鸟问题。 我正在尝试使用 bootstrap 4 有一个侧边导航栏,这将是固定的(即当我滚动页面时它保持在相同的位置)。添加“固定顶部”类确实可以,但是我的导航栏中的文本溢出并超出了导航栏,看起来非常难看:

With fixed-top

没有'fixed-top',它看起来不错(当然不符合我的要求):

Without fixed-top

我做错了什么?

请参阅 jsfiddle 上的最小示例,或在此处编码:

  <div class="container-fluid">
    <div class="row">

        <div class="col-sm-2 p-0 bg-dark">
            <nav class="navbar navbar-dark px-0 fixed-top"> <!--remove fixed-top and it's fine-->
                    <ul class="nav flex-column navbar-nav">
<li class="nav-item"><a href="index.html" class="nav-link">Home</a></li>
<li class="nav-item"><a href="hello.html" class="nav-link">Hello</a></li>
<li class="nav-item"><a href="howdy.html" class="nav-link">Longword and longword</a></li>
                    </ul>
            </nav>
        </div>


        <div class="col-10 bg-primary">

            blalbllala
            blalbllala
            blalbllala
            blalbllala
            <br><br><br><br><br><br><br><br><br><br><br>
            <br><br><br><br><br><br><br><br><br><br><br>
            <br><br><br><br><br><br><br><br><br><br><br>
            <br><br><br><br><br><br><br><br><br><br><br>
            <br><br><br><br><br><br><br><br><br><br><br>
            blalbllala
            blalbllala
            blalbllala
            blalbllala
            blalbllala <br>
        </div>
    </div>
</div>

谢谢!

最佳答案

fixed-top,顾名思义,不是用于“左” 导航栏,而是用于“顶部” 导航栏。

通过向导航栏添加类无法实现您想要实现的目标。您需要申请:

position: fixed;
top: 0;
min-height: 100vh;

到列并且还可以将内容列偏移侧边栏的宽度,因为 position:fixed 元素已从文档流中取出,因此如果您不偏移其余部分,它们会重叠。

这里是:

.row {
  background: #f8f9fa;
}

@media (min-width: 575px) {
  #sidebar {
  position: fixed;
  min-height: 100vh;
  top: 0;
  }
}
<script src="http://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link href="http://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="http://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="http://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>

  <div class="container-fluid">
    <div class="row">
    
        <div class="col-sm-2 bg-dark" id="sidebar">
            <nav class="navbar navbar-dark px-0"> <!--remove fixed-top and it's fine-->
                    <ul class="nav flex-column navbar-nav">
<li class="nav-item"><a href="index.html" class="nav-link">Home</a></li>
<li class="nav-item"><a href="hello.html" class="nav-link">Hello</a></li>
<li class="nav-item"><a href="howdy.html" class="nav-link">Longword and longword</a></li>
                    </ul>
            </nav>
        </div>


        <div class="col-12 col-sm-10 bg-primary offset-0 offset-sm-2">

            blalbllala
            blalbllala
            blalbllala
            blalbllala
            <br><br><br><br><br><br><br><br><br><br><br>
            <br><br><br><br><br><br><br><br><br><br><br>
            <br><br><br><br><br><br><br><br><br><br><br>
            <br><br><br><br><br><br><br><br><br><br><br>
            <br><br><br><br><br><br><br><br><br><br><br>
            blalbllala
            blalbllala
            blalbllala
            blalbllala
            blalbllala <br>
        </div>
    </div>
</div>

注意内容列中的 offset-0 offset-sm-2 类。我还从边栏中删除了 p-0。这在当前上下文中没有任何意义。

另一个注意事项是,具有可变宽度的侧边栏通常被认为是糟糕的 UI。最流行的 UI 框架和主题具有固定宽度的侧边栏(在 210290px 之间用于普通侧边栏和 4595px 无文本侧边栏的宽度)。

一个不错的左侧边栏模板似乎是available here .请注意,我不以任何方式支持它,但就 UI 质量而言,它看起来优于 Bootstrap 示例页面上的“仪表板”示例。 (“仪表板”示例与您的 UI 问题相同:在 768px1050px 之间查看它)并查看它是如何包装的)

关于html - 带有固定顶部 : text overflows 的 Bootstrap 4 导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51804085/

相关文章:

jquery - Bootstrap CSS - 缩略图图像调整大小和响应式

html - 在多页上打印表格

javascript - 如何在特定页面加载时间后显示 Div?

html - 如何创建带有 alpha channel 的 h264 视频以用于 HTML5 Canvas?

javascript - 您如何检测移动网络浏览器上由滑动手势引起的滚动已经结束?

javascript - Chartist.js 在 vue.js 中显示工具提示

jquery - 数据绑定(bind)单选按钮没有样式

css - CSS 选择器可以搜索单词的一部分吗?

html - 如何在 Angular4 中的两行产品之间留出空间

html - 需要帮助修复引导行中两个 div 之间的间隙