The CSS Display Property is Changing Forever

Tóm tắt ngắn:
- Video giới thiệu về sự thay đổi lớn trong cách sử dụng thuộc tính
display
trong CSS, từ việc chỉ sử dụng một giá trị duy nhất sang việc sử dụng hai giá trị. - Các điểm chính bao gồm: sự tiến hóa của thuộc tính
display
, các giá trị đa dạng nhưblock
,inline
,flex
,grid
,inline-flex
,inline-grid
,contents
,flow
,flow-root
,list-item
, và cách sử dụng hai giá trị để kiểm soát hiển thị của phần tử và con của nó. Video cũng đề cập đến khái niệm "block formatting context" và cách nó ảnh hưởng đến margin collapsing. - Ứng dụng của việc sử dụng hai giá trị
display
mang lại sự linh hoạt cao hơn trong việc thiết kế layout, đặc biệt là khi kết hợp vớiflexbox
vàgrid
. Thuộc tínhcontents
cho phép nhóm các phần tử mà không ảnh hưởng đến layout. - Video hướng dẫn chi tiết cách sử dụng hai giá trị
display
và minh họa bằng các ví dụ mã nguồn.
Tóm tắt chi tiết:
Video được chia thành nhiều phần chính:
Phần 1: Sự tiến hóa của thuộc tính display
: Ban đầu, display
chỉ có các giá trị đơn giản như block
, inline
, và inline-block
. inline-block
cho phép thêm padding và height cho các phần tử inline, nhưng vẫn có những hạn chế. Sau đó, display
được mở rộng để kiểm soát cả cách hiển thị của phần tử và con của nó (ví dụ: flex
, grid
).
Phần 2: Sử dụng hai giá trị display
: Để giải quyết sự hạn chế của việc chỉ sử dụng một giá trị, CSS cho phép sử dụng hai giá trị cho display
. Giá trị đầu tiên xác định cách hiển thị của phần tử (block, inline,...), giá trị thứ hai xác định cách hiển thị con của nó (flex, grid, flow...). Ví dụ: inline flex
tạo ra một container flex có kiểu inline. Nếu chỉ định một giá trị, giá trị mặc định cho phần tử là block
và cho con là flow
.
Phần 3: flow
và flow-root
: flow
sử dụng layout chuẩn của tài liệu. flow-root
tạo ra một "block formatting context", ngăn chặn margin collapsing. Video minh họa điều này bằng ví dụ về margin của các phần tử kế tiếp nhau.
Phần 4: contents
: Thuộc tính contents
làm cho phần tử như thể không tồn tại trong DOM, nhưng vẫn giữ lại các thuộc tính CSS của con. Điều này hữu ích khi nhóm các phần tử mà không muốn ảnh hưởng đến layout. Tuy nhiên, cần lưu ý đến vấn đề truy cập cho người dùng màn hình đọc.
Phần 5: list-item
: list-item
tạo ra kiểu hiển thị như một mục trong danh sách. Nó có thể được sử dụng với cả hai giá trị của display
(ví dụ: block list-item
, inline list-item
).
Phần 6: Các giá trị khác của display
: Video đề cập đến các giá trị khác như các giá trị liên quan đến bảng (table
, table-caption
,...) và ruby
, nhưng khuyến cáo nên sử dụng các phần tử HTML tương ứng thay vì dựa vào các giá trị này của display
.
Phần 7: Kết luận: Video tóm tắt lại các điểm chính và giới thiệu khóa học CSS của tác giả.
Những câu nói đáng chú ý:
- "…the display property actually takes two values not just one…"
- "…it's going to default the first portion of your display to block always…"
- "…flow root creates that new block formatting context…"
- "…when you use a display of contents essentially what CSS and HTML is doing is it's pretending that this outer div doesn't even exist at all…"
Tóm lại, video cung cấp một cái nhìn sâu sắc về sự phát triển và cách sử dụng linh hoạt của thuộc tính display
trong CSS hiện đại, nhấn mạnh vào việc sử dụng hai giá trị và các thuộc tính mới như contents
và flow-root
.