Giảm chiều cao của thanh điều hướng bootstrap 3.0


108

Tôi đang cố gắng giảm chiều cao thanh điều hướng bootstrap 3.0 được sử dụng với hành vi cố định trên cùng. Ở đây tôi đang sử dụng mã.

HTML

<div class="tnav">
<div class="navbar navbar-fixed-top" role="banner">
    <div class="navbar-inner-sm">
  <div class="container">
    <div class="navbar-header">
      <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>
    <nav class="collapse navbar-collapse" role="navigation">
      <ul class="nav navbar-nav pull-right">
        <li class="active">
          <a href="../getting-started">Getting started</a>
        </li>
        <li>
          <a href="../css">Ext01</a>
        </li>
        <li>
          <a href="../components">Language</a>
        </li>
        <li>
          <a href="../javascript">My Account</a>
        </li>
        <li>
          <a href="../customize">Sign Out</a>
        </li>
      </ul>
    </nav>
  </div>
    </div>
</div>

CSS

.tnav .navbar { background:#F06; height:30px; }
.navbar-inner-sm{background-color: #282828;padding: 1px 20px;background-repeat: repeat-x;-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1);-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1);box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 -1px 0 rgba(0, 0, 0, .1);background-image: linear-gradient(top, #333333, #222222);}
.navbar-inner-sm .nav {position: relative;left: 0;display: block;float: left;margin: 0 10px 0 0;}
.navbar-inner-sm .nav.pull-right {float: right;}
.navbar-inner-sm .nav > li {display: block;float: left;}
.navbar-inner-sm .nav > li > a {float: none;padding: 4px 5px;line-height: 19px;color: #999999;text-decoration: none;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);}
.navbar-inner-sm .nav > li > a:hover {background-color: transparent;color: #ffffff;text-decoration: none;}
.navbar-inner-sm .nav .active > a,.navbar .nav .active > a:hover {color: #ffffff;text-decoration: none;background-color: #003753;}
.navbar-inner-sm .divider-vertical {height: 27px;width: 1px;margin: 0 9px;overflow: hidden;background-color: #282828;border-left: 1px solid #3f3f3f; border-right: 1px solid #161616;}
.navbar-inner-sm .nav.pull-right {margin-left: 10px;margin-right: 0;}

Kết quả

nhập mô tả hình ảnh ở đây

Từ màn hình, nó hiển thị, thanh điều hướng giảm đầu ra nhưng chiều cao không giảm. chiều cao ban đầu được hiển thị bằng màu hồng.

Tập lệnh css trên hầu như hoạt động tốt trong bootstrap 2. *

Có cách nào để giảm chiều cao hợp lý.


Không cần nhiều hơn cho <div class = "navbar-nội"> trong Bootstrap 3
Bartek S

navbar-inner là lớp tùy chỉnh của tôi. không liên quan đến bootstrap 3.0.
irfanmcsd.

Cách duy nhất mà làm việc cho tôi được giải thích tại liên kết này: stackoverflow.com/questions/19576175/... Nó làm giảm chiều cao navbar chỉ với hai dòng mã
giovannim

Câu trả lời:


124

Sau vài giờ, việc thêm lớp css sau đã khắc phục sự cố của tôi.

Làm việc với Bootstrap 3.0. *

.tnav .navbar .container { height: 28px; }

Làm việc với Bootstrap 3.3.4

.navbar-nav > li > a, .navbar-brand {
    padding-top:4px !important; 
    padding-bottom:0 !important;
    height: 28px;
}
.navbar {min-height:28px !important;}

Cập nhật Mã hoàn chỉnh để tùy chỉnh và giảm chiều cao của thanh điều hướng với ảnh chụp màn hình.

nhập mô tả hình ảnh ở đây

CSS:

/* navbar */
.navbar-primary .navbar { background:#9f58b5; border-bottom:none; }
.navbar-primary .navbar .nav > li > a {color: #501762;}
.navbar-primary .navbar .nav > li > a:hover {color: #fff; background-color: #8e49a3;}
.navbar-primary .navbar .nav .active > a,.navbar .nav .active > a:hover {color: #fff; background-color: #501762;}
.navbar-primary .navbar .nav li > a .caret, .tnav .navbar .nav li > a:hover .caret {border-top-color: #fff;border-bottom-color: #fff;}
.navbar-primary .navbar .nav > li.dropdown.open.active > a:hover {}
.navbar-primary .navbar .nav > li.dropdown.open > a {color: #fff;background-color: #9f58b5;border-color: #fff;}
.navbar-primary .navbar .nav > li.dropdown.open.active > a:hover .caret, .tnav .navbar .nav > li.dropdown.open > a .caret {border-top-color: #fff;}
.navbar-primary .navbar .navbar-brand {color:#fff;}
.navbar-primary .navbar .nav.pull-right {margin-left: 10px; margin-right: 0;}
.navbar-xs .navbar-primary .navbar { min-height:28px; height: 28px; }
.navbar-xs .navbar-primary .navbar .navbar-brand{ padding: 0px 12px;font-size: 16px;line-height: 28px; }
.navbar-xs .navbar-primary .navbar .navbar-nav > li > a {  padding-top: 0px; padding-bottom: 0px; line-height: 28px; }
.navbar-sm .navbar-primary .navbar { min-height:40px; height: 40px; }
.navbar-sm .navbar-primary .navbar .navbar-brand{ padding: 0px 12px;font-size: 16px;line-height: 40px; }
.navbar-sm .navbar-primary .navbar .navbar-nav > li > a {  padding-top: 0px; padding-bottom: 0px; line-height: 40px; }

Mã sử ​​dụng:

<div class="navbar-xs">
   <div class="navbar-primary">
       <nav class="navbar navbar-static-top" role="navigation">
          <!-- Brand and toggle get grouped for better mobile display -->
          <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-8">
                 <span class="sr-only">Toggle navigation</span>
                 <span class="icon-bar"></span>
                 <span class="icon-bar"></span>
                 <span class="icon-bar"></span>
              </button>
              <a class="navbar-brand" href="#">Brand</a>
          </div>
          <!-- Collect the nav links, forms, and other content for toggling -->
          <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-8">
              <ul class="nav navbar-nav">
                  <li class="active"><a href="#">Home</a></li>
                  <li><a href="#">Link</a></li>
                   <li><a href="#">Link</a></li>
              </ul>
          </div><!-- /.navbar-collapse -->
      </nav>
  </div>
</div>

4
điều này không hoạt động ... hãy kiểm tra câu trả lời của tôi trên trang này ... chiều cao tối thiểu cho .navbar được đặt thành 50px theo mặc định, vì vậy nếu bạn đặt chiều cao thành 28px, nó sẽ bị ghi đè bởi chiều cao tối thiểu 50px. ..
Patrick

3
Ah, tôi thấy bài đăng này đã được chỉnh sửa (rất nhiều!) Và bây giờ thực sự hiển thị đúng mã. Tôi cũng thấy cài đặt chiều cao tối thiểu mà tôi đã đề xuất trong bài đăng của mình ở đây mà vì lý do nào đó đã nhận được phiếu bầu giảm. Thật khó chịu khi bị từ chối cho một câu trả lời chính xác, đúng chủ đề và rõ ràng ...
Patrick

@patrick không biết ý bạn là gì, nhưng tại thời điểm đó, vấn đề của tôi đã được giải quyết với câu trả lời của riêng tôi. danh tiếng không có câu hỏi, nếu mọi người cho tôi bỏ phiếu tăng hoặc giảm.
irfanmcsd

1
Việc chỉnh sửa nguồn sẽ giúp việc này dễ dàng hơn
Luke

Thật buồn cười, những thứ này không hiệu quả với tôi. Tôi đã phải ghi đè chiều cao cố định là 50px;
Kevin

43

Giải pháp làm việc:

Bootstrap 3.0 theo mặc định có phần đệm 15px ở trên và dưới, vì vậy chúng ta chỉ cần ghi đè nó!

Ví dụ:

.navbar-nav > li > a {padding-top:10px !important; padding-bottom:10px !important;}
.navbar {min-height:40px !important}

Mặc định là 10px trong bootstrap.css? .navbar-nav> li> a {padding-top: 10px; padding-bottom: 10px; chiều cao dòng: 20px; }
jichi

1
Kiểm tra dòng số 3884 trong bootstrap.css (v3.0.2). Nó .navbar-nav > li > a {padding-top: 15px; padding-bottom: 15px;}theo mặc định.
Ranveer

Không chắc chắn về v3.0.2. Nhưng trong v3.0.3 dòng 4541 trong bootstrap.css, nó là: .navbar-nav> li> a {padding-top: 10px; padding-bottom: 10px; chiều cao dòng: 20px; }
jichi

Ngài là người hùng của tôi.
orokusaki

40

Chỉ cần ghi đè chiều cao tối thiểu được đặt trong .navbar như sau:

.navbar{
  min-height:20px; //* or whatever height you require
}

Thay đổi chiều cao các phần tử thành một thứ gì đó nhỏ hơn chiều cao tối thiểu sẽ không tạo ra sự khác biệt ...


như bạn thấy trong thanh điều hướng, tôi đã sử dụng thuộc tính chiều cao nhưng không có tác dụng.
irfanmcsd

đó là thuộc tính chiều cao tối thiểu, không phải chiều cao ... nếu bạn đặt chiều cao thành một số thấp hơn chiều cao tối thiểu, chiều cao tối thiểu sẽ ngăn nó trở nên nhỏ hơn ...
Patrick

7
Tại sao điều này nhận được một downvote ?? Đó là một giải pháp hiệu quả cho vấn đề được đặt ra trong bài đăng này. Người kiểm duyệt có thể nhìn vào điều này không, có vẻ như có một người phản đối đơn giản chỉ phản đối những thứ mà anh ta không đồng ý mà không kiểm tra câu trả lời thực tế. Một liên kết được đăng thêm 2,5 tháng sau khi bài đăng của tôi có cùng câu trả lời, nằm trên một liên kết bên ngoài và nhận được hai lượt ủng hộ. Tôi ghét nó khi mọi người pha loãng SO với những phiếu phản đối ngẫu nhiên!
Patrick

Tôi thường tự hỏi bản thân làm thế nào mà mọi người bây giờ họ lại nhận được phiếu tán thành, bạn có nhận được thông báo không? Không thể tìm thấy điều này trên meta
Iulian Onofrei

5
không có thông báo ... có vẻ như mọi người bỏ phiếu phản đối nếu họ nghĩ câu trả lời khác tốt hơn hoặc điều gì đó ... Tôi không biết ... Trong trường hợp này, anh chàng đặt câu hỏi đã lấy câu trả lời của tôi trong câu trả lời của riêng anh ấy và chấp nhận câu trả lời đó .. . Khá khập khiễng nếu bạn hỏi tôi ... Nhưng xin nhắc lại, trang web này không phải về cái tôi, mà là về việc giúp đỡ người khác ...
Patrick

27

nếu bạn đang sử dụng nguồn ít hơn, phải có một biến cho chiều cao thanh điều hướng trong variables.lesstệp. Nếu bạn không sử dụng nguồn, thì bạn có thể tùy chỉnh nó bằng cách sử dụng tiện ích tùy chỉnh mà trang web của bootstrap cung cấp. Và sau đó bạn có thể tải xuống và đưa nó vào dự án của mình. Biến bạn đang tìm là:@navbar-height


1
nhưng tôi không muốn thay đổi hành vi của thanh điều hướng ban đầu. tôi chỉ thay đổi chiều cao cho thanh điều hướng trên cùng bổ sung.
irfanmcsd

2
Tôi nghĩ đó là giải pháp tốt nhất.
Imtiaz

1
Đây là giải pháp tốt nhất này nếu bạn chỉ có một điều hướng trên trang web và nó phải ở độ cao đó. Nếu bạn có nhiều nav, nó sẽ khó hơn một chút, vì .navbar-vertical-align được sử dụng ở một số nơi và có tham chiếu khó đến @ navbar-height.
Carl Bussema

giải pháp tốt. miễn là bạn không định sử dụng CDN
eagor

1
Miễn là bạn sử dụng ghi đè trong một vùng riêng biệt Ít một phần thì đây là giải pháp tốt nhất và sẽ cho phép bạn nâng cấp bootstrap mà không gặp vấn đề gì.
Ken Prince

9

Đây là kinh nghiệm của tôi

 .navbar { min-height:38px;   }
 .navbar .navbar-brand{ padding: 0 12px;font-size: 16px;line-height: 38px;height: 38px; }
 .navbar .navbar-nav > li > a {  padding-top: 0px; padding-bottom: 0px; line-height: 38px; }
 .navbar .navbar-toggle {  margin-top: 3px; margin-bottom: 0px; padding: 8px 9px; }
 .navbar .navbar-form { margin-top: 2px; margin-bottom: 0px }
 .navbar .navbar-collapse {border-color: #A40303;}

thay đổi chiều cao của navabr thành 38px


Thêm này để chăm sóc .navbar dạng:.navbar .navbar-form { margin-top: 2px; margin-bottom: 0px }
steph643

Một phần mở rộng khác: .navbar .navbar-text {margin-top: 0px; margin-bottom: 0px; line-height: 38px; }
cnmuc

3

Nếu các bạn đang tạo các bảng định kiểu của mình bằng LESS / SASS và đang nhập Bootstrap vào đó, tôi thấy rằng việc ghi đè biến @ navbar-height cho phép bạn đặt chiều cao của thanh điều hướng, được xác định ban đầu trong tệp variable.less.

nhập mô tả hình ảnh ở đây


3

Tôi muốn thêm 2 pence của tôi và cảm ơn James Poulose vì câu trả lời ban đầu của anh ấy, đó là câu trả lời duy nhất phù hợp với dự án cụ thể của tôi (MVC 5 với phiên bản mới nhất của Bootstrap 3).

Điều này chủ yếu nhắm vào người mới bắt đầu, để rõ ràng và để thực hiện các chỉnh sửa trong tương lai dễ dàng hơn, tôi khuyên bạn nên thêm một phần ở cuối tệp CSS cho dự án của bạn, ví dụ, tôi muốn làm điều này:

/* Bootstrap overrides */

.some-class-here {
}

Lấy câu trả lời của James Poulose ở trên, tôi đã làm điều này:

/* Bootstrap overrides */   
.navbar-nav > li > a { padding-top: 8px !important; padding-bottom: 5px !important; }
.navbar { min-height: 32px !important; }
.navbar-brand { padding-top: 8px; padding-bottom: 10px; padding-left: 10px; }

Tôi đã thay đổi các giá trị padding-top để đẩy văn bản xuống phần tử thanh điều hướng của mình. Bạn có thể ghi đè lên bất kỳ phần tử Bootstrap nào như thế này và đây là một cách tốt để thực hiện các thay đổi mà không làm hỏng các lớp cơ sở của Boostrap vì điều cuối cùng bạn muốn làm là thực hiện thay đổi ở đó và sau đó mất nó khi bạn cập nhật Bootstrap!

Cuối cùng để tách biệt hơn nữa, tôi muốn chia nhỏ các tệp CSS của mình và sử dụng khai báo @import để nhập các tệp con của bạn vào một Tệp CSS chính để dễ quản lý, ví dụ:

@import url('css/mysubcssfile.css');

lưu ý : nếu bạn đang kéo nhiều tệp, bạn cần đảm bảo rằng chúng tải theo đúng thứ tự.

Hy vọng điều này sẽ giúp ai đó.


2

Tôi nghĩ chúng ta có thể viết ít kiểu này hơn, mà không thay đổi màu hiện có. Điều sau làm việc cho tôi (trong Bootstrap 3.2.0)

.navbar-nav > li > a { padding-top: 5px !important; padding-bottom: 5px !important; }
.navbar { min-height: 32px !important; }
.navbar-brand { padding-top: 5px; padding-bottom: 10px; padding-left: 10px; }

Tên cuối cùng ('navbar-brand') chỉ thực sự cần thiết nếu bạn có văn bản là tên 'brand' của mình.


Câu trả lời hay, đây là câu trả lời duy nhất phù hợp với tôi với phiên bản Bootstrap 3 mới nhất (lưu ý: nếu bạn muốn đẩy văn bản của mình xuống, hãy tăng giá trị padding-top cho lớp .navbar-brand cũng như .navbar-nav> li> một classses.
Tahir Khalid

0

Tôi gặp vấn đề tương tự, chiều cao của thanh menu do bootstrap cung cấp quá lớn, thực sự là tôi đã tải xuống một số bootstrap sai, cuối cùng hãy loại bỏ nó bằng cách tải xuống orignal bootstrap từ trang web này .. http://getbootstrap.com/2.3 .2 / muốn sử dụng bootstrap trong yii (netbeans) hãy làm theo hướng dẫn này https://www.youtube.com/watch?v=XH_qG8gphaw ... Không có giọng nói nhưng các bước thực hiện chậm các bạn có thể dễ dàng hiểu và thực hiện chúng. Cảm ơn


Bạn đã thay đổi điều gì trong mã để đạt được hiệu quả mong muốn? Nếu bạn trỏ đến một liên kết trong một câu trả lời, bạn nên tóm tắt giải pháp.
Brian
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.