- vừa được xem lúc

[CSS] Bài 11 - Gặp Lại Width & Height

0 0 3

Người đăng: Thịnh Trần

Theo Viblo Asia

Trong bài viết này, chúng ta sẽ gặp lại các thuộc tính width & height để thảo luận thêm về chúng. Chúng ta sẽ bắt đầu với một giá trị rất hữu dụng có tên gọi là auto. Sau đó, chúng ta sẽ nói về một vài thuộc tính khác có liên quan.

Giá trị auto

Từ auto - tự động - được sử dụng trong nhiều lĩnh vực và đâu đó nó gắn với cảm giác rất hiện đại. Có thể bạn đã từng nghe thấy tên nhiều đồ vật công nghệ gắn liền với từ này. Và trong CSS thì chúng ta có auto là một giá trị đặc biệt, được sử dụng với nhiều thuộc tính khác nhau. Giá trị này sẽ nói với các trình duyệt web tự động tính toán ra các giá trị thay thế phù hợp cho các thuộc tính CSS.

Hãy giả định rằng chúng ta có 3 tấm ảnh với các kích thước thực tế là 1920x1080, 1600x1000, và 1000x1000. Khi chúng ta nhúng những tấm ảnh này vào một trang web đơn, một thao tác thông minh nên thực hiện đó là thiết lập chiều rộng của các phần tử <img> chiếm 100% độ rộng của container phía bên ngoài. Như vậy thì các tấm ảnh sẽ tự động đáp ứng với mọi kích thước màn hình lớn hay nhỏ. Thế nhưng chờ đã, còn chiều cao của các ảnh thì thế nào?

Những tấm ảnh mà chúng ta vừa sử dụng có tỉ lệ kích thước chiều cao/chiều rộng khác nhau. Vì vậy nên nếu như không muốn có tấm ảnh nào bị hiển thị sai tỉ lệ và méo ảnh thì chúng ta cần phải chỉ định chiều cao riêng cho từng tấm? Không, chúng ta sẽ không làm như vậy. Đây chính là lúc mà chúng ta cần tới sự hỗ trợ của giá trị auto.

auto.html

<!doctype html>
<html> <head> <meta charset="utf-8"> <title>Auto-m-agic</title> <link rel="stylesheet" href="auto.css"> </head> <body> <article class="post"> <h1>Khoa học của một kẻ mộng mơ</h1> <p> Tất cả mọi thứ trong thế giới này đều màu nhiệm, cân bằng, và tất cả mọi thứ đều có một quy luật. </p> <h2>Tự nhiên có chứa đầy sự màu nhiệm.</h2> <img src="https://s19.postimg.cc/mtf99uv9v/magic.jpg"> <h2>Cân bằng là chìa khóa.</h2> <img src="https://s19.postimg.cc/5vgbe3cdf/balance.jpg"> <h2>Có một quy luật đằng sau tất cả mọi thứ.</h2> <img src="https://s19.postimg.cc/pq2d07jv7/pattern.jpg"> </article> </body>
</html>

auto.css

.post { max-width: 800px;
} .post > h1 { font-size: 39px;
} .post > img { width: 100%; height: auto;
}

Đó có thể được coi là một phép màu không? 😄
Chúng ta thậm chí còn không cần phải thực hiện bất kỳ thao tác tính toán nào. Trình duyệt web đã tự động thực hiện tác vụ tính toán phức tạp để duy trì tỉ lệ đúng cho mỗi tấm ảnh. Mình cũng không rõ vì sao các trình duyệt web lại có thể biết chính xác điều mà chúng ta muốn. 😄

Bạn nhớ lưu ý là giá trị auto có thể được sử dụng cùng nhiều thuộc tính CSS khác nữa nhé. Chúng ta sẽ còn gặp lại auto nhiều lần nữa.

Các giá trị tối thiểu và tối đa

Bên cạnh các thuộc tính widthheight mà chúng ta đã biết, CSS còn cung cấp các thuộc tính khác liên quan như min-width, max-width, min-height, và max-height. Những thuộc tính này được sử dụng để tạo ra các ràng buộc giới hạn, giúp chúng ta đảm bảo rằng các thành phần của trang web sẽ được hiển thị tốt trong bất kỳ tình huống nào.

Hãy lấy ví dụ về độ dài của các dòng văn bản nếu muốn đem lại trải nghiệm đọc tốt thì sẽ ở khoảng 90 ký tự trở lại; Kết hợp với kích thước font-size phổ biến (khoảng 16-18px) thì sẽ cho kết quả là khoảng ~700-800px. Vì vậy nên chúng ta thường muốn đảm bảo rằng trang blog hay website mà chúng ta đang xây dựng sẽ có khối nội dung chính rộng khoảng 800px. Điều này có thể thực hiện được bằng cách sử dụng thuộc tính max-width:

.post { max-width: 800px; }

Như vậy thì bài viết blog sẽ được hiển thị đầy màn hình đối với các thiết bị có màn hình nhỏ. Nhưng khi người dùng xem trên thiết bị có màn hình lớn, ví dụ như màn hình máy tính 21" Full HD, những nội dung này sẽ dừng ở 800px chiều rộng và đem lại trải nghiệm đọc khá tốt với các dòng nội dung không quá dài và không hay bị nhầm khi đọc xuống dòng. Khá tuyệt, phải không?

Các thuộc tính này còn hay được sử dụng trong cú pháp truy vấn thiết bị, cho phép chúng ta viết code CSS hướng đến từng khoảng kích thước màn hình cụ thể. Chúng ta sẽ sớm gặp cú pháp mới này trong một vài bài viết nữa. Còn bây giờ thì bạn hãy cứ thử sử dụng những thuộc tính này vào code của bạn để làm quen dần và chuẩn bị tạo ra những thiết kế đáp ứng là vừa.

Như thường lệ thì dưới đây là các liên kết tham khảo để bạn có thể xem chi tiết về các thuộc tính:

Trong bài tiếp theo, chúng ta sẽ gặp một vài công cụ mới được sử dụng để thiết lập kích thước và canh chỉnh các phần tử theo một lối tư duy khác.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Căn giữa các phần tử HTML theo chiều dọc (phần 1)

Bài viết được dịch từ bài Vertical centering of elements in HTML xuất bản ngày 18/01/2015 trên trang Web++. .

0 0 59

- vừa được xem lúc

Căn giữa phần tử trong CSS

1. Theo chiều ngang. Đó có phải là phần tử inline hay inline-* (như text hay links). .

0 0 49

- vừa được xem lúc

99% không biết đến mẹo này khi sử dụng Flexbox CSS

Hello lại là mình đây. Bài viết hôm nay mình sẽ giới thiệu tới mọi người một trick khá hay khi dùng CSS flexbox nhé. 1. Chia layout với flexbox.

0 0 47

- vừa được xem lúc

Vanilla JS Project: Tính tuổi

1. Yêu cầu.

0 0 50

- vừa được xem lúc

1 số UI component và layout hữu ích với Frontend

Giới thiệu. Hôm nay mình xin chia sẻ 1 số Layout và UI component quen mà có lẽ là quen thuộc với nhiều người khi làm dự án, hay bắt gặp trên mạng.

0 0 47

- vừa được xem lúc

Style text css

Giới thiệu. Chào 2021, mình sẽ giới thiệu vài kiểu style cho text màu mè chút cho rực rỡ .

0 0 28