scale()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Hàm scale() CSS function định nghĩa một phép biến đổi thay đổi kích thước phần tử trên mặt phẳng 2D. Vì lượng tỉ lệ được xác định bởi vectơ [sx, sy], nó có thể thay đổi kích thước theo chiều nằm ngang và thẳng đứng với các tỉ lệ khác nhau. Kết quả của hàm là kiểu dữ liệu <transform-function>.
Try it
transform: scale(1);
transform: scale(0.7);
transform: scale(1.3, 0.4);
transform: scale(-0.5, 1);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
Phép biến đổi tỉ lệ này được đặc trưng bởi một vectơ hai chiều. Tọa độ của nó xác định lượng tỉ lệ thực hiện theo mỗi chiều. Nếu cả hai tọa độ bằng nhau, tỉ lệ là đồng đều (đẳng hướng) và tỉ lệ khung hình của phần tử được giữ nguyên (đây là phép biến đổi đồng dạng).
Khi giá trị tọa độ nằm ngoài phạm vi [-1, 1], phần tử lớn ra theo chiều đó; khi nằm bên trong, nó thu nhỏ lại. Giá trị âm dẫn đến phép đối xứng qua điểm theo chiều đó. Giá trị 1 không có tác dụng.
Note:
Hàm scale() chỉ thay đổi tỉ lệ trong 2D. Để thay đổi tỉ lệ trong 3D, hãy dùng
scale3d() thay thế.
Cú pháp
scale(sx)
scale(sx, sy)
Giá trị
sx-
Một
<number>hoặc<percentage>biểu thị hoành độ (nằm ngang, thành phần x) của vectơ tỉ lệ. syOptional-
Một
<number>hoặc<percentage>biểu thị tung độ (thẳng đứng, thành phần y) của vectơ tỉ lệ. Nếu không được xác định, giá trị mặc định làsx, dẫn đến tỉ lệ đồng đều giữ nguyên aspect ratio của phần tử.
| Tọa độ Descartes trên ℝ^2 | Tọa độ đồng nhất trên ℝℙ^2 | Tọa độ Descartes trên ℝ^3 | Tọa độ đồng nhất trên ℝℙ^3 |
|---|---|---|---|
|
|
|
|
|
[sx 0 0 sy 0 0] |
Cú pháp chính thức
<scale()> =
scale( <number> , <number>? )
Khả năng tiếp cận
Hoạt ảnh phóng to/thu nhỏ gây ra vấn đề về khả năng tiếp cận, vì chúng thường là tác nhân gây ra một số loại đau nửa đầu. Nếu bạn cần đưa các hoạt ảnh như vậy vào trang web, bạn nên cung cấp điều khiển cho phép người dùng tắt hoạt ảnh, tốt nhất là trên toàn trang.
Ngoài ra, hãy cân nhắc sử dụng tính năng media prefers-reduced-motion — dùng nó để viết truy vấn media sẽ tắt hoạt ảnh nếu người dùng đã chỉ định giảm hoạt ảnh trong tùy chọn hệ thống.
Tìm hiểu thêm:
Ví dụ
>Thay đổi tỉ lệ theo cả chiều X và Y
HTML
<div>Normal</div>
<div class="scaled">Scaled</div>
CSS
div {
width: 80px;
height: 80px;
background-color: skyblue;
}
.scaled {
transform: scale(0.7); /* Equal to scaleX(0.7) scaleY(0.7) */
background-color: pink;
}
Kết quả
Thay đổi tỉ lệ X và Y riêng biệt và dịch chuyển gốc tọa độ
HTML
<div>Normal</div>
<div class="scaled">Scaled</div>
CSS
div {
width: 80px;
height: 80px;
background-color: skyblue;
}
.scaled {
transform: scale(2, 0.5); /* Equal to scaleX(2) scaleY(0.5) */
transform-origin: left;
background-color: pink;
}
Kết quả
Thông số kỹ thuật
| Specification |
|---|
| CSS Transforms Module Level 1> # funcdef-transform-scale> |