javascript - CSS 内容规则忽略 html 元素属性中的换行符 (0x0a)

标签 javascript html css

我在 CSS 内容规则中遇到换行符问题。

我生成一个元素并为其分配一个属性“文本”。该属性的值将显示在元素伪元素 :before 中 问题是它不会正确显示属性值中包含的换行符。它以输入的方式显示它们。即:我看到打印了 而不是新行。

<div id='foo' class='somediv'>
  foo
</div>

.somediv:after {
  content: attr(text);
  white-space: pre-line;
}

document.getElementById('foo').setAttribute('text', 'world &#x0a hello');

fiddle 演示:https://jsfiddle.net/yp2gtc03/13/

我需要做什么才能正确显示它?

最佳答案

您不能在 JS 中使用 HTML 实体引用。你需要 JS 转义。使用:

document.getElementById('foo').setAttribute('text', 'world \x0a hello');

document.getElementById('foo').setAttribute('text', 'world \x0a hello');
.somediv:after {
  content: attr(text);
  white-space: pre-line;
}
<div id='foo' class='somediv'>
  foo
</div>

关于javascript - CSS 内容规则忽略 html 元素属性中的换行符 (0x0a),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48830731/

相关文章:

html - 背景图像上的文本菜单

JavaScript 缩小和压缩

javascript - socket.io 和 vue.js 获取数据

javascript - php 表单不发送联系人电子邮件

javascript - event.preventdefault() 不适用于文本框的更改事件

html - 尝试在 table 上做圆 Angular

javascript - Angular js饼图样式

html - 仅使用 html/css/js 在背景图像之间淡入淡出

javascript - 更改一些 html 元素,并更改 url 而不重新加载页面

jQuery:当 div 在大尺寸屏幕上设置动画时,box-shadow 会闪烁