LESS를 사용하지 않고 부트 스트랩 탐색 모음 축소 중단 점 변경


205

현재 브라우저 너비가 768px 아래로 떨어지면 탐색 표시 줄이 축소 모드로 변경됩니다. 이 너비를 1000px로 변경하여 브라우저가 1000px 미만이면 탐색 표시 줄이 축소 모드로 변경됩니다. LESS를 사용하지 않고이 작업을 수행하고 싶습니다 .LESS가 아닌 스타일러스를 사용하고 있습니다.

내 문제는이 질문과 동일합니다 : Bootstrap 3 Navbar Collapse

그러나 그 질문에 대한 모든 대답은 LESS 변수를 변경하여 수행하는 방법을 설명합니다. 나는 LESS를 다루지 않고 스타일러스를 사용하고 있으므로 스타일러스 또는 다른 방법을 사용 하여이 작업을 수행하는 방법을 알고 싶습니다.

감사!

답변:


50

질문에서 768px 미만 으로 특정 미디어 쿼리 를 작성해야 합니다. 탐색기가 축소되므로 768px 이상 1000px 미만으로 적용하십시오.

@media (min-width: 768px) and (max-width: 1000px) {
   .collapse {
       display: none !important;
   }
}

부트 스트랩 장치가 기본적으로 나타날 때까지 탐색 모음 축소가 숨겨집니다. 축소 클래스가 뒤집 히면 탐색 모음 내부의 내부 자산이 자동으로 숨겨집니다. 마치 원하는 디자인으로 CSS를 설정해야합니다.


너비가 768px 미만이면 현재 탐색 모음이 축소됩니다. 그러나 너비가 1000px 미만일 때 탐색 표시 줄이 무너지기를 원합니다. 이를 위해 768과 1000 사이에 .collapse를 표시하지 않아도됩니까?
Nearpoint

예, collapse너비가 768px 미만인 경우 탐색 모음이 표시되도록 모바일 화면에 클래스가 중요 display:none하므로 필요한 조치가 768 및 1000 표시 내에 적용됩니다.
SaurabhLP

64
이있는 다른 규칙 navbar-collapse.collapse이 있기 때문에 Bootstrap 3에서는 작동하지 않습니다 display: block !important. 이 기능을 비활성화하면 접기 버튼이 나타나지 않을 것입니다. 그래서 나는 그것이 아니라 재정의해야 할 많은 클래스라고 생각합니다.collapse
Daniele Ricci

42
예, 사용자 정의 미디어 쿼리에서 많은 부트 스트랩 클래스를 재정의해야합니다. bootply.com/120604
Zim

1
도대체 누가 부트 스트랩을 만들었 어? 그 작은 세부 사항을 변경해야한다고 생각하지 않았습니까?
MH

400

2018 업데이트

부트 스트랩 4

Bootstrap 4에서 navbar-expand-*클래스를 사용하여 탐색 표시 줄 중단 점을 쉽게 변경할 수 있습니다.

<nav class="navbar fixed-top navbar-expand-sm">..</nav>

  • navbar-expand-sm = xs 화면의 모바일 메뉴 <576px
  • navbar-expand-md = <768px의 sm 화면에서 모바일 메뉴
  • navbar-expand-lg = MD 화면의 모바일 메뉴 <992px
  • navbar-expand-xl = LG 화면의 모바일 메뉴 <1200px
  • navbar-expand = 모바일 메뉴를 사용하지 마십시오
  • (no expand class) = 항상 모바일 메뉴 사용

제외 navbar-expand-*하면 모바일 메뉴가 all너비 로 사용됩니다 . 6 가지 navbar 상태에 대한 데모는 다음과 같습니다. Bootstrap 4 Navbar 예제

작은 CSS를 추가하여 사용자 정의 중단 점 (??? px)을 사용할 수도 있습니다. 예를 들어 여기 1300px입니다.

@media (min-width: 1300px){
    .navbar-expand-custom {
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: flex-start;
    }
    .navbar-expand-custom .navbar-nav {
        flex-direction: row;
    }
    .navbar-expand-custom .navbar-nav .nav-link {
        padding-right: .5rem;
        padding-left: .5rem;
    }
    .navbar-expand-custom .navbar-collapse {
        display: flex!important;
    }
    .navbar-expand-custom .navbar-toggler {
        display: none;
    }
}

부트 스트랩 4 사용자 정의 Navbar 중단 점
부트 스트랩 4 Navbar 중단 점 예


부트 스트랩 3

Bootstrap 3.3.x의 경우 탐색 막대 중단 점을 재정의하는 작동하는 CSS가 있습니다. 991px탐색 표시 줄을 접을 지점의 픽셀 치수로 변경하십시오 .

@media (max-width: 991px) {
  .navbar-header {
      float: none;
  }
  .navbar-left,.navbar-right {
      float: none !important;
  }
  .navbar-toggle {
      display: block;
  }
  .navbar-collapse {
      border-top: 1px solid transparent;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
  }
  .navbar-fixed-top {
      top: 0;
      border-width: 0 0 1px;
  }
  .navbar-collapse.collapse {
      display: none!important;
  }
  .navbar-nav {
      float: none!important;
      margin-top: 7.5px;
  }
  .navbar-nav>li {
      float: none;
  }
  .navbar-nav>li>a {
      padding-top: 10px;
      padding-bottom: 10px;
  }
  .collapse.in{
      display:block !important;
  }
}

991px의 작업 예 : http://www.bootply.com/j7XJuaE5v6 1200px의
작업 예 : https://www.codeply.com/go/VsYaOLzfb4 (검색 양식)

참고 : 위는 768px 이상에서 작동합니다 . 768px 미만 으로 변경해야하는 경우 768px 미만예는 여기에 있습니다 .



이 첫 방문을 시도해보십시오 : [link] ( getbootstrap.com/customize Locate : 'Less variables'–> 'Media query breakpoints'Change : @ screen-lg 값을 1200px에서 1920px로 찾습니다. Locate :“Grid system”–> @ grid-float -breakpoint Change : @ screen-sm-min에서 @ screen-lg 페이지 끝으로 스크롤“Compile and Download”를 클릭하고 다운로드 한 파일을 추출하여 사용하십시오
rpalzona

6
이 위의 코드는 768px보다 높은 값을 설정하면 작동하지만 반대로 달성해야합니다. 예를 들어 400px로 축소하고 싶지만이 값을 설정하면 부트 스트랩이 원래 768을 선택하는 것 같습니다 -어떤 아이디어? 감사합니다
Chris Richards

6
이 답변은 매력처럼 작동하지만 드롭 다운 메뉴 가 엉망이지만 답변을 개선해야 할 수도 있습니다.
Abhishek Pandey

2
@AbhishekPandey I의 한 유용 발견 이 대답을 (부품에 대한 드롭 다운)
cbuchart

1
감사합니다. 옆에 확인 표시가있는 "솔루션"과 달리 코드는 실제로 작동합니다.
Michael S. Miller

46

bootstrap3 ,이 변수를 변경 @ 그리드 플로트 중단 점을 당신이 필요로하는 하나. 기본값은 768px입니다


17
예를 들어 주시겠습니까?
e. thompsy 2015 년

2
sass를 사용 중이고 공급 업체 코드를 바꾸지 않으려는 경우 (스트랩하지 않아야 함) 변수를 포함하는 파일을 부트 스트랩 sass 파일 앞에 사용자 정의 값으로 포함시켜야합니다. 그 이유는 모든 부트 스트랩 변수가 기본값으로 설정되어 있기 때문입니다! 변수를 먼저 가져 와서이 값을 재정의해야합니다.
Makis K.

이 작업을 수행하는 방법의 예를 추가하십시오. 부트 스트랩을 처음 사용하고 grep이 내 프로젝트에서이 변수의 인스턴스를 0 개 표시합니다.
매트 클라크

1
@MattClark @grid-float-breakpoint는 컴파일러에 정의되어 있습니다. getbootstrap.com/customize- 기본값은 @screen-sm-min이지만로 변경할 수 있습니다 1234px.
rybo111

24

마지막으로 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;
  }
}

Customizer를 사용한 경우 인용 한 줄 번호가 달라집니다. getbootstrap.com/customize
henrywright

1
그냥 나를 위해 @grid-float-breakpointresponsive.less작품을 변경했습니다 !
cvng

6
부트 스트랩 CSS 파일을 직접 변경하는 대신 다른 CSS 파일에서이를 대체해야합니다.
Ivanka Todorova

1
첫 방문 : [link] ( getbootstrap.com/customize 찾기 : ' 임의 변수'–> '미디어 쿼리 중단 점'변경 : @ screen-lg 값을 1200px에서 1920px로 찾음 찾습니다 : "그리드 시스템"–> @ grid-float-breakpoint 변경 : @ screen-sm-min에서 @ screen-lg 페이지 끝으로 스크롤“컴파일 및 다운로드”를 클릭하고 다운로드 한 파일을 추출하십시오
rpalzona

13

방금 다음 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;
    }

}

2
너비가 768 픽셀에서 1000 픽셀 사이 인 경우 축소 된 메뉴 버튼이 표시되지 않습니다.
공예가

4
@craftsman : 버튼으로 다음을 사용하십시오. .navbar-toggle {display : block! important; } .navbar-header {너비 : 100 %; 높이 : 60px; }
Aniket Suryavanshi 2016

3
여전히 햄버거 메뉴의 내용을 보여주지 않습니다
behzad

13

부트 스트랩 3 .LESS의에서 소스 코드 에 정의 된 변수가있다 variables.less라는 @grid-float-breakpoint다음과 같은 도움이되는 의견을 가지고 :

//**Point at which the navbar becomes uncollapsed
@grid-float-breakpoint: @screen-sm-min;

일치하는 @grid-float-breakpoint-max값은 1에서 1px로 설정됩니다.

//**Point at which the navbar begins collapsing
@grid-float-breakpoint-max: (@grid-float-breakpoint-max - 1);

해결책:

그래서 그냥 설정 @grid-float-breakpoint대신 1000px에 값을하고 다시 bootstrap.lessbootstrap.css:

예 :

@grid-float-breakpoint: 1000px;

재건하는 방법? 나는이 명령 행을 시도 $ lessc bootstrap.less bootstrap.css했지만 아무 일도 일어나지 않았다
AnthonyR

@ AnthonyRn : 프로젝트 설정이 무엇인지 전혀 모른다. VS 2013 프로젝트에서 Bootstrap LESS 소스를 업데이트하고 저장시 다시 빌드했습니다. 아마도 새로운 질문을해야할까요?
사라 코딩

내 문제는 여기 부트 스트랩의 온라인 사용자 정의 도구를 사용하여 해결되었습니다. getbootstrap.com/customize 솔루션에 감사드립니다!
AnthonyR

1
브레이크 포인트를 정의하기 위해 Bootstraps 자체 방법을 사용하기 때문에 이것이 받아 들일만한 대답이어야한다고 생각합니다. 예를 들어, 간단한 '재 구축'부트 스트랩을 만들 수 있었고이 변수를 중단 점으로 설정 한 값으로 원하는 결과를 얻을 수있었습니다.
Serge Melis

@AnthonyR 다시 빌드하려면 grunt distdist 디렉토리 를 재생성하는 grunt 명령 을 사용하십시오 . gruntfile.js가있는 디렉토리에서 해당 명령을 실행합니다. 참조 : getbootstrap.com/getting-started/#grunt
Radmation

11

부트 스트랩 변수를 변경하는 Sass 방식은 실제로 bootstrap-sass github 페이지 에 문서화되어 있습니다.

부트 스트랩을 가져 오기 전에 변수를 다시 정의하십시오.

$grid-float-breakpoint: 1000px;

@import 'bootstrap';

7

@Skely 답변 외에도 탐색 표시 줄의 드롭 다운 메뉴를 작동 시키려면 클래스를 추가하여 재정의하십시오. 최종 코드는 다음과 같습니다.

    @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;
        }
    }

데모 코드


4

부트 스트랩 v4에서 다른 CSS 클래스를 사용하여 탐색을 조만간 접을 수 있습니다.

예 :

  • navbar-toggleable-sm
  • 탐색 바 전환 가능 md
  • navbar-toggleable-lg

탐색 버튼으로 :

  • 숨겨진 SM 업
  • 숨겨진 MD 업
  • 숨겨진 LG- 업

현재 알파에서는 navbar-toggleable-sm나 에게만가는 것처럼 보이며 xs결코 전환하지 않습니다. 내가 뭔가 잘못하고 있을까? 감사!
nerdwaller

@nerdwaller가 옳은 것처럼 보이며 xs에서 sm으로 편집했습니다.
whitneyland

3

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;
   }
}

완전히 작동하지 않습니다. 표시되는 메뉴 항목은 수직이 아니라 수평입니다.
Volomike

3

이것은 나를 위해 일했다.

@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;
      }
}

이 두 가지를 알아내는 데 시간이 걸렸습니다.

.navbar-collapse.collapse {
   display: none!important;
}
.navbar-collapse.collapse.in {
   display: block!important;
}

이것은 나를 위해 일했습니다. 단, 위의 샘플에서 최소 픽셀 너비는 1000 픽셀이어야합니다.
Sascha

2

가장 좋은 방법은 사용하는 CSS 프로세서의 포트를 사용하는 것입니다.

나는 SASS의 열렬한 팬이므로 현재 https://github.com/thomas-mcdonald/bootstrap-sass를 사용합니다.

여기 스타일러스 포크가있는 것 같습니다 : https://github.com/Acquisio/bootstrap-stylus

그렇지 않으면 검색 및 바꾸기가 CSS 버전에서 가장 친한 친구입니다 ...


검색 및 바꾸기 옵션의 경우 bootstrap.css 미디어 쿼리를 직접 편집한다는 의미입니까? 탐색 표시 줄에만 적용되는 미디어 쿼리를 변경할 수 있습니까? 소스 부트 스트랩 파일을 편집하는 것은 좋지 않다고 들었는데 왜 그런지 모르겠습니다. 어떻게 생각하십니까?
Nearpoint

1

안녕하세요, 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;
    }
}

1

Navbar는 .navbar-toggler, .navbar-collapse 및 .navbar-expand {-sm | -md | -lg | -xl} 클래스를 사용하여 내용이 버튼 뒤에서 접힐 때 변경 될 수 있습니다. 다른 유틸리티와 함께 ​​특정 요소를 표시하거나 숨길시기를 쉽게 선택할 수 있습니다.

축소되지 않는 탐색 모음의 경우 탐색 모음에 .navbar-expand 클래스를 추가하십시오. 항상 축소되는 탐색 모음의 경우 .navbar-expand 클래스를 추가하지 마십시오.

예를 들면 다음과 같습니다.

<nav class="navbar navbar-expand-lg"></nav>

모바일 메뉴가 큰 화면으로 표시됩니다.

참조 : https://getbootstrap.com/docs/4.0/components/navbar/


예, 이것은 내가 필요로하는대로 정확하게 작동합니다. 물론 더 구체적인 중단 점이 필요한 경우 자체 미디어 쿼리를 구성해야합니다 (따라서이 질문에 대한 호의적 인 답변)
Coderhi

0

이것이 나를 위해 마술을 한 것입니다.

@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;
}

귀하의 솔루션과 Veek의 솔루션을 사용하면 768에서 1000 사이에서 여백이 부적절하게 확장됩니다. 그들은 그 한계를 넘어선 괜찮습니다. 솔루션을 사용하면 접힌 메뉴 아이콘이 축소 된 직후에도 유지되지 않고 "브랜드"에 대해 눌려집니다.
Mike O'Connor

죄송합니다. 나는 여전히 그 한계 안에 부적절한 너비의 여백이 나타나는 문제가 있습니다. 그러나 공식 온라인 부트 스트랩 예제는 기본적으로 동일한 마진 문제를 나타냅니다.
Mike O'Connor 8

0

부트 스트랩 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 쿼리는 크기가 달라야합니다 (추측). 컨테이너 최대 너비를 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%;
    }
}

0

여기에 부트 스트랩으로 React에서 사용하는 작업 코드가 있습니다.

<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>

0

이제 Bootstrap 4.4에서 지원됩니다

navbar-expand-sm 

네 맞습니다. 그러나 큰 화면에서 탐색을 접으려면 navbar-expand-lg가 필요합니다
Coderhi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.