Причина такого поведения заключается в том, что анализатор таблиц стилей в css обнаруживает обратные слеши в появляющейся строке css и преобразует следующие четыре символа в шестнадцатеричное значение в один символ UTF8.
Добавляя '\' перед значением атрибута, вы просто объединяете обратную косую черту sh с символами атрибута. CSS не предоставляет функции для преобразования шестнадцатеричных значений в виде строк (например, заданных attr
) в символ во время выполнения.
Нет другого способа, кроме как обрабатывать его на стороне HTML путем экранирования шестнадцатеричные значения там, например, &#xXXXX;
:
content: attr(data-icon);
<div data-icon=""></div>
<!-- or adding the unicode directly, if it's an utf8 document -->
<div data-icon=""></div>