javascript - 无法将 CSS 样式应用于 SVG 文本元素

标签 javascript html css d3.js svg

我注意到,当您使用 JS 附加文本时,某些样式规则有效,而其他规则则停止工作。具体来说,请考虑我的 css 样式规则,该规则在悬停时创建 border-bottom...

var svg = d3.select('body')
        .append('svg')
        .attr('height',200)
        .attr('width',200);

svg.append('a')
    .append('text')
    .html('This is not a text.')
    .attr('font-size', '14px')
    .attr('class', 'content-text-1')
    .attr('x', 10)
    .attr('y', 20);
.content-text-1:hover {
    border-bottom: 1px solid blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

<body>
</body>

我不相信这是一个“异步”类型的问题,因为当我创建其他东西时,例如 svg rectscircles (仅举一个例子)很少),它们可以在事后设计。

问题:是什么导致 border-bottom 不显示?

最佳答案

使用 div 而不是 svg,因为 svg 有其独特的标识,不支持 border-bottom

var div = d3.select('body')
        .append('div')
        .attr('height',200)
        .attr('width',200);

div.append('a')
    .append('text')
    .html('This is not a text.')
    .attr('font-size', '14px')
    .attr('class', 'content-text-1')
    .attr('x', 10)
    .attr('y', 20);
.content-text-1:hover {
    border-bottom: 1px solid blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

<body>
</body>

关于javascript - 无法将 CSS 样式应用于 SVG 文本元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47278149/

相关文章:

javascript - 突出显示表格单元格的 Angular - html/css

根据服务器可用性将 HTML 重定向到不同的 URL

html - 图片在 iPhone 上的 Safari 中不显示

javascript - 如何将数组中的对象推送到 csv 中的下一列

javascript - 运行基本的 Three.js

javascript - 在angularjs中共享和保存来自多个 Controller 的数据

javascript - 带叠加功能的img形式

html - 可以使用 mySQL 数据创建 Canvas 吗?

javascript - MVC JQuery Ajax Busy Indicator 覆盖在表单上

javascript - 剪切元素 - JQuery