Lui*_*rti 5 html css character spreadsheet
所以我正在做一个网络聊天作为一个侧面项目,我遇到的一个问题是使复制和粘贴消息的用户体验友好.
现在,所有元素都在自己的标签内组织,间隔开并用CSS规则分隔,如果你尝试复制聊天日志的一部分,它就会出现23:49userHello World.
我想到的解决方案是使用零宽度制表符分隔它们,仍然可以通过文本选择来拾取,并且粘贴为原始文本时只是一个普通的制表符.这不仅会在复制粘贴操作中将其分开,而且还可以使用它进行解析awk.
如何	使用CSS或任何字符修改可打印的制表符(),使其对布局不可见,但仍然会在文本选择中被拾取?
由于所有元素都组织在自己的标签内,因此您可以使用:after想要作为内容中分隔符的字符(使用font-size:0)。据我所知,此解决方案仅适用于 IE,因为其他浏览器不会选择伪元素):
span:after {
    content: " ";
    font-size:0;
}
你可以在这个jsfiddle上看到它:http://jsfiddle.net/bc7jrdff/1/(记住只能在IE上!)
另一种 CSS 可能性是在生成页面时直接添加特殊字符,并应用::first-letter伪元素。此解决方案的问题是并非所有字符都将计为第一个字母(空格不会)
使用 JavaScript,您可以想出一个适用于所有浏览器的解决方案:将您的角色附加到元素(再次使用font-size:0):
// CSS
span.hiddenChar {
    font-size:0;
}
// JS
$(document).ready(function() {
    $("span").prepend("<span class='hiddenChar'> </span>");
});
您可以在这里看到它的工作原理:http ://jsfiddle.net/bc7jrdff/2/
或者,如果您更喜欢不带 jQuery 的 JavaScript:
// HTML
<span class="data">23:49</span><span class="data">user</span><span class="data">Hello World!</span>
// JS
var aux = document.querySelectorAll(".data");
for (x = 0; x < aux.length; x++) {
    aux[x].innerHTML = "<span class='hiddenChar'> </span>" + aux[x].innerHTML;
};
你可以在这个jsFiddle上看到:http://jsfiddle.net/bc7jrdff/4/