`aspect-ratio` và Thiết kế đáp ứng
Bài viết này giải thích về thuộc tính aspect-ratio
và thiết kế đáp ứng.
Chúng tôi giới thiệu các kỹ thuật thiết kế đáp ứng sử dụng thuộc tính aspect-ratio
.
YouTube Video
HTML để Xem trước
css-responsive-aspect-ratio.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-responsive-aspect-ratio.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Properties For Responsive Design</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>aspect-ratio</h2>
20 </header>
21 <article>
22 <h3>aspect-ratio Syntax</h3>
23 <section>
24 <header><h4>CSS</h4></header>
25<pre class="sample">
26aspect-ratio: <ratio>;
27</pre>
28 </section>
29 </article>
30 <article>
31 <h3>aspect-ratio 1:1</h3>
32 <section>
33 <header><h4>CSS</h4></header>
34<pre class="sample">
35.square {
36 width: 200px;
37 aspect-ratio: 1 / 1;
38}
39</pre>
40 </section>
41 <header><h4>HTML+CSS</h4></header>
42 <section class="sample-view">
43 <img src="example.jpg" class="square">
44 </section>
45 </article>
46 <article>
47 <h3>aspect-ratio 16:9</h3>
48 <section>
49 <header><h4>CSS</h4></header>
50<pre class="sample">
51.widescreen {
52 width: 100%;
53 aspect-ratio: 16 / 9;
54}
55</pre>
56 </section>
57 <section class="sample-view">
58 <img src="example.jpg" class="widescreen">
59 </section>
60 </article>
61 <article>
62 <h3>aspect-ratio 2</h3>
63 <section>
64 <header><h4>CSS</h4></header>
65<pre class="sample">
66.custom-ratio {
67 width: 400px;
68 aspect-ratio: 2;
69}
70</pre>
71 </section>
72 <section class="sample-view">
73 <img src="example.jpg" class="custom-ratio">
74 </section>
75 </article>
76 <article>
77 <h3>aspect-ratio Example</h3>
78 <section>
79 <header><h4>HTML</h4></header>
80<pre>
81<div class="video-container">
82 <iframe src="https://www.youtube.com/embed/example"></iframe>
83</div>
84</pre>
85 <header><h4>CSS</h4></header>
86<pre class="sample">
87.video-container {
88 width: 100%;
89 aspect-ratio: 16 / 9;
90}
91</pre>
92 </section>
93 </article>
94 </main>
95</body>
96</html>
Thuộc tính aspect-ratio
Thuộc tính aspect-ratio
được sử dụng để đặt tỷ lệ chiều rộng so với chiều cao (tỷ lệ khung hình) của một phần tử. Điều này hữu ích khi bạn muốn hiển thị một phần tử với tỷ lệ cố định, đặc biệt đối với nội dung đa phương tiện như hình ảnh hoặc video, hoặc trong thiết kế responsive.
Cú pháp Cơ bản
1aspect-ratio: <ratio>;
<ratio>
xác định tỷ lệ chiều rộng so với chiều cao. Tỷ lệ được viết theo định dạng "width:height" hoặc được biểu thị bằng một số duy nhất cho tỷ lệ chiều rộng so với chiều cao.
Ví dụ
Tỷ lệ khung hình 1:1 (Hình vuông)
Đây là cách hiển thị với tỷ lệ khung hình 1:1.
1.square {
2 width: 200px;
3 aspect-ratio: 1 / 1;
4}
- Trong trường hợp này, các phần tử có class
.square
sẽ luôn có chiều rộng và chiều cao bằng nhau, hiển thị thành hình vuông.
Tỷ lệ khung hình 16:9 (Video hoặc hình ảnh màn hình rộng)
Đây là cách hiển thị với tỷ lệ khung hình 16:9, thường được sử dụng cho video hoặc hình ảnh màn hình rộng.
1.widescreen {
2 width: 100%;
3 aspect-ratio: 16 / 9;
4}
- Trong trường hợp này, các phần tử có lớp
.widescreen
tự động điều chỉnh chiều cao theo chiều rộng trong khi duy trì tỷ lệ khung hình 16:9.
Chỉ định tỷ lệ với một số duy nhất
Đây là cách hiển thị khi chỉ định tỷ lệ bằng một số duy nhất.
1.custom-ratio {
2 width: 400px;
3 aspect-ratio: 2;
4}
- Ở đây, số
2
biểu thị tỷ lệ2 / 1
, khiến chiều rộng của phần tử lớn gấp đôi chiều cao của nó.
Lợi ích của thuộc tính aspect-ratio
- Thiết kế đáp ứng Phần tử có thể tự động điều chỉnh kích thước trong khi vẫn giữ nguyên tỷ lệ khung hình trên nhiều thiết bị và kích thước cửa sổ khác nhau.
- Triển khai đơn giản
Để duy trì một tỷ lệ nhất định, các phương pháp truyền thống như sử dụng
padding
đã được sử dụng, nhưng vớiaspect-ratio
, nó có thể được thiết lập đơn giản hơn.
Trường hợp sử dụng thực tế
Ví dụ, trình phát video như YouTube thường hiển thị với tỷ lệ khung hình 16:9. Để duy trì tỷ lệ này, thuộc tính aspect-ratio
có thể được sử dụng để dễ dàng tạo một khung chứa video đáp ứng.
1<div class="video-container">
2 <iframe src="https://www.youtube.com/embed/example"></iframe>
3</div>
1.video-container {
2 width: 100%;
3 aspect-ratio: 16 / 9;
4}
- Điều này cho phép video duy trì tỷ lệ 16:9 trên bất kỳ thiết bị nào.
Tóm tắt
aspect-ratio
là một thuộc tính xác định tỷ lệ chiều rộng so với chiều cao của một phần tử.- Bằng cách chỉ định một tỷ lệ, thiết kế đáp ứng có thể được thực hiện dễ dàng.
- Thuộc tính này rất hữu ích cho các phần tử cần duy trì một tỷ lệ khung hình cụ thể, chẳng hạn như hình ảnh, video và bố cục thẻ.
So với các kỹ thuật CSS phức tạp truyền thống, aspect-ratio
được đánh giá cao về sự đơn giản và dễ sử dụng.
Bạn có thể làm theo bài viết trên bằng cách sử dụng Visual Studio Code trên kênh YouTube của chúng tôi. Vui lòng ghé thăm kênh YouTube.