我使用一个HTML页面来呈现一些控制台输出.这个页面的内容非常简单:

<div>
    <span style="color: #0cc;">Checking random configurations</span><br>
    <span style="color: #0cc;">Installing new setup</span><br>
    ...<br>
    <span style="color: #0cc;">Done setup</span><br>
    <span style="color: #0cc;">Start</span><br>
    <span style="color: #c00;">ERROR</span><br>
    done.
</div>

我想自定义所选文本高亮显示的方式(用户使用鼠标 Select 文本),以便前景色变为背景色,背景色变为前景色.

我无法使用CSShighlight属性找到方法,该属性设置用于突出显示整个 Select 的 colored颜色 .

有没有一种简单且可移植的方法(HTML和/或CSS和/或Java-SCRIPT)来改变当前文本的前景和背景 colored颜色 ?

编辑:

呈现的文本可以通过多种方式设置样式.正如您在示例中看到的,一些文本是红色的,另一些是青色的.本例中没有给出许多其他格式.

从用户的Angular 来看,我希望文本 Select 突出显示与所选文本相适应(即:红色文本部分应突出显示为红/黑(FG/BG),青色文本的后面部分应突出显示为青/黑).

::selection让我 Select 高亮的FG和BG colored颜色 ,但这是整个部分的 colored颜色 .我怎样才能把它嵌入到span中,这样我就可以按比例定制亮点了?

推荐答案

您可以简化操作,方法是将CSS变量设置在它们需要的位置,并在 Select 时只交换 colored颜色 和背景 colored颜色 :

<style>
  span {
    --bg: black;
  }
  
  span {
    color: var(--color);
    background: var(--bg);
  }
  
  span::selection {
    background: var(--color);
    color: var(--bg);
  }
</style>
<div>
  <span style="--color: #0cc; --bg: pink;">Checking random configurations</span><br>
  <span style="--color: #0cc;">Installing new setup</span><br> ...
  <br>
  <span style="--color: #0cc;">Done setup</span><br>
  <span style="--color: #0cc;">Start</span><br>
  <span style="--color: #c00;">ERROR</span><br> done.
</div>

注意:这并不是一个完整的解决方案,因为我刚刚使用了一条白毯子作为背景,其中没有明确定义它.考虑到可以在::Selection伪元素上设置的属性集非常少,我目前还不能理解如何仅使用CSS来拾取继承的或现有的背景色.但我把这部分答案留在这里,以防它至少有部分用处.

Html相关问答推荐

为什么在Vuettify 3中使用Flex时会忽略宽度?

z—index总是 destruct 我的头,我该如何修复它?

如何删除在小屏幕上单击按钮时出现的蓝色方块?

如何从卷轴中排除粘性元素?

Tailwind CSS:overflow-y Property Not Scrolling Unreliably to Bottom with top-[63px]

如何从多个TO中获取一个范围标记以溢出其父标记

为什么我不能覆盖 div 的样式?

在 HTML 视频上环绕文本叠加

为什么我的 div 元素没有形成一个圆形时钟?

显示填充正方形的图形的简单页面的 HTML 代码

如何更改 Quarto 中标签crossref-def-title的标题 colored颜色 ?

为什么使用 Css 只能看到 1 列而不是 3 列?