单击时同时更改两个脚注链接的背景颜色?

Simultaneously change background-color of both footnote links on click?

我有脚注 link,我想在单击时更改两个 link 的背景颜色。

<p id='text1'>Text1<sup><a href='#footnote1'>[1]</a></sup></p>

<ol>
  <li><sup id='footnote1'><a href='#text1'>[1]</a></sup>Footnote1</li>
</ol>

这是我尝试过的,但它显然只改变了 ol 列表 link:

ol li sup a:active {background-color:yellow}

如何在单击任何 link 时同时更改 p 和 ol link 的背景颜色,如果可能,仅使用纯 CSS?

不幸的是,<a> 元素是 transparent, and as such, cannot have a background color. What you're looking for is to target the <sup> element instead. Unfortunately, there's no way to target the <sup> element based on the condition of the <a> tag with raw CSS, as CSS has no parent selector

因此,您只有两个选择。

选项 1:重组您的 HTML,使 <a> 标签包含 <sup> 标签,而不是反过来:

a sup {
  background: green;
}

a:visited sup {
  background: cyan;
}
<p id='text1'>
  Text1
  <a href='#footnote1'>
    <sup>[1]</sup>
  </a>
</p>

<ol>
  <li>
    <a href='#text1'>
      <sup id='footnote1'>[1]</sup>
    </a>Footnote1
  </li>
</ol>

选项 2:使用 JavaScript:

var elements = document.getElementsByTagName('a');

for (var i = 0; i < elements.length; i++) {
  document.getElementsByTagName('a')[i].parentNode.style.backgroundColor = "cyan";
}
<p id='text1'>
  Text1
  <sup>
    <a href='#footnote1'>[1]</a>
  </sup>
</p>

<ol>
  <li>
    <sup id='footnote1'>
      <a href='#text1'>[1]</a>
    </sup>Footnote1
  </li>
</ol>

希望对您有所帮助! :)