【问题标题】:Can I make the Bootstrap 4 navbar switch to a column instead of collapsing?我可以让 Bootstrap 4 导航栏切换到一列而不是折叠吗?
【发布时间】:2017-11-01 16:34:36
【问题描述】:

我希望我的所有菜单项始终可见,并且当屏幕尺寸太小时,只需从居中的行形式切换到居中的列。

 <div style="position: sticky; top: 0px;"> 

    <!--<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar9">
        <span class="navbar-toggler-icon"></span>           
    </button>     this is the fricking collapse button -->

    <div class="navbar-collapse collapse" id="navbar10">
        <ul class="navbar-nav nav-fill w-100">
            <li class="nav-item">
                <a class="nav-link" href="#">aaa</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">bbb</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">ccc</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">ddd</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">eee</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">ffff</a>
            </li>
        </ul>
    </div>
</div>

【问题讨论】:

  • 请显示任何相关代码,以便我们帮助您修改它,所以这里不是为您从头开始制作项目。
  • 我刚做了,谢谢。或者,您能否指出一个列出和解释引导属性的站点的方向?他们自己的网站没有我能找到的足够信息,而且我是网页设计的初学者,阅读 CSS 对我来说非常慢。
  • 我建议您使用 vanilla CSS,直到您能熟练使用它为止。仅仅因为你不知道如何创建某些东西而使用框架只会让你依赖它。
  • bootstrap 从类中工作,您可以开始删除折叠类并查看其行为方式。从那里开始,深入研究 boostrap 必须根据需要构建布局的类。在这里,您需要一个内容居中并从 flex-row 切换到 flex-column 的列。

标签: html css web frontend


【解决方案1】:

您可以使用用于构建布局的常规引导类并删除折叠的导航栏类:请参阅https://getbootstrap.com/docs/4.0/utilities/flex/

弹性

使用一整套响应式 flexbox 实用程序快速管理网格列、导航、组件等的布局、对齐和大小。对于更复杂的实现,可能需要自定义 CSS。

带有 :flex-md-row 类的示例(在整页中播放 sn-p 并调整窗口大小以查看它切换行/列。如果您认为它变成列太晚了,也可以尝试 flex-lg-row

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet"/>
    <div class="navbar " id="navbar10">
        <ul class="navbar-nav nav-fill w-100 flex-md-row">
            <li class="nav-item">
                <a class="nav-link" href="#">aaa</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">bbb</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">ccc</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">ddd</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">eee</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">ffff</a>
            </li>
        </ul>
    </div>
</div>

【讨论】:

  • 谢谢!有没有一种优雅的方式来设置菜单项之间的最大距离?这样它们在宽屏显示器上就不会散布在整个屏幕上?
  • 我想通了。只需将整个东西包裹在一个 div class="container"
【解决方案2】:

使用 CSS 媒体查询,您可以设置特定的断点来更改您的元素。在本例中,如果窗口小于 480px,那么我们可以将宽度调整为 100%。

(要查看它的实际效果,请单击运行 > 整页 > 然后调整窗口大小)

.navTitle {
  width: 20%;
  float: left;
  background-color: lightGrey;
  outline: 1px solid black;
}

@media screen and (max-width: 480px) {
    .navTitle {
       width: 100%;
    }
}
<div class="navTitle">
 <p>Section 1</p>
</div>

<div class="navTitle">
 <p>Section 2</p>
</div>

<div class="navTitle">
 <p>Section 3</p>
</div>

<div class="navTitle">
 <p>Section 4</p>
</div>

<div class="navTitle">
 <p>Section 5</p>
</div>

【讨论】:

  • 这正是我想要的。我可能实际上不需要引导程序。我会尝试一个人做,但有了 Skeleton 可以帮助我在小屏幕上让它变得漂亮。
  • 是的,我建议您使用 vanilla CSS,直到您熟悉它为止。
猜你喜欢
  • 2016-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-24
相关资源
最近更新 更多