2017-01-15 14 views
0

ボタンをクリックすると水平方向に倒れるBootStrapを使用してカスタムナビバーを開発しました。それはうまく動作しますが、画面のサイズを縮小すると、BootStrapサイトで与えられた古典的な例のように、垂直方向に崩壊するはずです。私は何か解決策を見つけることができません、私はグーグルで私はすべての測定は、pxの代わりに%でなければならない点を介して、私は試してみましたが、私のnavbarは正しく動作しません。画面サイズが縮小された場合、navbarが反応しません

/* htmlの

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <!-- Required meta tags --> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=yes"> 
    <!-- Bootstrap CSS --> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous"> 
    <!-- jQuery first, then Tether, then Bootstrap JS. --> 
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script> 
    <link rel="stylesheet" href="style.css"> 
    <link rel="stylesheet" href="animate.css"> 
    <script src="homePage.js"></script> 
</head> 

<body> 
    <nav class="navbar navbar-light animated fadeInLeft" style="background-color: #C0C0C0 ;"> 
     <button class="navbar-toggler navbar-toggler-left" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="#navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> 
     <h1 class="navbar-brand mb-0 move-header ">NavBrand</h1> 
     <div class="collapse animated fadeInLeft" id="navbarNav"> 
      <ul class="navbar-nav"> 
       <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> 
       <li class="nav-item"> <a class="nav-link" href="#">Features</a> </li> 
       <li class="nav-item"> <a class="nav-link" href="#">Pricing</a> </li> 
       <li class="nav-item"> <a class="nav-link disabled" href="#">Disabled</a> </li> 
      </ul> 
     </div> 
    </nav> 
    <div class="container"></div> 
</body> 

</html> 

// CSS

/*changing the background color*/ 

body { 
    background-color: #F8F9F9; 
} 


/*moving the navBrand name to left after the toggle icon*/ 

.move-header { 
    padding-left: 60px; 
} 


/*making the border none for the toggle button*/ 

.navbar-toggler { 
    border: none; 
} 


/*making the blue border none,it comes when clicking the toggle*/ 

.navbar-toggler.active.focus, 
.navbar-toggler.active:focus, 
.navbar-toggler.focus, 
.navbar-toggler:active.focus, 
.navbar-toggler:active:focus, 
.navbar-toggler:focus { 
    outline: 0; 
} 

/*navbar settings*/ 

.navbar { 
    margin-top: 40px; 
    height: 54px; 
    border-bottom-right-radius: 200px; 
    border-top-right-radius: 200px; 
    flex-flow: row nowrap; 
    display: inline-flex; 
} 


/*navbar items settings*/ 

.navbar-nav { 
    flex-flow: row nowrap; 
    padding-top: -10px; 
} 


/*giving gaps between each nav items*/ 

.nav-item { 
    margin-right: 40px; 
} 


/*nullifying the default animation*/ 

.collapsing { 
    -webkit-transition: height 0.01s; 
    -moz-transition: height 0.01s; 
    -ms-transition: height 0.01s; 
    -o-transition: height 0.01s; 
    transition: height 0.01s; 
    margin-bottom: -15px; 
} 

答えて

0

nowrapの原因。 .navbar-navにあります。 .navbarの高さを削除してflex-flow:row wrapを設定することでこれを修正できます。 on .navbarクラス。 LiveFiddleLink フィドルを確認してください。

以下、私はどこに変更があるのか​​コメントしています。あなたはどんなquestuonを持っている場合はコメントに

/*navbar settings*/ 
    .navbar { 
    margin-top: 40px;/*Remove Height from here*/ 
    border-bottom-right-radius: 200px; 
    border-top-right-radius: 200px; 
    display: inline-flex; 
    flex-flow: row nowrap; 
    } 
    /*navbar items settings*/ 

    .navbar-nav { 
    flex-flow: row wrap;/*Change nowrap to wrap*/ 
    } 
    /*giving gaps between each nav items*/ 

    .navbar-nav .nav-link {/*change the class nav-item to nav-link*/ 
    padding: 0.5em .5em; 
    } 

アップデートを私に尋ねる:また、メディアクエリを使用することができます。 LiveFiddle Media Queryメディアクエリを使用すると、nowrapを変更する必要はありません。単に画面475pxで方向を変更する必要があります。

@media only screen and (max-width:475px){ 
.navbar{ 
    padding:0.5rem 2rem; 
} 
.navbar-nav{ 
    flex-flow:column nowrap; 
    } 

} 
+0

うれしいです。あなたが与えたアイデアを少し微調整して作業しました。ありがとうBud :) – Rehan

0

はPXでのナビゲーションバーの内容で、全体のナビゲーションバーの幅を100%作ってみましょう。これは画面解像度に応じてnavbarのサイズを変更する必要があります。また、navbar項目がバー全体のピクセル幅を超えると、それらは崩壊します。

0

ブラウザにNavbarをいつ行フレックスレイアウトから垂直/折りたたみレイアウトに変更するかを示すメディアクエリがないようです。このメディアクエリは、スクリーンサイズが指定した幅の範囲内にあるときに、navbarをスタイルするために、.collapsedクラスまたは同様のものとともにCSSファイルに配置する必要があります。この画面サイズはスマートフォンの場合は通常0〜500px、タブレットをキャプチャする場合は800pxの幅です。

https://css-tricks.com/css-media-queries/

あなたのHTMLは、クラス=「崩壊」のdiv要素を示すが、そのクラスは、あなたの付属のコードではありません。

関連する問題