213 of 313 menu

Thuộc tính grid-template-columns

Thuộc tính grid-template-columns xác định số lượng và chiều rộng của các cột mà một phần tử sẽ chiếm trong grid hoặc lưới. Thuộc tính được chỉ định trong phần tử cha và xác định chiều rộng của các cột cho các phần tử con. Trong giá trị của thuộc tính, chúng ta chỉ định chiều rộng cột bằng bất kỳ đơn vị kích thước nào.

Khi chỉ định giá trị bằng pixel trong thuộc tính, kích thước cột sẽ chính xác tương ứng. Nếu chúng ta đặt từ auto, các cột sẽ lấp đầy tất cả không gian có sẵn. Việc sử dụng đơn vị fr (fraction - phần) có nghĩa là tất cả không gian sẽ được chia thành các phần bằng nhau. Ưu điểm của fr là khả năng thích ứng của nó với các vùng chứa khác nhau hoặc độ phân giải màn hình, vì fr chỉ đơn giản chia chúng thành số lượng phần được chỉ định mà không gắn với kích thước chính xác bằng pixel.

Cú pháp

bộ chọn { grid-template-columns: chiều rộng cột; }

Ví dụ

Hãy đặt chiều rộng cột cho các phần tử trong grid của chúng ta:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: 50px 100px 200px 50px; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Hãy chỉ định chiều rộng cố định bằng pixel cho cột thứ nhất và thứ ba, còn cột thứ hai hãy để tự động lấp đầy không gian có sẵn:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> </div> #parent { display: grid; grid-template-columns: 100px auto 150px; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Và bây giờ hãy sử dụng thuộc tính grid-template-columns để làm sao cho cột thứ nhất và thứ hai chiếm một phần của vùng chứa, còn cột thứ ba - ba phần:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> </div> #parent { display: grid; grid-template-columns: 1fr 1fr 3fr; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Các giá trị được chỉ định bằng đơn vị fr có thể ở dạng phân số. Hãy thay đổi ví dụ trước, chỉ định chiều rộng cho cột thứ hai và thứ ba bằng số thập phân:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> </div> #parent { display: grid; grid-template-columns: 1fr 0.5fr 2.5fr; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Hãy chỉ định hàm repeat() trong thuộc tính grid-template-columns, hàm này sẽ thông báo cho vùng chứa rằng tất cả ba cột phải có cùng chiều rộng:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> </div> #parent { display: grid; grid-template-columns: repeat(3, 1fr); border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Và bây giờ hãy thay đổi ví dụ trước để thêm cột thứ tư vào ba cột giống nhau, cột này sẽ chiếm hai phần của vùng chứa:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: repeat(3, 1fr) 2fr; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Hãy đặt chiều rộng cho hai cột đầu tiên là một phần của vùng chứa, còn hai cột cuối cùng - hai phần:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: repeat(2, 1fr) repeat(2, 2fr); border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Và bây giờ hãy đặt chiều rộng cho các cột bằng cách kết hợp các giá trị, được chỉ định bằng hàm repeat() và các đơn vị tự do fr:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </div> #parent { display: grid; grid-template-columns: repeat(2, 1fr) 3fr repeat(2, 2fr); border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Cũng có thể chỉ định giá trị auto-fill trong hàm repeat(), giá trị này sẽ lấp đầy vùng chứa của chúng ta bằng các cột giống nhau với chiều rộng mong muốn:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: repeat(auto-fill, 200px); border: 2px solid #696989; padding: 10px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Rất tiện lợi khi cùng với auto-fill chỉ định hàm minmax, hàm này đặt phạm vi chiều rộng cột từ giá trị tối thiểu đến tối đa. Nếu chiều rộng vùng chứa không chứa được tất cả các cột, thì một số trong chúng sẽ di chuyển xuống một dòng mới, đồng thời các cột trong dòng sẽ được phân bổ đều trong đó. Hãy thay đổi ví dụ trước, chỉ định hàm minmax trong đó. Để xem các biến thể bố trí cột khác nhau hãy thay đổi chiều rộng trang trình duyệt của bạn:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); border: 2px solid #696989; padding: 10px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Bây giờ hãy chỉ định thuộc tính auto-fit, điểm khác biệt của nó so với auto-fill là nó điều chỉnh số lượng cột cho phù hợp với chiều rộng có sẵn của vùng chứa, mở rộng hoặc thu nhỏ chúng:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border: 2px solid #696989; padding: 10px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Ngoài fr còn có thể sử dụng giá trị bằng %, giá trị này cũng xác định phần nào của vùng chứa mà cột sẽ chiếm. Đồng thời, trước tiên kích thước cột bằng % sẽ được tính toán, còn không gian trống còn lại sẽ được chia thành các phần:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div> #parent { display: grid; grid-template-columns: 50% 1fr 2fr 30%; border: 2px solid #696989; padding: 10px; width: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Hãy sử dụng cùng lúc các thuộc tính grid-template-columnsgrid-template-rows:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> </div> #parent { display: grid; grid-template-rows: 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr; border: 2px solid #696989; padding: 10px; width: 400px; height: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Hãy sử dụng các thuộc tính grid-template-columnsgrid-template-rows tạo một bảng gồm chín ô, được sắp xếp thành ba hàng. Hơn nữa, hàng thứ hai và thứ ba sẽ có cùng chiều rộng, còn mỗi cột - chiều rộng khác nhau:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> </div> #parent { display: grid; grid-template-rows: 60px 1fr 60px; grid-template-columns: 20% 1fr 15%; border: 2px solid #696989; padding: 10px; width: 400px; height: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Ví dụ

Và bây giờ trong bảng từ ví dụ trước hãy làm cho hàng trên cùng có chiều rộng hai phần, còn cột đầu tiên - nửa phần:

<div id="parent"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> </div> #parent { display: grid; grid-template-rows: 2fr 1fr 1fr; grid-template-columns: 0.5fr 1fr 1fr; border: 2px solid #696989; padding: 10px; width: 400px; height: 400px; } #parent > div { padding: 10px; border: 1px solid #696989; }

:

Xem thêm

  • thuộc tính grid-template-rows,
    thuộc tính này xác định số lượng và chiều rộng các hàng trong grid
  • thuộc tính grid-auto-columns,
    thuộc tính này xác định số lượng và chiều rộng cột trong grid ngầm định
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối