Saturday, August 26, 2023

Grid system

Hãy sử dụng hệ thống lưới flexbox mạnh mẽ, ưu tiên cho thiết bị di động của chúng tôi để xây dựng các bố cục ở mọi hình dạng và kích thước nhờ vào một hệ thống 12 cột, sáu tầng responsive mặc định, các biến và các mixin của Sass, và hàng tá class đã được định nghĩa trước.

Ví dụ:

Hệ thống lưới của Bootstrap sử dụng một loạt các container, row, và column để bố trí và căn chỉnh nội dung. Nó được xây dựng bằng flexbox và hoàn toàn là responsive. Bên dưới là một ví dụ và một sự giải thích rất chi tiết về cách hệ thống lưới kết hợp với nhau.


Ví dụ bên trên sẽ tạo ra ba cột có chiều rộng bằng nhau trên tất cả các thiết bị và viewport bằng cách sử dụng các class lưới đã được định nghĩa trước của chúng tôi. Các cột đó được căn giữa trong trang với phần tử cha là .container.

Cách nó làm việc

Chia nhỏ nó ra, đây là cách hệ thống lưới kết hợp với nhau:

  1. Hệ thống lưới của chúng tôi hỗ trợ sáu responsive breakpoint. Các breakpoint thì dựa trên min-width media query, có nghĩa là chúng ảnh hưởng đến breakpoint đó và tất cả các breakpoint bên trên nó (ví dụ, .col-sm-4 áp dụng cho sm, md, lg, xl, và xxl). Điều này có nghĩa là bạn có thể kiểm soát container và kích thước của cột và cách hoạt động bởi mỗi breakpoint.
  2. Các container đặt nội dung của bạn vào giữa và đệm nội dung đó theo chiều ngang. Hãy sử dụng .container cho một chiều rộng tính bằng pixel, .container-fluid cho chiều rộng: 100% trên tất cả các viewport và thiết bị, hoặc một responsive container (ví dụ, .container-md) cho một sự kết hợp của fluid và chiều rộng được tính bằng pixel.
  3. Row là cái bao bọc bên ngoài cho các column. Mỗi column đều có padding theo chiều ngang (được gọi là gutter) để kiểm soát không gian giữa chúng. Padding này sau đó được trung hòa trên row với giá trị margin âm để bảo đảm rằng nội dung trong các column của bạn được căn chỉnh trực quan xuống cạnh bên trái. Row cũng hỗ trợ các modifier class để áp dụng giống nhau kích thước column và các gutter class để thay đổi khoảng cách của nội dung của bạn.
  4. Các column thì linh hoạt đến nỗi không ngờ. Có 12 column mẫu có sẵn cho mỗi row, cho phép bạn tạo ra các sự kết hợp khác nhau của các phần tử, cho phép bạn nhóm bất kỳ số lượng column nào lại với nhau. Các column class cho biết số lượng column mẫu để nhóm lại với nhau (ví dụ, col-4 sẽ nhóm bốn column mẫu lại với nhau). Chiều rộng được thiết lập bằng giá trị phần trăm vì vậy bạn luôn luôn có cùng một kích thước tương đối.
  5. Gutter cũng là responsive và có thể tùy chỉnh. Các gutter class thì có sẵn trên tất cả các breakpoint, với tất cả cùng một kích thước giống nhau như khoảng cách margin và padding của chúng tôi. Thay đổi các gutter theo chiều ngang với các .gx-* class, thay đổi các gutter theo chiều dọc với các .gy-* class, hoặc thay đổi tất cả các gutter với các .g-* class. .g-0 thì cũng có sẵn để loại bỏ các gutter.
  6. Các biến, các map, và các mixin của Sass cung cấp sức mạnh cho hệ thống lưới. Nếu như bạn không muốn sử dụng các class lưới được định nghĩa trước của Bootstrap, thì bạn có thể sử dụng mã nguồn Sass của chúng tôi để tạo ra các class lưới của riêng mình với nhiều đánh dấu ngữ nghĩa hơn. Chúng tôi cũng bao gồm một số thuộc tính CSS tùy chỉnh để dùng các biến Sass này nhằm mang lại sự linh hoạt hơn nữa cho bạn.

Hãy có kiến thức về sự hạn chế và bug xung quanh flexbox, như không có khả năng sử dụng một số phần tử HTML như là các flex container.

Grid options

Hệ thống lưới của Bootstrap có thể thích ứng với cả sáu breakpoint mặc định, và bất kỳ breakpoint nào mà bạn tùy chỉnh. Sáu tầng lưới mặc định như sau:

  1. Extra small (xs)
  2. Small (sm)
  3. Medium (md)
  4. Large (lg)
  5. Extra large (xl)
  6. Extra extra large (xxl)

Như đã lưu ý ở trên, mỗi breakpoint này đều có container của riêng chúng, class prefix duy nhất, và các bổ ngữ. Sau đây là cách hệ thống lưới thay đổi trên các breakpoint này:

Các cột tự động bố trí

Sử dụng các column class có breakpoint cụ thể để dễ dàng chỉ định cỡ cho column mà không cần một class được đánh số rõ ràng như .col-sm-6.

Chiều rộng bằng nhau

Ví dụ, đây là hai bố cục lưới áp dụng cho mọi thiết bị và viewport, từ xs đến xxl. Hãy thêm bất kỳ số lượng class không có đơn vị nào vào cho mỗi breakpoint bạn cần và mọi column sẽ có chiều rộng giống hệt nhau.

Thiết lập chiều rộng cho một column

Tính năng bố cục tự động cho các cột của lưới flexbox cũng có nghĩa là bạn có thể thiết lập chiều rộng của một cột và để các cột anh em của nó tự động thay đổi kích thước quanh nó. Bạn có thể sử dụng các class lưới được định nghĩa trước, các mixin, hoặc các chiều rộng được chỉ định trên phần tử. Lưu ý rằng các cột khác sẽ thay đổi kích thước mà không quan trọng chiều rộng của cột ở giữa.

Nội dung có chiều rộng hay thay đổi

Hãy sử dụng các class có dạng col-{breakpoint}-auto để chỉ định kích thước của các cột dựa vào chiều rộng tự nhiên của nội dung của chúng.


Responsive classes

Hệ thống lưới của Bootstrap bao gồm sáu tầng của các class được định nghĩa trước để xây dựng các responsive layout phức tạp. Nó tùy chỉnh kích thước của các cột của bạn trên các thiết bị cực nhỏ, nhỏ, trung bình, lớn, hoặc cực lớn bằng bất cứ cách nào bạn thấy phù hợp.

Tất cả các breakpoint

Đối với các lưới giống nhau từ các thiết bị nhỏ nhất đến lớn nhất, hãy sử dụng các class .col.col-*. Chỉ định một class được đánh số khi bạn cần một cột có kích thước đặc biệt; nếu không thì, hãy thoải mái sử dụng .col.


Xếp chồng lên nhau theo chiều ngang

Bằng cách sử dụng một tập hợp các class có dạng .col-sm-*, bạn có thể tạo ra một hệ thống lưới cơ bản bắt đầu được xếp chồng lên nhau và trở thành nằm ngang tại small breakpoint (sm).


Pha trộn và kết hợp

Bạn không muốn các cột của mình chỉ xếp chồng lên nhau trên một số tầng lưới? Hãy sử dụng một sự kết hợp của các class khác nhau cho mỗi tầng nếu cần. Hãy xem ví dụ bên dưới để hiểu rõ hơn về cách thức hoạt động của tất cả chúng.


Các cột của hàng

https://getbootstrap.com/docs/5.3/layout/grid/#row-columns








Monday, August 21, 2023

Containers

Container là một khối dựng sẵn cơ bản của Bootstrap nó chứa đựng, đệm, và căn chỉnh nội dung của bạn ở trong một thiết bị hoặc viewport đã cho.

Cách chúng làm việc

Container là phần tử layout cơ bản nhất trong Bootstrap và là bắt buộc khi sử dụng hệ thống lưới mặc định của chúng tôi. Container được sử dụng để chứa đựng, đệm, và (thỉnh thoảng) đặt nội dung vào giữa. Mặc dù các container có thể được lồng nhau, nhưng hầu hết các layout không bắt buộc một container được lồng nhau.

Bootstrap đến với ba container khác nhau:

  1. .container, nó thiết lập một max-width tại mỗi responsive breakpoint.
  2. .container-{breakpoint}, nó có chiều rộng là: 100% cho đến khi breakpoint được chỉ định.
  3. .container-fluid, nó có chiều rộng là: 100% tại tất cả các breakpoint.

Table bên dưới minh họa cách chiều rộng tối đa của mỗi container so sánh với .container gốc và .container-fluid trên mỗi breakpoint.

Container mặc định

.container mặc định của chúng tôi là một responsive container có chiều rộng cố định, có nghĩa là max-width của nó sẽ thay đổi tại mỗi breakpoint.


Các responsive container

Các responsive container cho phép bạn chỉ định một class có độ rộng là 100% cho đến khi đạt đến breakpoint được chỉ định, sau đó chúng tôi áp dụng max-width cho từng breakpoint cao hơn. Ví dụ, .container-sm sẽ có độ rộng là 100% cho đến khi đạt đến sm breakpoint, sau đó chúng tôi áp dụng max-width cho từng breakpoint cao hơn là md, lg, xl, và xxl.


Các fluid container

Hãy sử dụng .container-fluid cho một container có chiều rộng toàn bộ, nó sẽ kéo dài qua toàn bộ chiều rộng của viewport.


Sass variables

Như được trình bày ở trên, Bootstrap tạo ra một loạt các container class đã được định nghĩa trước để giúp bạn xây dựng layout mà bạn mong muốn. Bạn có thể tùy chỉnh các container class đã được định nghĩa trước này bằng cách chỉnh sửa tập tin Sass map ( _variables.scss):


Sass mixins

Ngoài việc tùy chỉnh Sass ra, bạn cũng có thể tạo ra các container của riêng mình với Sass mixin của chúng tôi.



Sunday, August 20, 2023

Breakpoints

Breakpoints

Các breakpoint thì có thể tùy biến chiều rộng, chúng xác định responsive layout của bạn hoạt động trên các thiết bị hoặc các kích thước viewport như thế nào trong Bootstrap.

Các khái niệm cốt lõi

  1. Các breakpoint là các khối được xây dựng sẵn của responsive design. Hãy sử dụng chúng để kiểm soát khi layout của bạn có thể được làm thích nghi tại một viewport hoặc kích thước thiết bị cụ thể.
  2. Sử dụng các media query để kiến trúc CSS của bạn bởi breakpoint. Media query là một tính năng của CSS nó cho phép bạn áp dụng có điều kiện các style dựa vào một tập hợp các tham số của trình duyệt và hệ điều hành. Chúng tôi thường thường sử dụng nhiều nhất min-width trong các media query của mình.
  3. Ưu tiên cho các thiết bị di động trước, responsive design là mục tiêu. CSS của Bootstrap tập trung vào áp dụng các style tối thiểu để tạo ra một layout làm việc tại breakpoint nhỏ nhất, và sau đó sắp từng lớp trên các style để điều chỉnh thiết kế đó cho các thiết bị lớn hơn. Điều này tối ưu hóa CSS của bạn, cải thiện thời gian hiển thị, và cung cấp một trải nghiệm tuyệt vời cho khách truy cập của bạn.

Các breakpoint có sẵn

Bootstrap bao gồm sáu breakpoint mặc định, đôi khi được gọi là các tầng lưới, để xây dựng các trang web có thể hiển thị tốt trên nhiều thiết bị. Các breakpoint này có thể được tùy chỉnh nếu như bạn đang sử dụng các tập tin nguồn Sass của chúng tôi.

Mỗi breakpoint được chọn lựa để thoải mái chứa các container có chiều rộng là bội số của 12. Các breakpoint cũng là đại diện cho một tập hợp con của các kích thước thiết bị và các kích thước viewport phổ biến — chúng không nhắm mục tiêu cụ thể mọi trường hợp sử dụng hoặc thiết bị. Thay vào đó, các phạm vi cung cấp một nền tảng vững chắc và nhất quán để xây dựng cho hầu hết mọi thiết bị.

Các breakpoint này có thể tùy chỉnh thông qua Sass — bạn sẽ tìm thấy chúng trong bản đồ Sass trong tập tin _variables.scss của chúng tôi.

Media queries

Vì Bootstrap được phát triển để ưu tiên cho thiết bị di động, nên chúng tôi sử dụng một ít media query để tạo ra các breakpoint hợp lý cho các layout và các interface của chúng tôi. Các breakpoint này chủ yếu dựa trên chiều rộng tối thiểu của viewport và cho phép chúng ta tăng số lượng các phần tử khi viewport thay đổi.

Min-width

Bootstrap chủ yếu sử dụng các phạm vi media query — hoặc các breakpoint sau — trong các tập tin nguồn Sass cho layout, grid system, và các component của chúng tôi.


Các Sass mixin này dịch sang CSS đã biên dịch của chúng tôi bằng cách sử dụng các giá trị được khai báo trong các biến Sass của chúng tôi. Ví dụ:

Max-width

Chúng tôi thỉnh thoảng sử dụng các media query đi theo hướng khác (kích thước màn hình đã cho hoặc nhỏ hơn):

Các mixin này lấy các breakpoint đã được khai báo đó, trừ đi .02px khỏi chúng, và sử dụng chúng như là các giá trị max-width của chúng tôi. Ví dụ:

Tại sao lại trừ đi .02px? Các trình duyệt hiện tại chưa hỗ trợ range context queries, vì vậy chúng ta đang phải làm việc xung quanh các sự hạn chế của các prefix là min- và max- và các viewport với chiều rộng rất nhỏ bé (nó có thể xảy ra dưới các điều kiện nhất định trên các thiết bị có dpi cao, ví dụ vậy) bằng cách sử dụng các giá trị với độ chính xác cao hơn.

Single breakpoint

Ngoài ra cũng có các media query và các mixin để nhắm đến một đoạn kích thước màn hình riêng rẽ bằng cách sử dụng các breakpoint có chiều rộng tối thiểu và tối đa.


Ví dụ @include media-breakpoint-only(md) { ... } sẽ có kết quả là:


Between breakpoints

Tương tự, các media query có thể kéo dài qua nhiều chiều rộng breakpoint:


Nó trả về kết quả là:



Grid system

Hãy sử dụng hệ thống lưới flexbox mạnh mẽ, ưu tiên cho thiết bị di động của chúng tôi để xây dựng các bố cục ở mọi hình dạng và kích thước n...