问题背景
在博客园代码高亮中,如果显示了行号,读者在复制代码时会将行号一起复制出来,要删除这些行号,代码才可用,
[Web前端]CSS实现“不可选择,不可复制”面临的问题网页设计
。为了解决这个麻烦,我们开始采用的方法是在高亮代码下面提供一个“复制代码”链接,点击这个链接时,通过js代码删除行号。
这个方法欠缺之处:1. 读者不一定注意到“复制代码”链接;2. 多了一次点击操作。
解决思路
读者复制代码的通常操作是鼠标拖拉选择代码内容,然后Ctrl+C进行复制。增加任何鼠标与键盘的操作,都不是好的解决方法。
我们想到的最简单的解决方法就是通过CSS来实现。
实现过程
主要参考内容:css rule to disable text selection highlighting
测试浏览器:Firefox, Chrome, IE9
HTML测试代码:
<!DOCTYPE HTML><html><head><meta. charset="UTF-8"><title>Code LineNumber Copy Test</title><style. type="text/css"><span>.cnblogs_code</span><span>{</span><span>background-color</span><span>:</span><span>#F5F5F5</span><span>;</span><span>font-family</span><span>:</span><span>Courier New</span><span>;</span><span>font-size</span><span>:</span><span>12px</span><span>;</span><span>border</span><span>:</span><span>1px solid #CCCCCC</span><span>;</span><span>padding</span><span>:</span><span>5px</span><span>;</span><span>overflow</span><span>:</span><span>auto</span><span>;</span><span>}</span><span>.codeLineNumber</span><span>{</span><span>color</span><span>:</span><span>#008080</span><span>;</span><span>}</span></style></head><body><div class="cnblogs_code">