【问题标题】:Prevent <span> tags from becoming tabs when selecting text选择文本时防止 <span> 标签变成标签
【发布时间】:2019-02-06 08:41:23
【问题描述】:

所以,我有一个广泛使用 html 表格的旧网站。
在表格单元格中,通常有一个&lt;span&gt; 标签,上面有一些属性。我无法更改这些表的结构。
当有人想要选择单元格中的所有文本时,如果他们不能绝对确保只选择可见字符,则包含文本的 &lt;span&gt; 标记将转换为制表符。因此,如果他们将文本粘贴到某处,它将以选项卡开头。

例子:

table {
  margin-left: 230px;
  margin-top: 10px;
  border: 1px solid black;
}
td {
  padding: 5px;
  border: 1px solid black;
}
p, textarea {
  margin-left: 50px;
  width: 500px;
  min-height: 20px;
}
<table><!-- (comments to remove whitespace between tags)
  --><tbody><!--
    --><tr><!--
      --><td><span>first cell</span></td><!--
      --><td><span>hi there</span></td><!--
    --></tr><!--
  --></tbody><!--
--></table>
<p>Select "hi there" from the end to the begginning, by going past it, and paste it below, you will see a tab character at the beginning.<br>
(There can also be a new-line character before "first cell")</p>
<textarea></textarea>

基本上我想要的是实际复制的文本正是视觉突出显示的文本。至少如果选择在单个单元格内。
可以用css做到这一点吗?

同样,我无法更改 HTML 结构,只能更改 css,因此我无法将那些 &lt;span&gt;s 替换为其他 HTML 标记。
此外,当用户单击它们时,我不能使用 Javascript 来执行诸如将单元格“转换”为输入的操作,以便他可以精确地选择文本。以防万一有人会考虑这个解决方案(这很酷,但我做不到)。

编辑:在发布问题后不久我找到了一个合理的解决方案(橡皮闪避的工作延迟......)。解决方案是在表格单元格中添加填充。而且制表符甚至与&lt;span&gt; 没有任何关系。当您的选择进入另一个单元格时,它会出现。
但是,我仍然想知道是否有任何方法可以使用 css 删除这种空白。

【问题讨论】:

  • 除非您想在单击单元格时添加“将单元格复制到剪贴板”操作,否则用户必须谨慎选择文本。
  • 排序。就我而言,这是我的错,因为单元格中没有填充。即使这样也有很大帮助。

标签: css html whitespace removing-whitespace


【解决方案1】:

你可以试试

html{ 
    -o-user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    user-select: none; 
}
span,p,textarea,div,br,td{
    -o-user-select: text;
    -moz-user-select: text;
    -webkit-user-select: text;
    user-select: text;
}

您可以在 span,p,div 列表中添加更多标签名称.....

【讨论】:

  • 谢谢,但它不起作用,标签仍然出现。请看我的编辑。实际上,&lt;span&gt; 标记并没有被转换为选项卡,该选项卡是由浏览器添加的,因为选择进入了另一个单元格。使用该选项卡,您可以选择整个表格的文本,并且在将其粘贴到某处时仍然可以对其进行某种格式化。
  • ok.. 使用我的解决方案进行测试时是否清除了缓存?在 css 文件名旁边添加 ?v=1.2.3... 例如 并且在您对 css 文件进行更改时只需更改 1.2.3...
  • 我是直接在浏览器的控制台中测试的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-29
  • 2016-07-13
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多