syntax
Baseline
2024
Newly available
Since July 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Mô tả syntax của at-rule @property at-rule xác định các kiểu giá trị được phép cho thuộc tính tùy chỉnh CSS đã đăng ký.
Nó kiểm soát cách giá trị được chỉ định của thuộc tính được xử lý để tính ra giá trị tính toán.
Đây là mô tả bắt buộc; nếu thiếu hoặc không hợp lệ, toàn bộ quy tắc @property sẽ không hợp lệ và bị bỏ qua.
Cú pháp
/* Tên kiểu dữ liệu */
syntax: "<color>";
/* Tổ hợp '|' cho nhiều kiểu dữ liệu */
syntax: "<length> | <percentage>";
/* Danh sách giá trị phân tách bằng khoảng trắng */
syntax: "<color>+";
/* Danh sách giá trị phân tách bằng dấu phẩy */
syntax: "<length>#";
/* Từ khóa */
syntax: "small | medium | large";
/* Kết hợp kiểu dữ liệu và từ khóa */
syntax: "<length> | auto";
/* Giá trị cú pháp phổ quát */
syntax: "*";
Giá trị
Một chuỗi (được gọi là chuỗi cú pháp) xác định các giá trị được phép. Nó có thể là một trong những điều sau:
- Một hoặc nhiều tên thành phần cú pháp, có thể là:
- Tên kiểu dữ liệu (được viết trong dấu ngoặc nhọn, chẳng hạn như
<color>hoặc<length>) - Từ khóa (được viết không có dấu ngoặc nhọn, chẳng hạn như
autohoặcnone)
- Tên kiểu dữ liệu (được viết trong dấu ngoặc nhọn, chẳng hạn như
- Cú pháp phổ quát
*, chấp nhận bất kỳ giá trị CSS hợp lệ nào. Nó không thể được nhân hoặc kết hợp với các thành phần cú pháp khác.
Các tên thành phần cú pháp có thể được sử dụng một mình hoặc nhân và kết hợp theo nhiều cách:
-
Các nhân tử
+(phân tách bằng khoảng trắng) và#(phân tách bằng dấu phẩy) cho biết rằng một danh sách giá trị được mong đợi. Ví dụ,<color>#có nghĩa là một danh sách<color>phân tách bằng dấu phẩy là cú pháp mong đợi. -
Tổ hợp đường dọc (
|) có thể tạo điều kiện "hoặc" cho cú pháp mong đợi. Ví dụ,<length> | autochấp nhận<length>hoặcauto, và<color># | <integer>#mong đợi một danh sách giá trị<color>phân tách bằng dấu phẩy hoặc một danh sách giá trị<integer>phân tách bằng dấu phẩy.
Các tên thành phần cú pháp sau được hỗ trợ:
"<angle>"-
Chấp nhận bất kỳ giá trị
<angle>hợp lệ nào. "<color>"-
Chấp nhận bất kỳ giá trị
<color>hợp lệ nào. "<custom-ident>"-
Chấp nhận bất kỳ giá trị
<custom-ident>hợp lệ nào. "<image>"-
Chấp nhận bất kỳ giá trị
<image>hợp lệ nào. "<integer>"-
Chấp nhận bất kỳ giá trị
<integer>hợp lệ nào. "<length>"-
Chấp nhận bất kỳ giá trị
<length>hợp lệ nào. "<length-percentage>"-
Chấp nhận bất kỳ giá trị
<length>hoặc<percentage>hợp lệ và bất kỳ biểu thứccalc()hợp lệ nào kết hợp các giá trị<length>và<percentage>. "<number>"-
Chấp nhận bất kỳ giá trị
<number>hợp lệ nào. "<percentage>"-
Chấp nhận bất kỳ giá trị
<percentage>hợp lệ nào. "<resolution>"-
Chấp nhận bất kỳ giá trị
<resolution>hợp lệ nào. "<string>"-
Chấp nhận bất kỳ giá trị
<string>hợp lệ nào. "<time>"-
Chấp nhận bất kỳ giá trị
<time>hợp lệ nào. "<transform-function>"-
Chấp nhận bất kỳ giá trị
<transform-function>hợp lệ nào. "<transform-list>"-
Chấp nhận danh sách các giá trị
<transform-function>hợp lệ. Nó tương đương với"<transform-function>+". "<url>"-
Chấp nhận bất kỳ giá trị
<url>hợp lệ nào.
Định nghĩa chính thức
| Related at-rule | @property |
|---|---|
| Initial value | n/a (required) |
| Computed value | as specified |
Cú pháp chính thức
syntax =
<string>
Ví dụ
>Đăng ký thuộc tính tùy chỉnh với kiểm tra kiểu
Ví dụ này cho thấy cách định nghĩa thuộc tính tùy chỉnh --my-color chỉ cho phép các giá trị <color>:
@property --my-color {
syntax: "<color>";
inherits: false;
initial-value: #c0ffee;
}
Sử dụng JavaScript CSS.registerProperty():
window.CSS.registerProperty({
name: "--my-color",
syntax: "<color>",
inherits: false,
initialValue: "#c0ffee",
});
Thông số kỹ thuật
| Specification |
|---|
| CSS Properties and Values API Level 1> # the-syntax-descriptor> |