在 Bootstrap 上堆叠列并合并行 4
Stacking columns and merging rows on Bootstrap 4
我在 Bootstrap Studio 工作,想了解 Bootstrap (v4.x) 和 flexbox。 Flexbox 并没有让事情变得更简单。正如许多人已经尝试并在 Stack 上询问的那样,我也在尝试让列正常运行......到目前为止没有运气。
桌面视图
标志 |搜索栏 |图标
移动视图(sm 及以下)
标志 |图标
搜索 (100%)
除了正确的方法,我可能已经尝试了所有方法...我玩过 flexbox 'order'/ push/pull,等等...
也许我是从错误的方面来处理这个问题的……'They' 说 bootstrap 是 'mobile-first'。所以代码一定要写成“Logo | icons | Search”还是桌面方式?
<html><head><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
</head>
<body>
<div class="container" id="header">
<div class="row">
<div class="col-sm-3" id="logo">Logo</div>
<div class="col-sm-6" id="search">
<form>
<div class="form-group"><input type="search" class="form-control" name="search" placeholder="Zoeken..." /></div>
</form>
</div>
<div class="col-sm-3 justify-content-lg-end justify-content-xl-end">
<div class="btn-toolbar">
<div role="group" class="btn-group"><a class="btn btn-lg" role="button" href="#">Icon</a><a class="btn btn-lg" role="button" href="#"><i class="fas fa-chart-bar"></i></a>
<div class="dropdown btn-group" role="group"><a class="btn btn-lg" data-toggle="dropdown" aria-expanded="false" role="button">icon</i></a>
<div class="dropdown-menu dropdown-menu-right"><a class="dropdown-item" href="#">Account</a><a class="dropdown-item" href="#">test</a><a class="dropdown-item" href="#">Log uit...</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
每当您有问题时,请先查看 Bootstrap 文档。它包含丢失的信息,其中可能包含您正在寻找的修复程序:Order class
在开始修复之前,我想指出“移动优先”方法是在移动设备上关注和构建视图,然后重写这些样式以确保它可以在桌面或更大的屏幕上运行,因为出色地。这样您就可以确保您的应用即使在狭窄的屏幕上也看起来不错。
如果您优先使用移动设备,布局应如下所示:
<div class="container">
<div class="row">
<div class="col-sm-6">
Logo
</div>
<div class="col-sm-6">
<div role="group" class="btn-group">
<a class="btn btn-lg" role="button" href="#">Icon</a>
<a class="btn btn-lg" role="button" href="#">
<i class="fas fa-chart-bar"></i>
</a>
<div class="btn-group" role="group">
<button type="button" class="btn btn-lg dropdown-toggle"
data-toggle="dropdown">
Dropdown
</button>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#">Account</a>
<a class="dropdown-item" href="#">test</a>
<a class="dropdown-item" href="#">Log uit...</a>
</div>
</div>
</div>
</div>
<div class="col-sm-12">
<form>
<div class="form-group">
<input type="search" class="form-control" name="search"
placeholder="Zoeken..." />
</div>
</form>
</div>
</div>
</div>
完成移动视图后,您将专注于桌面视图。我唯一需要做的就是更改列宽并设置它们的顺序:
<div class="row">
<div class="col-sm-6 col-md-2">...</div>
<div class="col-sm-6 col-md-5 order-md-2">...</div>
<div class="col-sm-12 col-md-5 order-md-1">...</div>
</div>
这已经像你想要的那样工作了:https://jsfiddle.net/davidliang2008/ndsk4hL3/13/
但我的强迫症告诉我你可以做得更好。我不知道您是否阅读了 Bootstrap 文档并意识到有一个名为 Navbar 的组件可以使用?
我不想为你做所有事情所以我故意保留导航栏演示:
https://jsfiddle.net/davidliang2008/ndsk4hL3/25/
经过几个小时的摆弄:-)我开始工作了!这是对 David 回答的细微调整(这已经很棒了)
基本上首先要为移动设备构建块:
A座| B座 | C座
Block C 在 XS 和 SM 上始终展开 (12)
A/B 块在 XS/SM 上的大小始终为 6
在 MD 处,大小变为:3-6-3
最后但同样重要的是,在 MD 和更大的区域上,“命令”块 3 在块 2 之前显示!!
<div class="row">
<div class="col-6 col-md-3">.col-6 .col-md-3</div>
<div class="col-6 col-md-3 order-md-3">.col-6 .col-md-3</div>
<div class="col-12 col-md-6 order-md-2">.col-12 .col-md-6</div>
</div>
我使用了 David 对代码的轻微调整。他的解决方案将 'break' 在 SM(他使用 col-sm-6)而不是 col-6(适用于 XS)...
我在 Bootstrap Studio 工作,想了解 Bootstrap (v4.x) 和 flexbox。 Flexbox 并没有让事情变得更简单。正如许多人已经尝试并在 Stack 上询问的那样,我也在尝试让列正常运行......到目前为止没有运气。
桌面视图
标志 |搜索栏 |图标
移动视图(sm 及以下)
标志 |图标
搜索 (100%)
除了正确的方法,我可能已经尝试了所有方法...我玩过 flexbox 'order'/ push/pull,等等...
也许我是从错误的方面来处理这个问题的……'They' 说 bootstrap 是 'mobile-first'。所以代码一定要写成“Logo | icons | Search”还是桌面方式?
<html><head><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
</head>
<body>
<div class="container" id="header">
<div class="row">
<div class="col-sm-3" id="logo">Logo</div>
<div class="col-sm-6" id="search">
<form>
<div class="form-group"><input type="search" class="form-control" name="search" placeholder="Zoeken..." /></div>
</form>
</div>
<div class="col-sm-3 justify-content-lg-end justify-content-xl-end">
<div class="btn-toolbar">
<div role="group" class="btn-group"><a class="btn btn-lg" role="button" href="#">Icon</a><a class="btn btn-lg" role="button" href="#"><i class="fas fa-chart-bar"></i></a>
<div class="dropdown btn-group" role="group"><a class="btn btn-lg" data-toggle="dropdown" aria-expanded="false" role="button">icon</i></a>
<div class="dropdown-menu dropdown-menu-right"><a class="dropdown-item" href="#">Account</a><a class="dropdown-item" href="#">test</a><a class="dropdown-item" href="#">Log uit...</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
每当您有问题时,请先查看 Bootstrap 文档。它包含丢失的信息,其中可能包含您正在寻找的修复程序:Order class
在开始修复之前,我想指出“移动优先”方法是在移动设备上关注和构建视图,然后重写这些样式以确保它可以在桌面或更大的屏幕上运行,因为出色地。这样您就可以确保您的应用即使在狭窄的屏幕上也看起来不错。
如果您优先使用移动设备,布局应如下所示:
<div class="container">
<div class="row">
<div class="col-sm-6">
Logo
</div>
<div class="col-sm-6">
<div role="group" class="btn-group">
<a class="btn btn-lg" role="button" href="#">Icon</a>
<a class="btn btn-lg" role="button" href="#">
<i class="fas fa-chart-bar"></i>
</a>
<div class="btn-group" role="group">
<button type="button" class="btn btn-lg dropdown-toggle"
data-toggle="dropdown">
Dropdown
</button>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#">Account</a>
<a class="dropdown-item" href="#">test</a>
<a class="dropdown-item" href="#">Log uit...</a>
</div>
</div>
</div>
</div>
<div class="col-sm-12">
<form>
<div class="form-group">
<input type="search" class="form-control" name="search"
placeholder="Zoeken..." />
</div>
</form>
</div>
</div>
</div>
完成移动视图后,您将专注于桌面视图。我唯一需要做的就是更改列宽并设置它们的顺序:
<div class="row">
<div class="col-sm-6 col-md-2">...</div>
<div class="col-sm-6 col-md-5 order-md-2">...</div>
<div class="col-sm-12 col-md-5 order-md-1">...</div>
</div>
这已经像你想要的那样工作了:https://jsfiddle.net/davidliang2008/ndsk4hL3/13/
但我的强迫症告诉我你可以做得更好。我不知道您是否阅读了 Bootstrap 文档并意识到有一个名为 Navbar 的组件可以使用?
我不想为你做所有事情所以我故意保留导航栏演示: https://jsfiddle.net/davidliang2008/ndsk4hL3/25/
经过几个小时的摆弄:-)我开始工作了!这是对 David 回答的细微调整(这已经很棒了)
基本上首先要为移动设备构建块: A座| B座 | C座
Block C 在 XS 和 SM 上始终展开 (12) A/B 块在 XS/SM 上的大小始终为 6 在 MD 处,大小变为:3-6-3
最后但同样重要的是,在 MD 和更大的区域上,“命令”块 3 在块 2 之前显示!!
<div class="row">
<div class="col-6 col-md-3">.col-6 .col-md-3</div>
<div class="col-6 col-md-3 order-md-3">.col-6 .col-md-3</div>
<div class="col-12 col-md-6 order-md-2">.col-12 .col-md-6</div>
</div>
我使用了 David 对代码的轻微调整。他的解决方案将 'break' 在 SM(他使用 col-sm-6)而不是 col-6(适用于 XS)...