現在ブラウザの幅が768pxを下回ると、ナビゲーションバーは折りたたみモードに変わります。この幅を1000pxに変更したいので、ブラウザが1000pxを下回ると、ナビゲーションバーは折りたたみモードに変わります。私はLESSを使わずにこれをやりたいのですが、LESSではなくスタイラスを使っています。
私の問題はこの質問と同じです: Bootstrap 3 Navbar折りたたみ
しかし、その質問のすべての答えはLESS変数を変えることによってそれをする方法を説明します。私はLESSを扱っていません、私はスタイラスを使っているので、これがスタイラスか他の方法を使ってどうやってされることができるか知りたいです。
ありがとうございます。
あなたは特定の メディアクエリを書く必要があります これのために、あなたの質問から、768px以下でナビゲーションバーは崩壊するでしょう、それでちょうどそのように、それを768px以上そして1000px以下でそれを適用してください:
@media (min-width: 768px) and (max-width: 1000px) {
.collapse {
display: none !important;
}
}
これにより、ブートストラップユニットがデフォルトで出現するまでナビゲーションバーの折りたたみが非表示になります。折りたたみクラスが反転すると、ナビゲーションバーの内側のアセットが自動的に非表示になります。賢明な方法では、CSSをデザインに合わせて設定する必要があります。
bootstrap3 で、この変数 @ grid-float-breakpoint を必要な変数に変更します。デフォルト値は768pxです
最後に http://getbootstrap.com/customize/ で '@ grid-float-breakpoint'をいじることによって折りたたみ幅を変更する方法を解決しました。
Bootstrap.cssの2923行目(最小バージョンも)に移動し、@media screen and (min-width: 768px) {
を@media screen and (min-width: 1000px) {
に変更します。
そのため、コードは次のようになります。
@media screen and (min-width: 1000px) {
.navbar-brand {
float: left;
margin-right: 5px;
margin-left: -15px;
}
.navbar-nav {
float: left;
margin-top: 0;
margin-bottom: 0;
}
.navbar-nav > li {
float: left;
}
.navbar-nav > li > a {
border-radius: 0;
}
.navbar-nav.pull-right {
float: right;
width: auto;
}
.navbar-toggle {
position: relative;
top: auto;
left: auto;
display: none;
}
.nav-collapse.collapse {
display: block !important;
height: auto !important;
overflow: visible !important;
}
}
Bootstrap 3の.LESS ソースコード には、variables.less
という変数に@grid-float-breakpoint
という名前で定義されているものがあります。
//**Point at which the navbar becomes uncollapsed
@grid-float-breakpoint: @screen-sm-min;
一致する@grid-float-breakpoint-max
値は、そのマイナス1pxに設定されます。
//**Point at which the navbar begins collapsing
@grid-float-breakpoint-max: (@grid-float-breakpoint-max - 1);
そのため、代わりに@grid-float-breakpoint
値を1000pxに設定し、bootstrap.less
をbootstrap.css
に再構築するだけです。
例えば.
@grid-float-breakpoint: 1000px;
次のCSSコードを使用してこれを成功させました。
@media(max-width:1000px) {
.navbar-collapse.collapse {
display: none !important;
}
.navbar-collapse {
overflow-x: visible !important;
}
.navbar-collapse.in {
overflow-y: auto !important;
}
.collapse.in {
display: block !important;
}
}
ブートストラップ変数を変更するためのSassによる方法は、実際には bootstrap-sass githubページに記載されています。
ブートストラップを@importする前に、単に変数を再定義してください。
$grid-float-breakpoint: 1000px;
@import 'bootstrap';
@Skely answerに加えて、ナビゲーションバー内の ドロップダウンメニュー を機能させるために、オーバーライドするクラスも追加します。以下の最終コードは以下のとおりです。
@media (min-width: 768px) and (max-width: 991px) {
.navbar-nav .open .dropdown-menu {
position: static;
float: none;
width: auto;
margin-top: 0;
background-color: transparent;
border: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
.navbar-nav .open .dropdown-menu > li > a {
line-height: 20px;
}
.navbar-nav .open .dropdown-menu > li > a,
.navbar-nav .open .dropdown-menu .dropdown-header {
padding: 5px 15px 5px 25px;
}
.dropdown-menu > li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 1.42857143;
color: #333;
white-space: nowrap;
}
.navbar-header {
float: none;
}
.navbar-toggle {
display: block;
}
.navbar-collapse {
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}
.navbar-collapse.collapse {
display: none!important;
}
.navbar-nav {
float: none!important;
/*margin: 7.5px -15px;*/
margin: 7.5px 50px 7.5px -15px
}
.navbar-nav>li {
float: none;
}
.navbar-nav>li>a {
padding-top: 10px;
padding-bottom: 10px;
}
.navbar-text {
float: none;
margin: 15px 0;
}
/* since 3.1.0 */
.navbar-collapse.collapse.in {
display: block!important;
}
.collapsing {
overflow: hidden!important;
}
}
ブートストラップv4では、ナビゲーションは遅かれ早かれ異なるCSSクラスを使って折りたたむことができます
例えば:
ナビゲーションボタン付き:
Bootstrap 3.3では、これが必要な唯一のコードです。
@media (min-width: 768px) and (max-width: 1000px) {
.navbar-collapse.collapse {
display: none !important;
}
.navbar-toggle{
display: block !important;
}
.navbar-header{
float: none;
}
}
これは私のために働いたBootstrap3
@media (min-width: 768px) {
.navbar-header {
float: none;
}
.navbar-toggle {
display: block;
}
.navbar-collapse {
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.navbar-collapse.collapse {
display: none!important;
}
.navbar-collapse.collapse.in {
display: block!important;
}
.navbar-nav {
float: none!important;
margin: 7.5px -15px;
}
.navbar-nav>li {
float: none;
}
.navbar-nav>li>a {
padding-top: 10px;
padding-bottom: 10px;
}
}
これら2つを理解するためにしばらく時間がかかりました:
.navbar-collapse.collapse {
display: none!important;
}
.navbar-collapse.collapse.in {
display: block!important;
}
あなたの最善の策はあなたが使うCSSプロセッサのポートを使うことでしょう。
私はSASSの大ファンなので、現在は https://github.com/thomas-mcdonald/bootstrap-sass を使用しています。
ここにStylus用のフォークがあるようです: https://github.com/Acquisio/bootstrap-stylus
そうでなければ、検索&置換は、CSSバージョンであなたの親友です...
こんにちは私はあなたがブレークポイントブートストラップメニューを変更することができますこのようにCSSを使用してそれを行うことができると思います
@media (max-width: 1200px) {
.navbar-header {
float: none;
}
.navbar-left,.navbar-right {
float: none !important;
}
.navbar-toggle {
display: block;
}
.navbar-collapse.collapse {
display: none!important;
}
.navbar-nav {
float: none!important;
}
.navbar-nav>li {
float: none;
}
.collapse.in{
display:block !important;
}
.navbar-nav .open .dropdown-menu {
position: static;
float: none;
width: auto;
margin-top: 0;
background-color: transparent;
border: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
}
ブートストラップ4で、navbar-expand- *がハンバーガー(navbar-toggler)を展開したり折りたたんだり隠したりするときに上書きしたい場合は、bootstrap.cssでそのスタイル/定義を見つけて、それを再定義する必要がありますcustomstyle.cssを所有します(そうでない場合は直接bootstrap.cssに格納します)。
例えば。私はnavbar-expand-lgを崩壊させて、950pxでnavbar-togglerを見せたかった。 bootstrap.cssで私は見つけます:
@media (max-width: 991.98px) {
.navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
padding-right: 0;
padding-left: 0;
}
}
そしてその下に...
@media (min-width:992px) {
... lots of styling ...
}
両方の@mediaクエリーをコピーしてそれらを私のstyle.cssに貼り付け、それから私のニーズに合うようにサイズを修正しました。私の場合は950pxで崩壊させたかったのです。 @mediaクエリは異なるサイズにする必要があります(私は推測しています)ので、コンテナのmax-widthを949.98pxに設定し、他の@mediaクエリに950pxを使用したので、次のコードがstyle.cssに追加されました。これは私がStackoverflowや他の場所で見つけたねじれた解決策から解くのは容易ではありませんでした。お役に立てれば。
@media (max-width: 949.98px) {
.navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
padding-right: 0;
padding-left: 0;
}
}
@media (min-width: 950px) {
.navbar-expand-lg {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.navbar-expand-lg .navbar-nav {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
.navbar-expand-lg .navbar-nav .dropdown-menu {
position: absolute;
}
.navbar-expand-lg .navbar-nav .dropdown-menu-right {
right: 0;
left: auto;
}
.navbar-expand-lg .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem;
}
.navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
}
.navbar-expand-lg .navbar-collapse {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
flex-basis: auto;
}
.navbar-expand-lg .navbar-toggler {
display: none;
}
.navbar-expand-lg .dropup .dropdown-menu {
top: auto;
bottom: 100%;
}
}
これが私にとってのトリックでした。
@media only screen and (min-width:769px) and (max-width:1000px){
.navbar-collapse.collapse {
display: none !important;
}
.navbar-collapse.collapse.in {
display: block !important;
}
.navbar-header .collapse, .navbar-toggle {
display:block !important;
}
ここで私の作業コードはReact with Bootstrapで使っています
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
<style>
@media (min-width: 768px) and (max-width: 1000px) {
.navbar-collapse.collapse {
display: none !important;
}
.navbar-toggle{
display: block !important;
}
.navbar-header{
float: none;
}
}
</style>