[英]CSS pseudo-element content value with line-break via attr inserted by Javascript
這里有類似的討論: CSS數據屬性新行字符和偽元素內容值
問題是,如果通過Javascript設置attr,這不起作用
我明白\\A
在attr中不起作用,但現在

通過Javascript無法在attr上工作,有什么辦法讓這個工作嗎?
const ele = document.getElementById('my-ele') ele.classList.add('loading'); ele.setAttribute('loading-text', 'Your file is being generated...
This may take some minutes');
.loading::after { content: attr(loading-text); }
<div id="my-ele"></div>
使用普通換行符(在JavaScript字符串中為\\n
),修復getElementById()
調用(除去“#”),然后添加white-space: pre-wrap;
到CSS。
const ele = document.getElementById('my-ele') ele.classList.add('loading'); ele.setAttribute('loading-text', 'Your file is being generated...\\nThis may take some minutes');
.loading::after { white-space: pre-wrap; content: attr(loading-text); }
<div id="my-ele"></div>
這是換行符

。 \
是JS的等價物並且會使它工作。
const ele = document.getElementById('my-ele'); //removed the # ele.classList.add('loading'); ele.setAttribute('loading-text', 'Your file is being generated...\
This may take some minutes'); const ele2 = document.getElementById('my-ele2'); //removed the # ele2.classList.add('loading'); ele2.setAttribute('loading-text', 'Your file is being generated...\\nThis may take some minutes'); //as suggested by Pointy also works!
.loading::after { white-space: pre-wrap; content: attr(loading-text); }
<div id="my-ele"></div> <div id="my-ele2"></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.