SVGElement: thuộc tính style
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.
Thuộc tính chỉ đọc style của giao diện SVGElement trả về style style nội tuyến của phần tử dưới dạng đối tượng CSSStyleProperties trực tiếp. Đối tượng này có thể được dùng để lấy và đặt style nội tuyến của phần tử.
Giá trị
Một đối tượng CSSStyleProperties trực tiếp.
Note:
Các phiên bản đặc tả trước trả về CSSStyleDeclaration (mà CSSStyleProperties được kế thừa từ đó). Xem bảng tương thích trình duyệt để biết thông tin hỗ trợ của từng trình duyệt.
Mặc dù bản thân thuộc tính style là chỉ đọc theo nghĩa bạn không thể thay thế đối tượng CSSStyleProperties, bạn vẫn có thể gán trực tiếp cho thuộc tính style, tương đương với việc gán cho thuộc tính cssText của nó. Bạn cũng có thể sửa đổi đối tượng CSSStyleProperties bằng các phương thức setProperty() và removeProperty().
Mô tả
Các giá trị của style nội tuyến được đặt trong thuộc tính style của phần tử được phản ánh bởi các thuộc tính tương ứng của đối tượng CSSStyleProperties được trả về.
Note:
CSSStyleProperties có các thuộc tính tên dấu gạch ngang và tên camelCase tương ứng cho tất cả các thuộc tính CSS được trình duyệt hỗ trợ (không chỉ những thuộc tính có style nội tuyến). Các thuộc tính không có style nội tuyến tương ứng được đặt thành "".
Các thuộc tính CSS viết tắt của phần tử được mở rộng thành các thuộc tính dài tương ứng. Ví dụ, một phần tử với style "border-top: 1px solid black" sẽ được biểu diễn trong đối tượng trả về bởi các thuộc tính có tên border-top và borderTop, và các thuộc tính dài tương ứng border-top-color và borderTopColor, border-top-style và borderTopStyle, và border-top-width và borderTopWidth.
Thuộc tính style là chỉ đọc, có nghĩa là không thể gán đối tượng CSSStyleProperties cho nó. Tuy nhiên, có thể đặt style nội tuyến bằng cách gán một chuỗi trực tiếp cho thuộc tính. Trong trường hợp này chuỗi có thể được đọc từ cssText. Sử dụng style theo cách này sẽ ghi đè hoàn toàn tất cả style nội tuyến trên phần tử.
Để thêm style cụ thể vào phần tử mà không thay đổi các giá trị style khác, thường nên đặt các thuộc tính riêng lẻ trên đối tượng CSSStyleProperties. Ví dụ, bạn có thể viết element.style.backgroundColor = "red". Một khai báo style được đặt lại bằng cách đặt nó thành null hoặc chuỗi rỗng, ví dụ: element.style.color = null.
Thuộc tính style có cùng mức ưu tiên trong CSS cascade với một khai báo style nội tuyến được đặt qua thuộc tính style.
Ví dụ
>Liệt kê thông tin style
Ví dụ này minh họa cách chúng ta có thể liệt kê các thuộc tính tên dấu gạch ngang của CSSStyleProperties.
HTML
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 250 250"
width="250"
height="250">
<circle
cx="100"
cy="100"
r="50"
id="circle"
style="fill: red; stroke: black; stroke-width: 2px;" />
</svg>
<pre id="log"></pre>
JavaScript
Đoạn code sau lặp qua các thuộc tính có thể liệt kê của CSSStyleProperties và ghi kết quả.
const element = document.querySelector("circle");
const elementStyle = element.style;
// Loop through all the element's styles using `for...in`
for (const prop in elementStyle) {
// Check the property belongs to the CSSStyleProperties instance
// Ensure the property is a numeric index (indicating a dash-named/inline style)
if (
Object.hasOwn(elementStyle, prop) &&
!Number.isNaN(Number.parseInt(prop, 10))
) {
log(
`${
elementStyle[prop]
} = '${elementStyle.getPropertyValue(elementStyle[prop])}'`,
);
}
}
Kết quả
Kết quả hiển thị bên dưới. Lưu ý rằng chỉ các thuộc tính CSS dài của phần tử được liệt kê (thuộc tính viết tắt nội tuyến không được liệt kê).
Thông số kỹ thuật
| Specification |
|---|
| CSS Object Model (CSSOM)> # dom-elementcssinlinestyle-style> |