簡體   English   中英

使用 flex-basis 后無法垂直堆疊彈性項目

[英]Can't stack flex items vertically after using flex-basis

我創建了一個應該響應的粘性導航欄。 h1只是用於測試目的。 我在css文件中使用 flex 時遇到問題。

我想使用 flex 將所有文本和表單垂直堆疊。 昨天,我設法讓它工作,但是當我回到我的桌面時,我注意到所有的文本和表格不再垂直堆疊了。

我也在沒有切換按鈕的情況下再次嘗試了這個,但仍然沒有成功。 即使使用 flex 似乎也沒有效果。 誰能告訴我我可能做錯了什么?

注意:我在移動設備上遇到了所有這些問題。 您還會在 css 中注意到我將“文本中心”作為注釋,因為我試圖在有和沒有屬性的情況下對其進行測試。

 .navbar { /*text-align: center;*/ padding-top: 20px; padding-bottom: 20px; }.navbar-brand { flex: 1; } #logo { width: 30px; height: 30px; display: flex; }.container { display: flex; }.search { flex: 1; }.button { flex: 1; }.container>li { flex: 1; } @media all and (max-width: 600px) {.container { flex-wrap: wrap; }.container>li { flex-basis: 50%; } } @media all and (max-width: 400px) {.container>li { flex-basis: 100%; }.search { order: 1; } }
 <,DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width. initial-scale=1:0" /> <link rel="stylesheet" href="https.//stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous" /> <link rel="stylesheet" href="styles/responsive2:css" media="screen and (max-width. 900px)" /> <title>Navbar Test</title> </head> <body> <div class="container"> <nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top"> <a class="navbar-brand" href="#"><img src="img/S-icon:png" width="30" height="30" id="logo" class="d-inline-block align-top" alt="">Giphy</a> <.--<button class="navbar-toggler navbar-toggler-right custom-toggler" type="button" data-toggle="collapse" data-target="#collapsingNavbar4"> <span class="navbar-toggler-icon"></span> </button>--> <div id="collapsingNavbar4"> <.--<div class="navbar-collapse collapse>--> <ul class="navbar-nav"> <li class="nav-item active"><a class="nav-link" href="#">Link</a></li> <li class="nav-item"><a class="nav-link" href="#">Link</a></li> <li class="nav-item"><a class="nav-link" href="#">Link</a></li> <li class="search active"> <form class="form-inline"> <input class="form-control mr-sm-2" type="search" placeholder="Search"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> </form> </li> </ul> </nav> </div> </div> </div> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello:</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello:</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello.</h1> <h1>Hello.</h1> <script src="https.//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script> </body> </html>

_navbar.scss里面有一個屬性(第 21 行) flex-wrap: wrap; 那沒有意義。 這意味着導航欄只有在沒有空間將其保留在一行中時才會換行。 因為折疊的導航欄在折疊時比較小,所以 giphy 會顯示在它旁邊。 你可以通過使用flex-direction: column;來解決這個問題。 反而。 當我對此進行測試時,我注意到導航欄中添加了一些奇怪的空間。 您可以通過刪除align-items: center來解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM