You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化:target伪类样式,区分空/非空<a>元素的显示效果?

修复:target伪类的样式一致性问题

核心问题是原有CSS未区分**空与非空**的:target状态,导致非空错误套用了空锚点的横线样式。解决思路是用:empty伪类精准匹配空,让不同类型的目标元素各司其职:

最终CSS代码

/* 通用规则:块级、行内元素(含非空<a>)的target状态显示红色虚线轮廓 */
:target {
  outline: 2px dashed red;
}

/* 仅针对空<a>的target状态:覆盖轮廓,显示上方红色虚线横线 */
a:target:empty {
  outline: none;
  border-top: 2px dashed red;
}

代码说明

验证示例

<!-- 非空a元素,target时显示红色虚线轮廓 -->
<a id="non-empty" href="#non-empty">点击测试非空a的target样式</a>

<!-- 空锚点,target时显示上方红色虚线横线 -->
<a id="empty-anchor" href="#empty-anchor"></a>

<!-- 块级p元素,target时显示红色虚线轮廓 -->
<p id="test-p">
  这是块级p元素,<a href="#test-p">点击定位到我</a>
</p>

<!-- 行内span元素,target时显示红色虚线轮廓 -->
<p>这是行内<span id="test-span">span元素</span>,<a href="#test-span">点击定位到我</a></p>

内容的提问来源于stack exchange,提问作者user22996855

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:15:56