CSS:有没有办法在我的输出中将属性的内容作为文本插入?
Posted
技术标签:
【中文标题】CSS:有没有办法在我的输出中将属性的内容作为文本插入?【英文标题】:CSS: is there a way to insert the content of an attribute as text in my output? 【发布时间】:2019-03-20 20:47:15 【问题描述】:通常,CSS 通过匹配 html 中的元素名称来工作:p.heading1
会影响所有类型为 p 且具有类标题 1 的元素。
有没有办法显示仅作为属性存在的对象/文本?
例如,这是我的 HTML:
<body var="text I want to insert">
<div class="titlepage">
<p class="titlepagetext">this should also be displayed</p>
标题页有许多<p>
子级。除了它们,我想在标题页显示body/var的内容。
【问题讨论】:
“它显示 @var 的内容” - 不知道如何,甚至选择器都不匹配:.titlepage[var]
- 你没有与 @987654325 类相同的元素@ 具有属性var
。并且不确定您对其余部分的意思,“但是格式化程序忽略了 p.titlepagetext 和 div.titlepage 的所有其他子项” - 谁是“格式化程序”,以及以什么方式是否“忽略”了这些元素?
content
仅适用于 :before
和 :after
等伪元素...试试吧。
但是不推荐将content
用于实际内容。
CSS 没有父选择器,因此无法在子级中获取var
他们所说的。此外,1) var
不是属性的好名称。如果有帮助,请将所有不带破折号的属性名称视为保留以供将来使用。 2)。您错过了 var 末尾的结束语。 3) 不确定这与 CSS 分页媒体有什么关系。 4)font:20pt
是一个错误;你的意思是font-size
。
【参考方案1】:
当你使用 css 时,你不能定位到父级。没有办法获得父选择器。和内容:""
只能申请伪类。
【讨论】:
一流的评论掠夺者……【参考方案2】:你可以考虑CSS variables。自定义属性将被正文中的所有元素继承,您可以使用伪元素将其显示在您想要的位置:
.titlepage:before
content:var(--var);
<body style="--var:'text I want to insert'">
<div class="titlepage">
<p class="titlepagetext">this should also be displayed</p>
</div>
</body>
【讨论】:
使用 .titlepage:before,内容与一起显示。不能使用变量(Antennahouse Formatter 的限制),但我可以让它工作。
【参考方案3】:AH Formatter 有一个-ah-attr-from()
扩展函数,可以让您获取祖先属性的内容(参见https://www.antennahouse.com/product/ahf66/ahf-ext.html#attr-from)。
您可以在.titlepagetext::before
的规则中使用-ah-attr-from()
。
【讨论】:
以上是关于CSS:有没有办法在我的输出中将属性的内容作为文本插入?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JavaScript 中将所有对象属性设置为 null?
有没有办法在 Evernote iOS SDK 中将笔记转换为 HTML 文件
有没有办法将编写在代码镜像中的 css 应用于 iframe 的 html 内容?