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

css
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 đến infinity, 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 độ:

x 2 a 2 + y 2 b 2 = 1

Các biến ab là bán kính của hình elip, còn các tọa độ xy 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 ab bằng nhau. Với ab đều bằng r, phương trình đường tròn có thể viết là:

x 2 + y 2 = r 2

Trong phương trình này, xy 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:

x 2 K + y 2 K = 1

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-infinity:

Sơ đồ đường minh họa các hình elip được tạo bằng các giá trị K khác nhau, như mô tả tiếp theo

  • Giá trị K bằng 0 tạ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óa bevel của <corner-shape-value>.
  • Giá trị K bằng 1 tạo ra hình elip thông thường, tương ứng với từ khóa round.
  • Giá trị K lớn hơn 1 làm hình elip có dạng vuông hơn; 2 tương ứng với từ khóa squircle.
  • Giá trị K bằng infinity tạo ra một hình vuông hoàn hảo (tương ứng với từ khóa square), mặc dù các giá trị K từ 10 trở 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ị K bằng -1 tương ứng với từ khóa scoop-infinity tương ứng với từ khóa notch.

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

Khả năng tương thích trình duyệt

Xem thêm