Sự khác biệt giữa các là gì col-lg-*
, col-md-*
và col-sm-*
tại Twitter Bootstrap?
bootstrap-3
và bootstrap-4
như một thẻ vì chúng hoàn toàn khác nhau
Sự khác biệt giữa các là gì col-lg-*
, col-md-*
và col-sm-*
tại Twitter Bootstrap?
bootstrap-3
và bootstrap-4
như một thẻ vì chúng hoàn toàn khác nhau
Câu trả lời:
Cập nhật 2019 ...
Các Bootstrap 3 lưới đi kèm trong 4 tầng (hoặc "breakpoint") ...
.col-xs-*
).col-sm-*
).col-md-*
).col-lg-*
).Các kích thước lưới này cho phép bạn kiểm soát hành vi lưới trên các độ rộng khác nhau. Các tầng khác nhau được kiểm soát bởi các truy vấn phương tiện CSS .
Vì vậy, trong lưới 12 cột của Bootstrap ...
col-sm-3
là 3 trong số 12 cột rộng (25%) trên chiều rộng thiết bị nhỏ điển hình (> 768 pixel)
col-md-3
là 3 trong số 12 cột rộng (25%) trên chiều rộng thiết bị trung bình điển hình (> 992 pixel)
Lớp nhỏ hơn ( xs
, sm
hay md
) cũng xác định kích thước cho độ rộng màn hình lớn hơn . Vì vậy, đối với cột có cùng kích thước trên tất cả các tầng, chỉ cần đặt chiều rộng cho chế độ xem nhỏ nhất ...
<div class="col-lg-3 col-md-3 col-sm-3">..</div>
giống như,
<div class="col-sm-3">..</div>
Các bậc lớn hơn được ngụ ý. Bởi vì col-sm-3
có nghĩa là 3 units on sm-and-up
, trừ khi được ghi đè cụ thể bởi một tầng lớn hơn sử dụng kích thước khác.
xs
(mặc định)> bị ghi đè bởi sm
> bị ghi đè bởi md
> bị ghi đè bởilg
Kết hợp các lớp để sử dụng độ rộng cột thay đổi trên các kích thước lưới khác nhau . Điều này tạo ra một bố cục đáp ứng.
<div class="col-md-3 col-sm-6">..</div>
Các sm
, md
và lg
lưới sẽ tất cả "đống" theo chiều dọc trên màn hình / khung nhìn nhỏ hơn 768 pixel. Đây là nơi xs
lưới phù hợp. Các cột sử dụng các col-xs-*
lớp sẽ không xếp chồng theo chiều dọc và tiếp tục thu nhỏ trên các màn hình nhỏ nhất.
Thay đổi kích thước trình duyệt của bạn bằng bản demo này và bạn sẽ thấy các hiệu ứng mở rộng lưới.
Trong Bootstrap 4 có một -xl-
kích thước mới , hãy xem bản demo này . Ngoài ra, phần -xs-
tử đã bị xóa , vì vậy các cột nhỏ nhất chỉ đơn giản là col-1
, col-2
.. col-12
, v.v.
col-*
- 0 (xs)
col-sm-*
- 576px
col-md-*
- 768px
col-lg-*
- 992px
col-xl-*
- 1200px
Ngoài ra, Bootstrap 4 bao gồm các cột bố trí tự động mới . Đây cũng có breakpoint đáp ứng ( col
, col-sm
, col-md
, vv ..), nhưng không có% độ rộng xác định. Do đó, các cột bố trí tự động điền chiều rộng bằng nhau trên hàng.
Bài viết này giải thích thêm về lưới Bootstrap
sm
còn lại lồng trong các cột ở chiều rộng hẹp hơn. Hãy tự mình thử: codeply.com/go/LGyFiEJqXq
<div class="col-sm-3">..</div>
giống <div class="col-lg-3 col-md-4 col-sm-3">..</div>
và không <div class="col-lg-3 col-md-3 col-sm-3">..</div>
(xx-3 cho tất cả)?
<div class="col-lg-3 col-md-3 col-sm-3">..</div>
giống như<div class="col-sm-3">..</div>
Các tài liệu bootstrap giải thích nó, nhưng tôi vẫn phải mất một thời gian để có được nó. Nó có ý nghĩa hơn khi tôi giải thích nó cho bản thân mình theo một trong hai cách:
Nếu bạn nghĩ về các cột bắt đầu theo chiều ngang, thì bạn có thể chọn khi bạn muốn chúng xếp chồng lên nhau .
Ví dụ: nếu bạn bắt đầu với các cột: ABC
Bạn quyết định khi nào họ nên xếp chồng lên như thế này:
Một
B
C
Nếu bạn chọn col-lg, thì các cột sẽ xếp chồng khi chiều rộng <1200px.
Nếu bạn chọn col-md, thì các cột sẽ xếp chồng khi chiều rộng <992px.
Nếu bạn chọn col-sm, thì các cột sẽ xếp chồng khi chiều rộng <768px.
Nếu bạn chọn col-xs, thì các cột sẽ không bao giờ xếp chồng.
Mặt khác, nếu bạn nghĩ về các cột bắt đầu xếp chồng lên nhau, thì bạn có thể chọn điểm nào chúng trở thành nằm ngang :
Nếu bạn chọn col-sm, thì các cột sẽ trở thành ngang khi chiều rộng> = 768px.
Nếu bạn chọn col-md, thì các cột sẽ trở thành ngang khi chiều rộng> = 992px.
Nếu bạn chọn col-lg, thì các cột sẽ trở thành ngang khi chiều rộng> = 1200px.
Từ tài liệu Twitter Bootstrap :
.col-sm-*
,.col-md-*
,.col-lg-*
.Tôi nghĩ khía cạnh khó hiểu của điều này là thực tế rằng BootStrap 3 là một hệ thống phản hồi đầu tiên trên thiết bị di động và không giải thích được điều này ảnh hưởng đến hệ thống phân cấp col-xx-n trong phần đó của tài liệu Bootstrap. Điều này khiến bạn tự hỏi điều gì xảy ra trên các thiết bị nhỏ hơn nếu bạn chọn một giá trị cho các thiết bị lớn hơn và khiến bạn tự hỏi liệu có cần phải chỉ định nhiều giá trị hay không. (Bạn không)
Tôi sẽ cố gắng làm rõ điều này bằng cách nói rằng ... Các loại hạt thấp hơn (xs, sm) cố gắng giữ lại diện mạo bố cục trên màn hình nhỏ hơn và loại lớn hơn (md, lg) sẽ chỉ hiển thị chính xác trên màn hình lớn hơn nhưng sẽ bọc cột trên các thiết bị nhỏ hơn. Các giá trị được trích dẫn trong các ví dụ trước đề cập đến ngưỡng mà bootstrap làm giảm sự xuất hiện để phù hợp với vùng màn hình có sẵn.
Điều này có nghĩa trong thực tế là nếu bạn tạo các cột col-xs-n thì chúng sẽ giữ được hình dạng chính xác ngay cả trên các màn hình rất nhỏ, cho đến khi cửa sổ giảm xuống kích thước hạn chế đến mức trang có thể được hiển thị chính xác. Điều này có nghĩa là các thiết bị có chiều rộng từ 768px trở xuống sẽ hiển thị bảng của bạn khi bạn thiết kế chứ không phải ở dạng xuống cấp (dạng cột đơn hoặc bọc). Rõ ràng điều này vẫn phụ thuộc vào nội dung của các cột và đó là toàn bộ vấn đề. Nếu trang cố gắng hiển thị nhiều cột dữ liệu lớn, cạnh nhau trên một màn hình nhỏ thì các cột sẽ tự nhiên bao bọc một cách khủng khiếp nếu bạn không tính đến nó. Do đó, tùy thuộc vào dữ liệu trong các cột, bạn có thể quyết định điểm bố trí được hiển thị đầy đủ để hiển thị nội dung đầy đủ.
ví dụ: Nếu trang của bạn chứa ba cột col-sm-n, bootstrap sẽ bọc các cột thành hàng khi chiều rộng trang giảm xuống dưới 992px. Điều này có nghĩa là dữ liệu vẫn hiển thị nhưng sẽ yêu cầu cuộn dọc để xem nó. Nếu bạn không muốn bố cục của mình xuống cấp, hãy chọn xs (miễn là dữ liệu của bạn có thể được hiển thị đầy đủ trên thiết bị có độ phân giải thấp hơn trong ba cột)
Nếu vị trí ngang của dữ liệu là quan trọng thì bạn nên cố gắng chọn các giá trị độ chi tiết thấp hơn để giữ bản chất trực quan. Nếu vị trí ít quan trọng hơn nhưng trang phải hiển thị trên tất cả các thiết bị thì nên sử dụng giá trị cao hơn.
Nếu bạn chọn col-lg-n thì các cột sẽ hiển thị chính xác cho đến khi chiều rộng màn hình giảm xuống dưới ngưỡng xs là 1200px.
Kích thước thiết bị và tiền tố lớp:
.col-xs-
.col-sm-
.col-md-
.col-lg-
Tùy chọn lưới:
Tham khảo: Hệ thống lưới
TL; DR
.col-X-Y
phương tiện trên kích thước màn hình X và lên , căng yếu tố này để điền vào cột Y .
Bootstrap cung cấp một lưới gồm 12 cột mỗi .row
, vì vậy Y = 3 có nghĩa là chiều rộng = 25%.
xs, sm, md, lg
lần lượt là các kích cỡ cho điện thoại thông minh, máy tính bảng, máy tính xách tay, máy tính để bàn.
Điểm chỉ định chiều rộng khác nhau trên các kích thước màn hình khác nhau là cho phép bạn làm cho mọi thứ lớn hơn trên màn hình nhỏ hơn.
Thí dụ
<div class="col-lg-6 col-xs-12">
Ý nghĩa: 50% chiều rộng trên Máy tính để bàn, 100% chiều rộng trên Điện thoại di động, Máy tính bảng và Máy tính xách tay.
.col-xs-$ Extra Small Phones Less than 768px
.col-sm-$ Small Devices Tablets 768px and Up
.col-md-$ Medium Devices Desktops 992px and Up
.col-lg-$ Large Devices Large Desktops 1200px and Up
Một trường hợp cụ thể: Trước khi tìm hiểu hệ thống lưới bootstrap, hãy đảm bảo thu phóng trình duyệt được đặt thành 100% (một trăm phần trăm). Ví dụ: Nếu độ phân giải màn hình là (1600px x 900px) và thu phóng trình duyệt là 175%, thì các phần tử "bootstrap-ped" sẽ được xếp chồng lên nhau.
HTML
<div class="container-fluid">
<div class="row">
<div class="col-lg-4">class="col-lg-4"</div>
<div class="col-lg-4">class="col-lg-4"</div>
</div>
</div>
Thu phóng Chrome 100%
Trình duyệt 100 phần trăm - các yếu tố được đặt theo chiều ngang
Thu phóng Chrome 175%
Lưu ý cách col-sm chiếm 100% chiều rộng (trong các điều khoản khác được chia thành dòng mới) bên dưới 576px
nhưng col thì không. Bạn có thể nhận thấy chiều rộng hiện tại ở trung tâm hàng đầu trong gif.
Đây là mã:
<div class="container">
<div class="row">
<div class="col">col</div>
<div class="col">col</div>
<div class="col">col</div>
</div>
<div class="row">
<div class="col-sm">col-sm</div>
<div class="col-sm">col-sm</div>
<div class="col-sm">col-sm</div>
</div>
</div>
Bootstrap theo mặc định sắp xếp tất cả các cột (col) trong một hàng có chiều rộng bằng nhau. Trong trường hợp này, ba col
sẽ chiếm 100% / 3 chiều rộng mỗi chiều, bất kể kích thước màn hình. Bạn có thể nhận thấy rằng trong gif.
Bây giờ nếu chúng ta chỉ muốn hiển thị một cột trên mỗi dòng tức là cung cấp chiều rộng 100% cho mỗi cột nhưng chỉ dành cho màn hình nhỏ hơn thì sao? Bây giờ đến các col-xx
lớp học!
Tôi đã sử dụng col-sm
vì tôi muốn chia các cột thành các dòng riêng biệt dưới 576px. 4 col-xx
lớp này được Bootstrap cung cấp cho các thiết bị hiển thị khác nhau như điện thoại di động, máy tính bảng, máy tính xách tay, màn hình lớn, v.v.
Vì vậy, col-sm
sẽ phá vỡ dưới 576px, col-md
sẽ phá vỡ dưới 768px, col-lg
sẽ phá vỡ dưới 992px và col-xl
sẽ phá vỡ dưới 1200px
Lưu ý rằng không có
col-xs
lớp trong bootstrap 4.
Điều này khá nhiều tổng hợp. Bạn có thể trở lại làm việc.
Nhưng có thêm một chút cho nó. Bây giờ đến col-*
và col-xx-*
để tùy chỉnh chiều rộng.
Hãy nhớ trong ví dụ trên tôi đã đề cập rằng col
hoặc col-xx
lấy chiều rộng bằng nhau trong một hàng. Vì vậy, nếu chúng ta muốn cung cấp thêm chiều rộng cho một cụ thể, col
chúng ta có thể làm điều này.
Hàng bootstrap được chia thành 12 phần, vì vậy trong ví dụ trên có 3 phần col
nên mỗi phần lấy 12/3 = 4 phần. Bạn có thể coi những phần này là một cách để đo chiều rộng.
Chúng tôi cũng có thể viết rằng trong định dạng col-*
tức là col-4
như thế này:
<div class="row">
<div class="col-4">col</div>
<div class="col-4">col</div>
<div class="col-4">col</div>
</div>
Và nó sẽ không có gì khác biệt bởi vì theo mặc định, bootstrap cho chiều rộng bằng col
(4 + 4 + 4 = 12).
Nhưng, nếu chúng ta muốn đưa 7 phần cho 1 col
, 3 phần cho 2 col
và phần còn lại 2 (12-7-3 = 2) cho thứ 3 col
(7 + 3 + 2 thì tổng cộng là 12), chúng ta chỉ cần làm điều này:
<div class="row">
<div class="col-7">col-7</div>
<div class="col-3">col-3</div>
<div class="col-2">col-2</div>
</div>
và bạn có thể tùy chỉnh độ rộng của col-xx-*
các lớp cũng có.
<div class="row">
<div class="col-sm-7">col-sm-7</div>
<div class="col-sm-3">col-sm-3</div>
<div class="col-sm-2">col-sm-2</div>
</div>
Nó trông như thế nào trong hành động?
Nếu tổng của col
hơn 12 thì sao? Sau đó, col
sẽ thay đổi / điều chỉnh để dòng dưới đây. Có, có thể có bất kỳ số lượng cột cho một hàng!
<div class="row">
<div class="col-12">col-12</div>
<div class="col-9">col-9</div>
<div class="col-6">col-6</div>
<div class="col-6">col-6</div>
</div>
Điều gì sẽ xảy ra nếu chúng ta muốn 3 cột liên tiếp cho màn hình lớn nhưng chia các cột này thành 2 hàng cho màn hình nhỏ?
<div class="row">
<div class="col-12 col-sm">col-12 col-sm TOP</div>
<div class="col col-sm">col col-sm</div>
<div class="col col-sm">col col-sm</div>
</div>
Bạn có thể chơi xung quanh đây: https://jsfiddle.net/JerryGidel/6vqno0Lm/
Tôi nghĩ rằng hình ảnh này là khá tốt để hiểu khái niệm tốt hơn!
để hiểu thêm chi tiết xin vui lòng đi qua liên kết dưới đây:
cũng được sử dụng để báo cho bootstrap có bao nhiêu cột được đặt trong một hàng tùy thuộc vào kích thước màn hình-
col-xs-2
sẽ chỉ hiển thị 2 cột liên tiếp trong màn hình cực nhỏ (xs), giống như cách sm xác định màn hình nhỏ, md (cỡ trung bình), lg (cỡ lớn), nhưng theo quy tắc đầu tiên nhỏ hơn của bootstrap, nếu bạn đề cập
xs-col-2 md-col-4
sau đó 2 cột sẽ được hiển thị ở mỗi hàng cho kích thước màn hình từ xs up đến sm (bao gồm) và thay đổi khi có kích thước tiếp theo, tức là cho md lên tới lg (bao gồm) để hiểu rõ hơn về kích thước màn hình, hãy thử chạy chúng ở các chế độ màn hình khác nhau trong Chế độ nhà phát triển của chrome (ctr + shift + i) và thử các pixel hoặc thiết bị khác nhau
px
kích thước của mỗi kích thước.