如何使用CSS实现文本旁的装饰线条效果?
我不清楚该如何描述这种效果,因此附上截图供参考:
你截图里的是代码编辑器的悬浮代码提示效果,鼠标悬停在变量、函数等代码节点上时,会弹出带语法高亮的定义、类型、说明信息。
不同场景下的实现方案如下:
VS Code扩展开发场景
直接调用官方提供的Hover Provider API即可实现,返回的浮层内容支持带语法标注的Markdown代码块,会自动渲染高亮效果:
import * as vscode from 'vscode'; export function activate(context: vscode.ExtensionContext) { // 注册对应语言的悬浮提示提供者 const hoverDisposable = vscode.languages.registerHoverProvider( // 这里替换为你要适配的语言ID,比如javascript、python 'javascript', { provideHover(document: vscode.TextDocument, position: vscode.Position) { // 你可以在这里先解析当前光标位置的代码内容,匹配对应的提示信息 const hoverContent = new vscode.MarkdownString(); // 追加带语法高亮的代码块,第二个参数指定语言ID hoverContent.appendCodeblock(`function getUserInfo(id: number): User { return { id, name: '张三', age: 20 } }`, 'typescript'); // 追加普通说明文本 hoverContent.appendMarkdown('\n获取指定ID的用户基础信息,返回值包含id、姓名、年龄三个字段。'); return new vscode.Hover(hoverContent); } } ); context.subscriptions.push(hoverDisposable); }
普通前端网页实现场景
可以组合两类工具实现:
- 代码高亮工具:Prism.js、highlight.js,负责给代码片段加上语法高亮样式
- 浮层定位工具:Floating UI,负责把提示浮层精准定位到悬停位置的旁边
核心逻辑是给页面上的代码节点绑定mouseenter、mouseleave事件,触发悬停时把预定义的代码片段经高亮工具处理后插入浮层,显示在对应位置即可。
内容的提问来源于stack exchange,提问作者user16613329
相关产品推荐
相关产品推荐


