我有一个带有side sideNav的左div和一个像这样的右主div
background-color:#012d20; 位置:固定; z-index:1; 顶部:0; 左:0; 溢出:隐藏; 边界-…
这不适合你的原因是因为row的显示类型为flex,所以下面的所有col都适合该行。
然后你的cols是通过给定值间隔的块,例如col-3 col-4等
通过更改列显示类型(在示例中为固定)将其从弹性间距中移除,因此主导航将向左移动,因为您没有偏移它。
要解决此问题,请不要像其他人建议的那样添加填充,BootStrap具有处理此问题的类。相反,将offset-2添加到主导航,并保留其他所有内容。
的 示例代码段 强>
#sideNav { background-color: #012d20; position: fixed; z-index: 1; top: 0; left: 0; overflow: hidden; border-right-style: groove; height: 100vh; }
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <div class="row"> <!-- navigation sidebar --> <div class="col-2 pt-5" id="sideNav"> ... </div> <!-- main content area --> <main class="col-10 offset-2"> ... </main> </div>
让我们尝试一下,
我为sideNav增加了大约40px的宽度;同样的padding-left iam放了#main-content。
HTML
<div class="row"> <!-- navigation sidebar --> <div class="col-2 pt-5" id="sideNav"> <p>paragraph...</p> </div> <!-- main content area --> <main class="col-10" id="main-content"> <p>paragraph...</p> <p>paragraph...</p> </main> </div>
CSS
#sideNav { background-color: #012d20; position: fixed; z-index: 1; top: 0; left: 0; overflow: hidden; border-right-style: groove; height: 100%; width:40px; } #main-content{ width:100%; float:left; padding:0 0 0 40px; background:yellow; }
我看到你正在使用自举网格,所以为了保持网格正常工作,我建议你将固定容器放入 .col-2 DIV
.col-2
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/> <div class="row"> <!-- navigation sidebar --> <div class="col-2 pt-5"> <div id="sideNav"> ... </div> </div> <!-- main content area --> <main class="col-10"> ... </main> </div>
那是因为fixed被其他容器“忽略”了。它是handelt,好像它是绝对的。你可以给你的侧边栏一个固定的宽度和你的主要填充。
#sideNav { background-color: #012d20; position: fixed; z-index: 1; top: 0; left: 0; overflow: hidden; border-right-style: groove; height: 100vh; width: 350px; } main { padding-left: 350px; }
Codepen