superellipse()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Hàm superellipse() CSS function xác định độ cong của một hình elip, và được dùng để chỉ định hình dạng góc trực tiếp hoặc thông qua các từ khóa <corner-shape-value>.
Cú pháp
superellipse(infinity)
superellipse(4)
superellipse(1.7)
superellipse(0)
superellipse(-2.8)
superellipse(-3)
superellipse(-infinity)
Tham số
<number>-
Một số trong khoảng từ
-infinityđếninfinity, bao gồm cả hai đầu.
Giá trị trả về
Một hình dạng siêu elip.
Mô tả
Hàm superellipse() trả về một hình dạng siêu elip, được dùng để chỉ định các giá trị corner-shape. Siêu elip là một đường cong khép kín đối xứng nằm giữa hình chữ nhật và hình elip. Nó giống một hình elip nhưng giữ lại các đặc điểm hình học của hai trục.
Hình dạng siêu elip được tính toán dựa trên một phiên bản sửa đổi của phương trình elip. Phương trình sau định nghĩa một hình elip có tâm tại gốc tọa độ:
Các biến a và b là bán kính của hình elip, còn các tọa độ x và y là các điểm trên chu vi của hình elip.
Hình tròn là trường hợp đặc biệt của hình elip khi hai bán kính a và b bằng nhau. Với a và b đều bằng r, phương trình đường tròn có thể viết là:
Trong phương trình này, x và y là tọa độ các điểm trên chu vi đường tròn, và r là bán kính với tâm tại (0, 0). Hình elip được tạo ra bằng cách co giãn hình tròn theo trục x và/hoặc y.
Hình dạng siêu elip được tạo bằng cách thay số mũ 2 trong mỗi trường hợp bằng 2K, trong đó K là đối số truyền vào hàm superellipse(), giúp điều chỉnh độ cong của hình elip:
Sơ đồ sau minh họa các giá trị superellipse() khác nhau cho góc trên phải của một container: infinity, 1, 0, -1 và -infinity:
- Giá trị
Kbằng0tạo ra một đường thẳng. Giá trị này có thể dùng để tạo góc vát và tương ứng với từ khóabevelcủa<corner-shape-value>. - Giá trị
Kbằng1tạo ra hình elip thông thường, tương ứng với từ khóaround. - Giá trị
Klớn hơn1làm hình elip có dạng vuông hơn;2tương ứng với từ khóasquircle. - Giá trị
Kbằnginfinitytạo ra một hình vuông hoàn hảo (tương ứng với từ khóasquare), mặc dù các giá trịKtừ10trở lên về cơ bản không thể phân biệt với hình vuông. - Các giá trị
Kâm tạo ra đường cong lõm, dẫn đến các hình dạng góc cong vào trong hoặc "bị khoét". Giá trịKbằng-1tương ứng với từ khóascoopvà-infinitytương ứng với từ khóanotch.
Một siêu elip âm hoặc dương sẽ trông đối xứng với siêu elip có giá trị nghịch đảo của nó.
Note:
Đối với bất kỳ giá trị tham số K nào được truyền vào, giá trị trả về của hàm superellipse() luôn giống nhau cho giá trị K đó. Khi giá trị đó được áp dụng cho hai phần tử, hình dạng góc có thể khác nhau nếu kích thước hộp hoặc các giá trị border-radius khác nhau.
Cú pháp chính thức
<superellipse()> =
superellipse( <number> |
infinity |
-infinity )
Ví dụ
>So sánh các giá trị superellipse()
Trong ví dụ này, hai thanh trượt <input type="range"> cho phép bạn duyệt qua nhiều giá trị corner-shape superellipse() và giá trị border-radius khác nhau, giúp bạn so sánh hiệu ứng của từng giá trị lên một container. Code được ẩn để ngắn gọn, nhưng bạn có thể xem giải thích đầy đủ về so sánh giá trị superellipse trên trang tham khảo corner-shape.
Note:
Xem thêm ví dụ so sánh giá trị <corner-shape-value>.
Thông số kỹ thuật
| Specification |
|---|
| CSS Borders and Box Decorations Module Level 4> # funcdef-superellipse> |