HTML5 - Chrome 中的 SVG 文本选择错误?

标签 html google-chrome svg

我正在用 HTML5 开发一个 Web 应用程序,使用 SVG 绘制路径和文本。在 OS X 上使用 Chrome 进行测试时,我遇到了一些非常丑陋的行为,这似乎是 Chrome 中的错误。

考虑以下由路径交叉的 SVG 文本的最小示例:

<svg height="200" width="200">
    <text x="50" y="50" fill="#000" font-size="50" style="pointer-events: none;">
        <tspan x="5" dy="0">Test Text</tspan>
    </text>
    <path d="M 0 0 L 100 100" stroke="#000" stroke-width="5"></path>
</svg>

( http://jsfiddle.net/wPYvS/ )

我不希望在使用光标拖动 SVG 文本时选中(或突出显示)它。所以我添加了 CSS 属性“pointer-events: none”,它在除 Chrome 之外的所有浏览器中都按预期工作。在 Chrome 中,当您仅在文本上拖动时,不会选择任何内容。但是,如果您拖过路径挡住的文本(因此,实际上您拖过路径),文本会突出显示。

我能够在 Chrome、OS X 和 Windows 中重现此内容,但无法在 Firefox、Opera 或 Safari 中重现。

是否有一些解决方法可以用来在所有浏览器中完全阻止文本选择?

提前致谢!

最佳答案

您可以使用 css 伪选择器设置选择高亮颜色。

svg text::selection { background: none; }

引用 here .

关于HTML5 - Chrome 中的 SVG 文本选择错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18124820/

相关文章:

internet-explorer - Highcharts 将重复的 xmlns 属性添加到 IE 中的 SVG 元素

javascript - SVG 脚本 - 动态插入图像失败

javascript - 如何使用 srcset 延迟加载图像?

javascript - 我应该在 jQuery 函数中编写什么来从输入字段 (id=btnCloseDeal) 获取值并将其显示在另一个页面上?

javascript - 有没有办法查找添加到主屏幕 - 应用程序图标是否已使用 Javascript 添加到主屏幕?

javascript - 是否可以在 beforeunload 弹出窗口中显示自定义消息?

html - IE 在将 max-width 与 svg 图像一起使用时不保持纵横比

javascript - 如何使用 php DOM 从 html 页面获取特定链接?

javascript - 以字节数组形式上传和下载图像

html - 奇怪的 HTML 和 CSS 行为