有时,我们可能需要使用多个不同的#尾URL来提供指向网页上特定部分的路径,而就我所知,对于这项任务,我们必须使用多个空白<a>元素.下面是一个例子:

<p><a href="#sun">Lorem</a> ipsum.</p>
<p>Lorem ipsum dolor sit amet.</p>
<p>Lorem <a href="#yellow">ipsum</a> dolor sit amet.</p>
<p>Lorem ipsum dolor sit amet.</p>
<p>Lorem ipsum dolor <a href="#hot">sit</a> amet.</p>
<p>Lorem ipsum dolor sit amet.</p>
<p>Lorem ipsum dolor sit amet.</p>
<a id="yellow"></a>
<a id="hot"></a>
<h1 id="sun">Sun</h1>
<p>Lorem ipsum dolor sit amet.</p>
<p>Lorem ipsum dolor sit amet.</p>

在"跳转"之后(即,在用户点击了一个超链接之后),我更愿意使用:target伪类突出显示<h1>元素Sun.

但如何让它不仅适用于href="sun",还适用于href="hot"href="yellow"

/* works for href="sun" */
:target { outline: 1px solid red; }

/* my attempt to make it work for href="hot". Doesn't work.
And there is still a question how to make it work for href="yellow" */
:target + h1 { outline: 1px solid red; }

推荐答案

使用通用同级 Select 器:target ~ h1:

:target:not(a) {
  outline: 1px solid red;
}

:target ~ h1 {
  outline: 1px solid red;
}
<p><a href="#sun">Lorem</a> ipsum.</p>
<p>Lorem ipsum dolor sit amet.</p>
<p>Lorem <a href="#yellow">ipsum</a> dolor sit amet.</p>
<p>Lorem ipsum dolor sit amet.</p>
<p>Lorem ipsum dolor <a href="#hot">sit</a> amet.</p>
<p>Lorem ipsum dolor sit amet.</p>
<p>Lorem ipsum dolor sit amet.</p>
<a id="yellow"></a>
<a id="hot"></a>
<h1 id="sun">Sun</h1>
<p>Lorem ipsum dolor sit amet.</p>
<p>Lorem ipsum dolor sit amet.</p>

Html相关问答推荐

如何防止SVG图标出现断行?

如何在元素的三条边中间换行边框?

assets资源 净值元素不会扩展到涵盖子项

SVG';COLOR&39;属性不优先于通用css';COLOR&39;属性

HX-POST未使用正确的操作(路径)

如何显示自定义按钮以将产品添加到WooCommerce购物车?

try 更新我的Node.js应用程序中的用户,但我收到错误.然而,当我使用postman 时,更新工作正常

使自定义图像滑块全宽

如何在悬停时使用 CSS 更改许多同级元素

页面文件夹内的 HTML 页面未加载主目录的 style.css

jQuery 索引返回不正确的结果

如何将背景与之前的内容正确对齐

使用 R markdown 在 html 中包含图像

Mediawiki css/html 信息框创建空白行

需要禁用聚焦输入的工具提示(jquery)

使用 golem 框架在shiny 的应用程序中存储背景图片的位置

CSS 网格自动高度不适用于特定网格区域

标题之间和之后的 Hr 线

文本输入在 Chrome 中保持水平滚动,带有文本溢出:省略号

是否可以使用纯 css 创建具有斜角效果的锯齿形边缘?