Sự khác biệt giữa col-lg- *, col-md- * và col-sm- * trong Bootstrap là gì?


544

Sự khác biệt giữa các là gì col-lg-*, col-md-*col-sm-*tại Twitter Bootstrap?


1
Xem getbootstrap.com/css để biết pxkích thước của mỗi kích thước.
Josh Crozier

8
mà tôi biết nhưng không hiểu hiệu ứng của nó
StreetCoder

Tôi thấy nó khó hiểu câu hỏi này có bootstrap-3bootstrap-4như một thẻ vì chúng hoàn toàn khác nhau
Kolob Canyon

Câu trả lời:


529

Cập nhật 2019 ...

Các Bootstrap 3 lưới đi kèm trong 4 tầng (hoặc "breakpoint") ...

  • Thêm nhỏ (cho điện thoại thông minh .col-xs-*)
  • Nhỏ (cho máy tính bảng .col-sm-*)
  • Trung bình (đối với máy tính xách tay .col-md-*)
  • Lớn (cho máy tính xách tay / máy tính để bàn .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-3là 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-3là 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, smhay 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-3có 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, mdlglướ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 xslướ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.


Bootstrap 4

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

Bootstrap 4 Lưới Demo

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


8
Tác dụng của việc làm tổ col-sm trong col-md là gì? Làm thế nào điều đó sẽ thay đổi hành vi của col-sm và col-md?
Donato

1
Nó làm cho phần smcò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
Zim

@Skelly, tôi có thể yêu cầu bạn xem xét một câu hỏi liên quan đến thiết kế đáp ứng ở đây không: tinyurl.com/nadfh2u ?
Istiaque Ahmed

Tại sao <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ả)?
jbyrd

Cảm ơn .. Tôi đã sửa rằng: <div class="col-lg-3 col-md-3 col-sm-3">..</div>giống như<div class="col-sm-3">..</div>
Zim

252

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.


33
Câu trả lời này giải thích nó tốt nhất. Ít nhất là đối với tôi nó đã làm. Đây là tất cả những gì tôi cần biết: "Nếu bạn chọn col-lg, thì các cột sẽ xếp chồng khi chiều rộng <1200px.". Cảm ơn!
Jo Smo

3
Đây là cách bạn giải thích trong một chuyến đi thang máy và vẫn hiểu được lời giải thích của bạn.
Kevin Le - Khnle

Tôi biết cái này đã cũ, vì vậy nó không thành vấn đề gì - tôi chọn nó cuối cùng sẽ xếp chồng lên các kích cỡ khác nhau?
null

3
Điều này chỉ làm mới lại sự hiểu biết của tôi về Bootstrap.
kds23


24

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.


5
Tôi đoán đây là những gì OP đã yêu cầu (không phải số nguyên), nhưng đã bị đốt cháy.
bvgheluwe

Tôi đồng ý đây phải là câu trả lời được chấp nhận vì nó nêu chính xác hành vi của các kích cỡ khác nhau.
MeMeMax

10

Kích thước thiết bị và tiền tố lớp:

  • Thiết bị cực nhỏ Điện thoại (<768px) - .col-xs-
  • Máy tính bảng nhỏ (≥768px) - .col-sm-
  • Máy tính để bàn trung bình (≥992px) - .col-md-
  • Máy tính để bàn thiết bị lớn (≥1200px) - .col-lg-

Tùy chọn lưới:

Hệ thống lưới Bootstarp

Tham khảo: Hệ thống lưới


8

TL; DR

.col-X-Yphươ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.


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

1

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%

Trình duyệt 175 phần trăm - các phần tử xếp chồng


1

Hãy không phức tạp Bootstrap!

cột bootstrap đáp ứng

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 576pxnhư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 colsẽ 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-xxlớp học!

Tôi đã sử dụng col-smvì tôi muốn chia các cột thành các dòng riêng biệt dưới 576px. 4 col-xxlớ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-smsẽ phá vỡ dưới 576px, col-mdsẽ phá vỡ dưới 768px, col-lgsẽ phá vỡ dưới 992px và col-xlsẽ phá vỡ dưới 1200px

Lưu ý rằng không có col-xslớp trong bootstrap 4.

Hệ thống lưới Bootstrap

Đ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-*col-xx-*để tùy chỉnh chiều rộng.

Hãy nhớ trong ví dụ trên tôi đã đề cập rằng colhoặc col-xxlấ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ể, colchú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 colnê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-4như 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 colvà 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>

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

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>

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

Nó trông như thế nào trong hành động?

lưới đáp ứng

Nếu tổng của colhơn 12 thì sao? Sau đó, colsẽ 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>

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

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

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

Bạn có thể chơi xung quanh đây: https://jsfiddle.net/JerryGidel/6vqno0Lm/



-1

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

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.