Các đơn vị khung nhìn lớn, nhỏ và động

Các đơn vị CSS mới có tính đến khung nhìn trên thiết bị di động có thanh công cụ động.

Khung nhìn và các đơn vị của khung nhìn

Để đặt kích thước cho đối tượng cao bằng khung nhìn, bạn có thể sử dụng đơn vị vwvh.

  • vw = 1% chiều rộng của kích thước khung nhìn.
  • vh = 1% chiều cao của kích thước khung nhìn.

Tạo cho một phần tử có chiều rộng là 100vw và chiều cao là 100vh và thành phần này sẽ bao phủ toàn bộ khung nhìn.

Một phần tử màu xanh dương nhạt được đặt thành 100vw x 100vh, bao phủ toàn bộ khung nhìn. Bản thân khung nhìn được biểu thị bằng đường viền nét đứt màu xanh dương.
Một phần tử màu xanh dương nhạt được đặt thành 100vw x 100vh, bao phủ toàn bộ khung nhìn.
Bản thân khung nhìn được biểu thị bằng đường viền nét đứt màu xanh dương.

Các đơn vị vwvh đã có trong trình duyệt cùng với các đơn vị bổ sung này

  • vi = 1% kích thước trục cùng dòng của khung nhìn.
  • vb = 1% kích thước trục khối của khung nhìn.
  • vmin = giá trị nhỏ hơn của vw hoặc vh.
  • vmax = giá trị lớn hơn của vw hoặc vh.

Những đơn vị này có hỗ trợ trình duyệt tốt.

Hỗ trợ trình duyệt

  • 20
  • 12
  • 19
  • 6

Nhu cầu đơn vị khung nhìn mới

Mặc dù các đơn vị hiện tại hoạt động tốt trên máy tính, nhưng câu chuyện khác trên thiết bị di động lại khác. Tại đó, kích thước khung nhìn chịu ảnh hưởng của việc có hay không có thanh công cụ động. Đó là những giao diện người dùng như thanh địa chỉ và thanh thẻ.

Mặc dù kích thước khung nhìn có thể thay đổi, nhưng kích thước vwvh thì không. Do đó, các phần tử có kích thước cao 100vh sẽ tràn ra khỏi khung nhìn.

100vh trên thiết bị di động là quá cao khi tải.
100vh trên thiết bị di động là quá cao khi tải.

Khi cuộn xuống, các thanh công cụ động này sẽ rút lại. Ở trạng thái này, các phần tử có kích thước cao 100vh sẽ bao phủ toàn bộ khung nhìn.

100vh trên thiết bị di động là "chính xác" khi giao diện người dùng của Tác nhân người dùng được rút lại.
Trạng thái 100vh trên thiết bị di động là "chính xác" khi giao diện người dùng của Tác nhân người dùng được rút lại.

Để giải quyết vấn đề này, các trạng thái khác nhau của khung nhìn đã được chỉ định trong Nhóm hoạt động CSS.

  • Khung nhìn lớn: Kích thước khung nhìn giả định mọi giao diện UA được mở rộng một cách linh động và rút lại để rút lại.
  • Khung nhìn nhỏ: Kích thước khung nhìn: giả sử mọi giao diện UA được mở rộng và rút lại một cách linh động để được mở rộng.
Hình ảnh trực quan của các khung nhìn lớn và nhỏ.
Hình ảnh trực quan của khung nhìn lớn và nhỏ.

Khung nhìn mới cũng có các đơn vị được chỉ định cho chúng:

  • Các đơn vị biểu thị khung nhìn lớn có tiền tố lv. Đơn vị là lvw, lvh, lvi, lvb, lvminlvmax.
  • Các đơn vị biểu thị khung nhìn nhỏ có tiền tố sv. Đơn vị là svw, svh, svi, svb, svminsvmax.

Kích thước của các đơn vị phần trăm khung nhìn này là cố định (và do đó ổn định) trừ phi chính khung nhìn đó được đổi kích thước.

Hai hình ảnh trực quan của trình duyệt dành cho thiết bị di động được đặt cạnh nhau. Một phần tử có kích thước là 100svh và phần còn lại có kích thước 100lvh.
Hai hình ảnh trình duyệt dành cho thiết bị di động được đặt cạnh nhau.
Một hình ảnh có kích thước của một thành phần là 100svh và hình ảnh còn lại là 100lvh.

Ngoài các khung nhìn lớn và nhỏ, còn có một khung nhìn linh động cho thấy sự cân nhắc linh hoạt về giao diện người dùng UA:

  • Khi thanh công cụ động được mở rộng, khung nhìn động sẽ bằng kích thước của khung nhìn nhỏ.
  • Khi thanh công cụ động được rút lại, khung nhìn động sẽ bằng kích thước của khung nhìn lớn.

Các đơn vị đi kèm có tiền tố dv: dvw, dvh, dvi, dvb, dvmindvmax. Kích thước của chúng bị giới hạn giữa phiên bản lv*sv*.

100dvh tự điều chỉnh thành kích thước khung nhìn lớn hoặc nhỏ.
100dvh tự điều chỉnh thành kích thước khung nhìn lớn hoặc nhỏ.

Các đơn vị này xuất hiện trong Chrome 108, tham gia Safari và Firefox đã được hỗ trợ.

Hỗ trợ trình duyệt

  • 108
  • 108
  • 101
  • 15,4

Chú ý

Có một số điều cần biết về Đơn vị khung nhìn:

  • Không có đơn vị khung nhìn nào tính đến kích thước của thanh cuộn. Trên các hệ thống đã bật thanh cuộn cổ điển, do đó, một phần tử có kích thước là 100vw sẽ quá rộng. Đây là theo quy cách.

  • Giá trị cho khung nhìn động không cập nhật ở tốc độ 60 khung hình/giây. Việc cập nhật trong tất cả trình duyệt sẽ bị điều tiết khi giao diện người dùng UA mở rộng hoặc rút lại. Một số trình duyệt thậm chí gỡ lỗi cập nhật hoàn toàn tuỳ thuộc vào cử chỉ (cuộn chậm so với vuốt) được sử dụng.

  • Bàn phím ảo (còn gọi là bàn phím ảo) không được xem là một phần của giao diện người dùng UA. Do đó, điều này không ảnh hưởng đến kích thước của các đơn vị khung nhìn. Trong Chrome, bạn có thể chọn tham gia hành vi mà sự hiện diện của bàn phím ảo ảnh hưởng đến các đơn vị khung nhìn.

Tài nguyên bổ sung

Để tìm hiểu thêm về khung nhìn và các đơn vị này, hãy xem tập này của HTTP 203. Trong đó, Bramus cho Jake biết mọi thông tin về các khung nhìn khác nhau và giải thích chính xác cách xác định kích thước của các đơn vị này.

Tài liệu đọc thêm:

Một phần của Loạt chương trình tương tác mới