Mat*_*ron 30 javascript css browser google-chrome
为什么谷歌浏览器在用3次鼠标点击选择文本时总是在行末添加空格?
您认为我们可以使用CSS或JavaScript来删除它吗?(不好主意,但只是试图避免这件事)
块:
当我在文本上单击3次时:
一个gif例子:
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is established to be used for illustrative examples in documents. You may use this
domain in examples without prior coordination or asking for permission.</p>
<p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
小智 14
我在Chrome和Firefox之间进行了很多测试,以找出显示,选择和复制方法的常见模式.
Google Chrome会忽略HTML中的所有内部和外部元素空白字符,除非它们位于文本中.文本之间的所有空白字符都显示为单个空格字符,但保留字符的实际值.这适用于具有内联或块显示样式的两个元素.
除了body元素的最后一个元素之外,每个元素在使用三击或拖动选择选择它时在末尾显示一个空格.根据元素的显示样式,该空间不同.
当复制文本时,块显示元素会在其中附加2个CRLF字符,而内联显示元素仅导致1个CRLF.空白字符在复制和粘贴之间保持,但仅限于一个字符.
Firefox忽略外部元素空白,但内部元素空白字符的结果很有趣.所有空白字符都转换为空格,除了起始字符,每个非空白字符之间限制为一个空格.仅显示和选择最后一个空格.
三次单击选择和复制文本会根据该元素的显示样式生成不同的值.
内联显示
无论元素包含什么,复制的文本前后总是有一个空格.每个空白字符都被删除.
块显示
文本前的空白字符按原样保留,结束的空白字符转换为空格.
所以要回答你的问题,这完全取决于浏览器如何实现显示,选择和复制方法.浏览器之间会有所不同,我不建议添加CSS,JS和HTML黑客.从测试中,我认为选择与元素之间的新行无关,因为删除换行不会修复额外的空间选择.
尝试使用以下html创建一个虚拟HTML页面并尝试,
<html>
<body>
<h1>Hello world</h1>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
然后添加另一个元素,然后重试
<html>
<body>
<h1>Hello world</h1>
<span>Test</span>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2379 次 |
| 最近记录: |