Зачем идти таким сложным путем? Если вы можете задать html-атрибут `data-background`, то точно так же вы можете задать стиль: `style="background-color: #000;"`
Денис Инешин, Ударяясь в перфекционизм: где-то вроде бы читал в гугловских письменах, что инлайновые стили не приветствуются (где и чем именно, тоже не помню:))
Exploding, инлайн стили имеют свою четкую нишу - применение сгенерированных стилей, которые нельзя задать классами (например сдвиг элемента на значение вычесленное скриптом и т.п.)
Потому что базовая поддержка со свойством content древняя и работает везде. А вот то что эта функция по спецификации может (должна) работать с любым свойством — пока еще не реализовано ни в одном браузере.
В этом легко убедится самому =) https://caniuse.com/#feat=css3-attr