html - CSS数据属性换行符&伪元素内容值

标签 html css newline pseudo-element css-content

是否可以在数据属性中换行?

我正在尝试做这样的事情:

CSS:

[data-foo]:after {
    content: attr(data-foo);
    background-color: black;
}

HTML

<div data-foo="First line \a Second Line">foo</div>

我发现“\a”是 CSS 中的一个新行,但对我来说仍然不起作用。

最佳答案

这是它的工作原理。您需要按如下方式修改您的数据属性:

[data-foo]:after {
    content: attr(data-foo);
    background-color: black;
    color: white;
    white-space: pre;
    display: inline-block;
}
<div data-foo='First line &#xa; Second Line'>foo</div>

fiddle 演示:http://jsfiddle.net/audetwebdesign/cp4RF/

工作原理

使用 \a 不起作用,但等效的 HTML 实体 起作用。

根据 CSS2.1 规范,attr(attribute-label) 返回一个字符串,但该字符串未被 CSS 处理器解析(我不确定这到底是什么意思)。我推测 \a 必须由 CSS 处理器解释才能显示代码。

相比之下,HTML 实体直接由浏览器解释(我猜......)所以它看起来有效。

但是,要使换行起作用,您需要设置 white-space: pre 以保留伪元素中的空白。注意:您还可以考虑 pre-wrappre-line,具体取决于内容的性质。

引用

关于获取换行的 HTML 实体代码:
http://www.fileformat.info/info/unicode/char/000a/index.htm

关于 content 属性的 attr() 值:
http://www.w3.org/TR/CSS2/generate.html#content

关于html - CSS数据属性换行符&伪元素内容值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16451553/

相关文章:

html - 为什么这些内联 block div 会换行,尽管它们的父级有溢出 x :scroll?

php - ipad 上的下拉字体大小不增加

javascript - 分页符无法正常工作

html - FontAwesome : icon-4x no worky

java - 正则表达式匹配包含字符的每一行

html - 为什么关闭 1 像素边框会在固定位置标题和 Flex 增长的情况下产生 75 像素溢出?

css - 为CSS动画创建一个循环

javascript - 如何在 javascript 中换行 svg 文本?

python 3 正则表达式模式替换

html - 阻止谷歌翻译翻译部分 <head> 部分?