也就是Markdown超链接的title标题拿来当备注显示…
链接title是当鼠标悬停在链接上时会出现的文字,这个title是可选的,它放在圆括号中链接地址后面,跟链接地址之间以空格分隔,如下:

[无用功](https://weich22.github.io "没有用功努力,不做没用的功")。

既然原生自带的就有了还要折腾啥玩意?因为我觉得手机端浏览默认不显示,不方便,所以才有的这个文章。

1.手机长按一下就显示,拿开不会消失
靠的是:focus,只要焦点还在(下划线
还在),就一直显示
2.点别的地方才消失
焦点移走→自动隐藏
3.电脑 hover 直接显示
不用点、不用右键
4.只在 #postBody + link.html生效
按住→显示→拿开还显示→点别处才消失和原生焦点状态完全同步。

css部分:

<style>
/* 手机/电脑通用:只有焦点/hover 才显示,手指拿开依然保持显示 */
#postBody a.tooltip-link {
  position: relative;
  /* 下划线!保持原样 */
}

#postBody a.tooltip-link::after {
  content: attr(data-title);
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 4px;
  background: #333;
  color: #fff;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 14px;
  white-space: nowrap;
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s;
}

/* 核心:hover 电脑可用 + focus 保持显示(手机点完不消失) */
#postBody a.tooltip-link:hover::after,
#postBody a.tooltip-link:focus::after {
  opacity: 1;
  visibility: visible;
}
</style>

发现BUG修正版css

小BUG一般很少有人会注意到发现,既然我发现了就要修正,就是如果链接的备注标题太长,手机打开浏览页面的右边会溢出屏幕,然后会把整个页面往右边顶过去顶开往右边撑大,其实也有可能和我的博客修改的样式有点关系,因为我的博客最大宽度不限制。

<style>
#postBody a.tooltip-link {
  position: relative;
  display: inline-block;
}

#postBody a.tooltip-link::after {
  content: attr(data-title);
  position: absolute;
  /* 1. 回到起点:左对齐 */
  top: 100%;
  left: 0; 
  margin-top: 6px;

  background: #333;
  color: #fff;
  padding: 8px 12px;
  border-radius: 4px;
  font-size: 13px;
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s;

  /* 2. 核心修复:允许换行并严格限制宽度 */
  white-space: normal !important;      /* 允许换行 */
  word-wrap: break-word !important;   /* 强制断开长单词 */
  width: max-content !important;      /* 宽度随文字走 */
  line-height: 1.5;

  /* 3. 关键:设定手机端绝对安全的宽度,防止撑开右侧 */
  /* 一般手机屏幕宽 300px+,设为 200px 左右绝不会撑开页面 */
  max-width: 200px !important; 
}

/* 针对屏幕特别窄的手机进一步缩减 */
@media (max-width: 350px) {
  #postBody a.tooltip-link::after {
    max-width: 160px !important;
  }
}

#postBody a.tooltip-link:hover::after,
#postBody a.tooltip-link:focus::after {
  opacity: 1;
  visibility: visible;
}
</style>

js部分:

<script>
document.addEventListener('DOMContentLoaded', function () {
  // 只在链接页面生效
  if (window.location.pathname !== '/link.html') return;

  const postBody = document.getElementById('postBody');
  if (!postBody) return;

  // 只给 #postBody 里带 title 的链接生效
  postBody.querySelectorAll('a[title]').forEach(link => {
    link.classList.add('tooltip-link');
    link.dataset.title = link.title;
    link.removeAttribute('title');
    // 让手机 a 标签能真正获得焦点(关键!)
    link.setAttribute('tabindex', '0');
  });
});
</script>

代码添加到之前引用到头部的自定义css和js文件里面就好了。

→转载请注明出处←