Thanh điều hướng bootstrap không chiếm toàn bộ chiều rộng

Ngay trong khoảng thời gian tôi đang phát triển mã cho Thanh điều hướng siêu đơn giản mà tôi đã viết cách đây một thời gian, một người bạn đã đến gặp tôi với một vấn đề thú vị. Anh ấy cần một thanh điều hướng ngang giống như thanh tôi đang tạo, với những thay đổi sau

  1. Nền của thanh điều hướng phải kéo dài toàn bộ chiều rộng của màn hình (không chỉ chiều rộng của khu vực nội dung được căn giữa) mà còn
  2. Bản thân các thành phần điều hướng vẫn phải được căn giữa trên khu vực nội dung

Bản phác thảo dưới đây phác thảo khái niệm thiết kế cơ bản

CSSDeck khuyên dùng Hello Ivy để tự động hóa miễn phí quy trình làm việc và quản lý dự án của bạn. Tìm hiểu thêm

Thanh điều hướng bootstrap không chiếm toàn bộ chiều rộng

Bạn tôi đã tìm thấy một số mã ở nơi khác làm những gì anh ấy muốn, nhưng nó yêu cầu hai div ngoài danh sách điều hướng để thực hiện phép thuật định tâm của nó. Anh ấy muốn biết liệu tôi có thể làm tốt hơn không

Hướng dẫn này là kết quả của thử thách đó

HTML

Tôi đã có thể giảm số lượng div bổ sung cần thiết xuống còn một. Đáng buồn thay, tôi không nghĩ rằng có thể làm được điều này nếu không có ít nhất một div bổ sung — hoặc chuyển sang JavaScript thay vì hoàn toàn dựa vào CSS

Nếu bạn đã quen thuộc với mã cho Thanh điều hướng siêu đơn giản, bạn sẽ thấy nó gần như giống hệt nhau, ngoại trừ việc tôi đã bọc thẻ ul trong div và chuyển ID “nav” sang div đó

CSSDeck khuyên dùng Hello Ivy để tự động hóa miễn phí quy trình làm việc và quản lý dự án của bạn. Tìm hiểu thêm

Mã điều hướng này phải được đặt bên ngoài vùng chứa nội dung được căn giữa của bạn để cho phép chúng tôi kéo dài mã này ra toàn bộ chiều rộng của cửa sổ trình duyệt trong CSS của chúng tôi

Nói chung, tôi nghĩ rằng đây là một lượng mã có thể chấp nhận được cho một thanh điều hướng

CSS

Một lần nữa, tất cả những gì tôi đã làm ở đây là lấy CSS của thanh điều hướng trước đó và sửa đổi nó một chút. Kết quả dưới đây

#nav {
	width: 100%;
	float: left;
	margin: 0 0 1em 0;
	padding: 0;
	background-color: #f2f2f2;
	border-bottom: 1px solid #ccc;  }
#nav ul {
	list-style: none;
	width: 800px;
	margin: 0 auto;
	padding: 0; }
#nav li {
	float: left; }
#nav li a {
	display: block;
	padding: 8px 15px;
	text-decoration: none;
	font-weight: bold;
	color: #069;
	border-right: 1px solid #ccc; }
#nav li:first-child a {
	border-left: 1px solid #ccc; }
#nav li a:hover {
	color: #c00;
	background-color: #fff; }

Div #nav của chúng tôi được kéo dài tới 100% cửa sổ trình duyệt và trôi sang trái. “phao. left” có vẻ hơi lạ, bởi vì chúng tôi không muốn bất cứ điều gì bao quanh thanh điều hướng của chúng tôi

Đây là một mẹo nhỏ tận dụng cách hoạt động của float. Nếu một vùng chứa không chứa gì ngoài phần tử nổi, thì vùng chứa đó sẽ thu gọn xuống độ cao bằng 0, vì phần tử nổi sẽ đưa nó ra khỏi luồng tài liệu thông thường. Đó là, trừ khi container cũng được thả nổi. Sau đó, đột nhiên, thùng chứa của chúng tôi chỉ thu gọn lại bằng kích thước của phao chứa

Tại sao nó lại quan trọng? . Nếu #nav không nổi, nó sẽ thu gọn về độ cao bằng 0, làm cho nền và đường viền của chúng ta trở nên vô hình

Tiếp theo, chúng tôi đã cung cấp cho “#nav ul” một chiều rộng cố định và sử dụng thủ thuật căn lề tự động để căn giữa nó. Chiều rộng ở đây là rất quan trọng. bạn muốn nó có cùng chiều rộng với vùng nội dung được căn giữa của bạn. Trong ví dụ này, đó là 800 pixel

Tôi đang sử dụng một lớp giả để tạo hiệu ứng thú vị ở đây. Các ". lớp giả con đầu tiên” áp dụng cho bất kỳ phần tử nào là phần tử con đầu tiên trong phần tử cha của nó. Trong trường hợp của chúng tôi, quy tắc này là tìm chữ “li” đầu tiên trong chữ “ul” gốc của chúng tôi. Sau đó, chúng tôi sẽ áp dụng đường viền cho bên trái của thẻ neo bên trong. Không có nó, phần tử đầu tiên của chúng ta sẽ không có đường viền bên trái như những phần tử khác dường như có. Mặc dù về mặt kỹ thuật, chúng tôi có thể làm điều đó với một lớp hoặc ID trên phần tử đầu tiên, nhưng tôi nghĩ giải pháp này thanh lịch hơn một chút

Phần còn lại của CSS giống với phần trong thanh điều hướng ngang đơn giản của chúng tôi và chủ yếu là trình bày. Bạn có thể tùy chỉnh màu sắc, phần đệm, di chuột và mọi thứ khác để biến thanh điều hướng thành của riêng bạn

Bạn có thể thấy mã này đang hoạt động ở đây. Hy vọng rằng những người khác sẽ thấy giải pháp này hữu ích như bạn tôi đã làm

Trong Bootstrap 4, NavBar là một thành phần thiết yếu cho mục đích menu. NavBar chứa rất nhiều mục như văn bản, văn bản liên kết, vô hiệu hóa liên kết, nút thả xuống, biểu mẫu, v.v. Để làm cho các mục con thả xuống thành toàn chiều rộng có thể được thực hiện bằng cách sử dụng thuộc tính CSS hoặc bằng cách sử dụng các tiện ích mặc định của Bootstrap 4. Các cách tiếp cận sau đây sẽ giải thích rõ ràng

Cách tiếp cận 1

  1. Trong Bootstrap 4, có thể thực hiện thả xuống toàn bộ chiều rộng trong Thanh điều hướng bằng cách thêm các thuộc tính CSS bên trong hoặc bên ngoài dựa trên các tiện ích. Chỉ tập trung vào danh sách thả xuống lớp và menu thả xuống
  2. Đầu tiên, tiêu điểm thả xuống là lớp cha của menu thả xuống, sau đó đặt nó ở vị trí tĩnh như sau




    <style>

    .dropdown {

        position:static !important;

    ________số 8_______

    style>

  3. Bây giờ, đặt lề trên cùng của menu thả xuống dưới dạng pixel bằng 0 và thêm chiều rộng thành 100%
  4. Sau đó thêm bóng hộp để làm nổi bật menu thả xuống (mục đích trang trí) như sau




    <style>

    style3

        style5

        style7

        style9

    ________số 8_______

    style>

  5. Chúng ta cũng có thể sử dụng các thuộc tính CSS thông qua phương thức nội tuyến

ví dụ 1. Ví dụ dưới đây minh họa cách tạo danh sách thả xuống có chiều rộng đầy đủ của Bootstrap 4 trong Thanh điều hướng bằng các thuộc tính CSS




>4

<4_______6 >7>8>9>

.dropdown {1

<.dropdown {3_______4_______

    <.dropdown {7 .dropdown {8>8_______6_______0>

    <5_______7     5_______4_______8_______6_______7

    8    9>8position:static !important;1_______4_______

    <position:static !important;5 position:static !important;6_______4_______8_______7_______8 position:static !important;9>8

}1>

    <}5 }6>8

}8>

    }5>

    <}5 }6>8

9>

    }5>

    <}5 }6>8

>0>

    }5>

    <style>

style00_______5_______

style02______3_______03

style00}

style06

style00style3

style02______3_______5

style02______3_______12

style02______3_______14

style00}

    style>

.dropdown {3_______4_______

.dropdown {1

<style26>

    <style30 style31_______4_______8style33_______4_______

style00<style37>

style02_______2__________style41 style4_______8style44>

style46______3_______47

style02_______9_______style41>

style02_______2__________style54____3_______55style54>

style02_______2_______3_______60>

style02_______2_______3_______60>

style02_______2_______style68 style69

style70style71

style72_______3_______4_______8style75>

style77<___style79 style31>8style82 position:static !important;9>8style85>

style87<___style89 }6>8

style92

style93_______3_______94>8_______3_______96 style97>8style96

style93_______3_______31>8>03 >04>8>06>07

>08>09

style77style79>

style77<___>16 style31>8>19

style70>21>8>23 >24>8>26

style70>28>8>30

style70>32>8>34

style70>36>8>38

style70>40>8>42

style70style4_______8>46>

style87<___>50 style31_______4_______8>53>54>50>

style77>16>

.dropdown {1

style77<___style30 style31>8>67

>68>69>8>34>

.dropdown {1

style87<___>76 style31_______4_______8>79>

>81

style70>83

style70<___>86 style31_______4_______8>89>

>91<___style79 style31>8>96

>97_______7_______9>8style85 >69>8.dropdown {03

>97_______5_______05>8>23 >24>8.dropdown {10

>97_______5_______12>8.dropdown {14

>97_______4_______36>8>38>

.dropdown {20.dropdown {21

>91style79>

.dropdown {26

>91_______5_______28

>91<___style30 style31>8.dropdown {34

.dropdown {35.dropdown {36>8.dropdown {03>

.dropdown {40<___style79 style31_______4_______8.dropdown {45 position:static !important;9>8style85>

.dropdown {50_______5_______51

.dropdown {40style79>

.dropdown {40<___style79 style31_______4_______8.dropdown {45 position:static !important;9>8style85>

.dropdown {50_______5_______67

.dropdown {40style79>

.dropdown {40<___style30 style31_______4_______8.dropdown {77>54style30>

.dropdown {40<___style79 style31_______4_______8.dropdown {45 position:static !important;9>8style85>

.dropdown {50_______5_______92

.dropdown {40style79>

>91style30>

style70_______9_______>86>

style70<___>86 style31_______4_______8>89>

>91<___style79 style31>8>96

>97_______7_______9>8style85 >69>8.dropdown {03

>97_______5_______05>8>23

>97_______4_______24>8.dropdown {10

>97_______5_______12>8.dropdown {14

>97_______4_______36>8>38>

.dropdown {20    43

>91style79>

.dropdown {26

>91_______5_______28

>91<___style30 style31>8.dropdown {34

.dropdown {35.dropdown {36>8.dropdown {03

.dropdown {35style4_______8    64>

.dropdown {40<___style79 style31_______4_______8.dropdown {45 position:static !important;9>8style85>

.dropdown {50_______5_______51

.dropdown {40style79>

.dropdown {40<___style79 style31_______4_______8.dropdown {45 position:static !important;9>8style85>

.dropdown {50_______5_______67

.dropdown {40style79>

.dropdown {40<___style30 style31_______4_______8.dropdown {77>54style30>

.dropdown {40<___style79 style31_______4_______8.dropdown {45 position:static !important;9>8style85>

.dropdown {50_______5_______92

.dropdown {40style79>

>91style30>

style70_______9_______>86>

style87>76>

>68

style87position:static !important;37

style87<___position:static !important;40 style31_______4_______8position:static !important;43>

.dropdown {1

style70<___position:static !important;48 style31>8position:static !important;51

>97_______4_______21>8position:static !important;55 position:static !important;56>8position:static !important;58

>97_______4_______40>8position:static !important;58>

style70<___>16 style31>8position:static !important;69

.dropdown {40>21>8position:static !important;73position:static !important;74>16>

style87position:static !important;40>

style77style30>

style02_______9_______style68>

style00style37>

    style30>

.dropdown {1

style26_______4_______

.dropdown {1

>6>

đầu ra

Thanh điều hướng bootstrap không chiếm toàn bộ chiều rộng

Cách tiếp cận 2

  1. Trong Bootstrap 4, có thể thực hiện thả xuống toàn bộ chiều rộng trong Thanh điều hướng bằng cách sử dụng tiện ích Bootstrap 4
  2. Tương tự như cách tiếp cận 1, chỉ tập trung vào danh sách thả xuống lớp và menu thả xuống
  3. Thêm class position-static cùng với dropdown class, là class cha của dropdown-menu như sau




    <>86 style31>8}09>

  4. Bây giờ, thêm lớp w-100, mt-0 cùng với lớp menu thả xuống như sau




    <style30 style31>8}15

    .dropdown {36>8.dropdown {03>

ví dụ 2. Ví dụ dưới đây minh họa cách tạo danh sách thả xuống có chiều rộng đầy đủ của Bootstrap 4 trong Thanh điều hướng bằng tiện ích Bootstrap 4




>4

<4_______6 >7>8>9>

.dropdown {1

<.dropdown {3_______4_______

    <.dropdown {7 .dropdown {8>8_______6_______0>

    <5_______7     5_______4_______8_______6_______7

    8    9>8position:static !important;1_______4_______

    <position:static !important;5 position:static !important;6_______4_______8_______7_______8 position:static !important;9>8

}1>

    <}5 }6>8

}8>

    }5>

    <}5 }6>8

9>

    }5>

    <}5 }6>8

>0>

    }5>

.dropdown {3_______4_______

.dropdown {1

<style26>

    <style30 style31_______4_______8style33_______4_______

style00<style37>

style02_______2__________style41 style4_______8style44>

style46______3_______47

style02_______9_______style41>

style02_______2__________style54____3_______55style54>

style02_______2_______3_______60>

style02_______2_______3_______60>

style02_______2_______style68 style69

style7042

style72_______3_______4_______8_______9_______46>

style77<___style79 style31>8style82 position:static !important;9>8style85>

style87<___style89 }6>8

style92

style93_______3_______94>8_______3_______96 style97>8style96

style93_______3_______31>8>03 >04>8>06>07

>08>09

style77style79>

style77<___>16 style31>8>19

style70>21>8>23

style70>24>8>26

style70>28>8>30

style70>32>8>34

style70>36>8>38

style70>40>8>42

style70style4_______8>46>

style87<___>50 style31_______4_______8>53>54>50>

style77>16>

.dropdown {1

style77<___style30 style31>8>67

>68>69>8>34>

.dropdown {1

style87<___>76 style31_______4_______8>79>

>81

style70>83

style70<___>86 style31_______4_______8}09>

>91<___style79 style31>8>96

>97_______7_______9>8style85 >69>8.dropdown {03

>97_______5_______05>8>23 >24>8.dropdown {10

>97_______5_______12>8.dropdown {14

>97_______4_______36>8>38>

.dropdown {20.dropdown {21

>91style79>

.dropdown {26

>91_______5_______28

>91<style30 >04

>05>06

.dropdown {35.dropdown {36>8.dropdown {03>

.dropdown {40<___style79 style31>8_______5_______45 position:static !important;9>8style85>21style79>

.dropdown {40<___style79 style31_______4_______8.dropdown {45 position:static !important;9>8style85>

.dropdown {50_______4_______35

.dropdown {40style79>

.dropdown {40<___style30 style31_______4_______8.dropdown {77>54style30>

.dropdown {50_______2__________style79 style31_______4_______8.dropdown {45 position:static !important;9>8style85>

Làm cách nào để tạo thanh điều hướng Bootstrap có chiều rộng đầy đủ?

Trong Bootstrap 4, có thể thực hiện thả xuống toàn bộ chiều rộng trong Thanh điều hướng bằng cách thêm các thuộc tính CSS bên trong hoặc bên ngoài dựa trên sự tiện lợi. Chỉ tập trung vào danh sách thả xuống lớp và menu thả xuống. Bây giờ, đặt lề trên của menu thả xuống thành 0 pixel và thêm chiều rộng thành 100% . Chúng ta cũng có thể sử dụng các thuộc tính CSS thông qua phương thức nội tuyến.

Làm cách nào để giảm chiều rộng của thanh điều hướng?

Chiều cao của thanh điều hướng trong Bootstrap 4 đến từ phần đệm trên các thành phần liên kết của nó và cũng từ phần đệm trên thanh điều hướng chính. Để giảm chiều cao, bạn cần xóa phần đệm trên cả hai . Lớp này đặt padding-top và padding-bottom thành 0. Tiếp theo đặt padding-top và padding-bottom của lớp thanh điều hướng thành 0.