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>

标题页有许多&lt;p&gt; 子级。除了它们,我想在标题页显示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?

在summernote编辑器中将内容粘贴为纯文本

有没有办法在 Evernote iOS SDK 中将笔记转换为 HTML 文件

有没有办法将编写在代码镜像中的 css 应用于 iframe 的 html 内容?

如何在 Tailwind 和 postcss 中将 Html 内容转换为纯文本

如何使用 css 在我的文本周围创建边框 [重复]