说个多年老前端都不知道的标签正确玩法——q标签

最近在接手一个老旧的 Markdown 编辑器项目时,遇到一块让我血压飙升的代码:行内引用,写得一塌糊涂。

  • span 嵌套引号,全靠手动拼

  • 样式杂乱,兼容性堪忧

  • 一点语义都没有

我心想:就没点优雅点的写法了吗?

研究过程中发现一个以前从未在意过的标签: <q> 标签。

通过MDN 可以看到这个标签的兼容性已经很不错了。

它叫 <q>,全称 quote,代表 短引用。但它到底能干嘛?为什么它一直活在 HTML 规范里,却像个「隐形人」一样没人提起?

今天,隆重介绍一下它。

<q> 是什么?它和引号有什么关系?

你可能以为加双引号只需要这样写:

<p>乔布斯说:"活着就是为了改变世界。"</p>

但其实 HTML 提供了更聪明的做法:

<p>乔布斯说:<q>活着就是为了改变世界。</q></p>

对比一下效果:

<body>
  <h3>加引号</h3>
  <p>乔布斯说:"活着就是为了改变世界。"</p>
  <h3>不加引号</h3>
  <p>乔布斯说:<q>活着就是为了改变世界。</q></p>
</body>

不仅不用手动写引号,还能根据语言环境智能区分单双引号。

那为啥很少人用?

主要是这三点原因:

  • 样式太朴素: 看起来和普通文本没区别,很容易被忽视。

  • 兼容性曾有历史包袱: 某些旧浏览器不会显示引号,引发过“信任危机”。

  • 被 Markdown 灌坏了: 现在很多人直接用 > 引用,已经不写 HTML 了。

<q>标签真的只能这么朴素吗? 其实稍微修饰一下就可以焕然一新的。

美化玩法

可以通过css样式来美化一下:

// 设置中文引号样式 + 颜色加粗
q {
  quotes: "「" "」";
  color: #1343fa;
  font-weight: bold;
}

quotes 属性轻松搞定,原本普通的 <q> 马上就有了辨识度,瞬间就有了中文引用的风格「中文风」

再来点动画点缀,<q>标签立马灵动:

q {
quotes: "👉""👈";
color: #3594f7;
font-weight: bold;
}
q::before {
display: inline-block;
}
q::after {
display: inline-block;
}

q:hover::before {
animation: poke-back 0.6s ease-in-out infinite;
}
q:hover::after {
animation: poke-forward 0.6s ease-in-out infinite;
animation-delay: 0.3s;
}

@keyframes poke-back {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(-3px);
  }
}
@keyframes poke-forward {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(3px);
  }
}

写引用别总靠引号,用 <q>,优雅又语义! 别再埋没这些原生语义标签了,也许你忽视的,不只是 <q>,而是整个前端体系里写得更好的可能性。

-END -

如果您关注前端+AI 相关领域可以扫码进群交流

添加小编微信进群😊

关于奇舞团

奇舞团是 360 集团最大的大前端团队,非常重视人才培养,有工程师、讲师、翻译官、业务接口人、团队 Leader 等多种发展方向供员工选择,并辅以提供相应的技术力、专业力、通用力、领导力等培训课程。奇舞团以开放和求贤的心态欢迎各种优秀人才关注和加入奇舞团。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值