首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由Javascript插入的带有换行符的CSS伪元素内容值

由Javascript插入的带有换行符的CSS伪元素内容值
EN

Stack Overflow用户
提问于 2019-02-20 22:08:51
回答 2查看 428关注 0票数 6

这里有一个类似的讨论:CSS data attribute new line character & pseudo-element content value

问题是,如果属性是通过Javascript设置的,这就不起作用了

我知道\A不能在attr中工作,但现在
不能通过Javascript在attr上工作,有什么方法可以让它工作吗?

代码语言:javascript
复制
const ele = document.getElementById('my-ele')
ele.classList.add('loading');
ele.setAttribute('loading-text', 'Your file is being generated...
This may take some minutes');
代码语言:javascript
复制
.loading::after {
  content: attr(loading-text);
}
代码语言:javascript
复制
<div id="my-ele"></div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-20 22:14:13

使用简单的换行符( JavaScript字符串中的\n),修复getElementById()调用(去掉"#"),并将white-space: pre-wrap;添加到CSS。

代码语言:javascript
复制
const ele = document.getElementById('my-ele')
ele.classList.add('loading');
ele.setAttribute('loading-text', 'Your file is being generated...\nThis may take some minutes');
代码语言:javascript
复制
.loading::after {
  white-space: pre-wrap;
  content: attr(loading-text);
}
代码语言:javascript
复制
<div id="my-ele"></div>

票数 8
EN

Stack Overflow用户

发布于 2019-02-20 22:19:56

它是换行符&#10\u000A是JS的等价物,并将使其工作。

代码语言:javascript
复制
const ele = document.getElementById('my-ele'); //removed the #
ele.classList.add('loading');
ele.setAttribute('loading-text', 'Your file is being generated...\u000AThis 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!
代码语言:javascript
复制
.loading::after {
white-space: pre-wrap;
  content: attr(loading-text);
}
代码语言:javascript
复制
<div id="my-ele"></div>

<div id="my-ele2"></div>

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54788295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档