SVGStyleElement: disabled property
The SVGStyleElement.disabled
property can be used to get and set whether the stylesheet is disabled (true
) or not (false
).
Note that there is no corresponding disabled
attribute on the SVG <style>
element.
Value
Returns true
if the stylesheet is disabled, or there is no associated stylesheet; otherwise false
.
The value is false
by default (if there is an associated stylesheet).
The property can be used to enable or disable an associated stylesheet.
Setting the property to true
when there is no associated stylesheet has no effect.
Examples
Disabling a style defined in the SVG
This example demonstrates programmatically setting the disabled property on a style that was defined in the HTML SVG definition.
HTML
The HTML contains an SVG definition for a <circle>
with a <style>
element, along with a button that will be used to disable the style.
<button>Enable</button>
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<style id="circle_style_id">
circle {
fill: gold;
stroke: green;
stroke-width: 3px;
}
</style>
<circle cx="50" cy="50" r="25" />
</svg>
JavaScript
The code below gets the style
element (an SVGStyleElement
) using its id, and then sets it as disabled.
The style already exists because it is defined in the SVG, so this should succeed.
const svg = document.querySelector("svg");
const style = svg.getElementById("circle_style_id");
style.disabled = true;
We then add an event handler for the button that toggles the disabled state and button text.
const button = document.querySelector("button");
button.addEventListener("click", () => {
style.disabled = !style.disabled;
button.textContent = style.disabled ? "Enable" : "Disable";
});
Result
The result is shown below.
Press the button to toggle the disabled
property on the style used for the circle.
Disabling a programmatically defined style
This example is very similar to the one above, except that the style is defined programmatically.
Note that you can have multiple styles applied both in SVG source and programmatically. This example is primarily provided to demonstrate how to create the style externally, and show at what point the style can be disabled.
HTML
The HTML is similar to the previous case, but the SVG definition does not include any default styling.
<button>Enable</button>
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<circle cx="50" cy="50" r="25" />
</svg>
JavaScript
First we create the new SVG style node.
This is done by first creating a style element in the SVG namespace using Document.createElementNS()
, creating and appending a text node with the style definition, and then appending the node to the SVG defined above.
Note: You must use Document.createElementNS()
and not Document.createElement()
to create the style, or by default you'll create the equivalent HTML style element.
const svg = document.querySelector("svg");
// Create the `style` element in the SVG namespace
const style = document.createElementNS("http://www.w3.org/2000/svg", "style");
const node = document.createTextNode("circle { fill: red; }");
svg.appendChild(style);
style.appendChild(node);
Then we disable the style.
Note that this is the earliest point at which setting the property to true
will succeed.
Before this point the SVG did not have a style associated, and so the value defaults to false
.
//Disable the style
style.disabled = true;
Last of all we add an event handler for the button that toggles the disabled state and button text (this is the same as in the previous example).
const button = document.querySelector("button");
button.addEventListener("click", () => {
style.disabled = !style.disabled;
button.textContent = style.disabled ? "Enable" : "Disable";
});
Result
The result is shown below.
Press the button to toggle the disabled
state on the style used for the circle.
Specifications
Specification |
---|
Scalable Vector Graphics (SVG) 2 # __svg__SVGStyleElement__disabled |
Browser compatibility
BCD tables only load in the browser