This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
The CSS.escape() static method returns a string containing the escaped string passed as parameter, mostly for use as part of a CSS selector.
CSS.escape(str)
strThe string to be escaped.
The escaped string.
CSS.escape(".foo#bar"); // "\\.foo\\#bar"
CSS.escape("()[]{}"); // "\\(\\)\\[\\]\\{\\}"
CSS.escape('--a'); // "--a"
CSS.escape(0); // "\\30 ", the Unicode code point of '0' is 30
CSS.escape('\0'); // "\ufffd", the Unicode REPLACEMENT CHARACTER
To escape a string for use as part of a selector, the escape() method can be used:
const element = document.querySelector(`#${CSS.escape(id)} > img`);
The escape() method can also be used for escaping strings, although it escapes characters that don't strictly need to be escaped:
const element = document.querySelector(`a[href="#${CSS.escape(fragment)}"]`);
| Specification |
|---|
| CSS Object Model (CSSOM)> # the-css.escape()-method> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
escape_static |
46 | 79 | 31 | 33 | 10.1 | 46 | 31 | 33 | 10.3 | 5.0 | 46 | 10.3 |
CSS interface where this static method resides.
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape_static