让实现HTML展示类似ghub的功能代码框增加复制按钮 小放在代码框右上角
实现HTML展示类似ghub的功能可以通过以下步骤:
-
使用HTML的
标签来展示代码,可以在
标签里放置
标签,使得代码能够被高亮显示。 -
添加CSS样式,使
标签里的代码能够像在Github上一样被高亮显示。
-
添加复制按钮,可以使用JavaScript来实现复制功能,当用户点击复制按钮时,将代码复制到剪切板中。
-
将复制按钮放置在代码框右上角,可以使用CSS样式来实现。
以下是一个示例代码:
HTML代码:
<pre>
<code class="language-javascript">
function sayHello() {
console.log("Hello World!");
}
</code>
<button class="copy-btn">Copy</button>
</pre>
CSS代码:
pre {
background-color: #f6f8fa;
border-radius: 3px;
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
font-size: 14px;
line-height: 1.45;
overflow: auto;
padding: 16px;
}
pre code {
display: block;
overflow-x: auto;
white-space: pre;
}
pre code::before,
pre code::after {
content: "";
}
pre code[class*="language-"],
pre[class*="language-"] {
color: #333;
text-shadow: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
background: #b3d4fc;
}
/* Copy button */
.copy-btn {
position: absolute;
top: 10px;
right: 10px;
background-color: #333;
color: #fff;
border: none;
border-radius: 3px;
padding: 8px;
cursor: pointer;
}
.copy-btn:hover {
background-color: #555;
}
.copy-btn:focus {
outline: none;
}
JavaScript代码:
const copyBtn = document.querySelector('.copy-btn');
const codeBlock = document.querySelector('pre code');
copyBtn.addEventListener('click', () => {
const code = codeBlock.innerText;
const textarea = document.createElement('textarea');
textarea.value = code;
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
});
通过以上代码,我们就可以实现HTML展示类似ghub的功能了,用户可以在代码框右上角找到复制按钮,将代码复制到剪切板中,方便用户进行复制和粘贴操作
原文地址: https://www.cveoy.top/t/topic/hnOi 著作权归作者所有。请勿转载和采集!