我希望我的Highcharts树形图上的标签文字是带有黑色边框的白色,这样它在所有颜色上都是一致且清晰可见的。这可能吗?我使用了textShadow选项,它在Chrome中看起来不错(虽然不是很好)但在Internet Explorer中看起来非常不专业。请看这里的小提琴:
https://jsfiddle.net/k1hohozg/4/
$(function () {
$('#container').highcharts({
title: "",
series: [{
type: "treemap",
data: [
{
name: 'Name One',
value: 20,
color: "#FFFF00"
}, {
name: 'Name Two',
value: 20,
color: '#000099',
}, {
name: 'Name Three',
value: 1,
color: '#007799',
}, {
name: 'Name Four',
value: 1,
color: '#FFCC00',
}
],
levels: [{
level: 1,
dataLabels: {
enabled: true,
align: 'center',
style: {
fontSize: '20px',
color: '#FFFFFF',
textShadow: "0 0 3px #000, 0 0 3px #000",
}
},
}],
}],
});
})
我不想使用"对比"选项,因为我需要所有文本看起来相同,因此白色带有黑色边框。在所有标准浏览器中使这种外观更好的最佳方法是什么?
谢谢!
答案 0 :(得分:1)
我认为使用IE不能很好地解释 textShadow 属性是不可能的。但是,您可以在标签上添加背景以使其更加明显:
$(function() {
$('#container').highcharts({
title: "",
series: [{
type: "treemap",
data: [{
name: 'Name One',
value: 1,
color: "#FFFF00"
}, {
name: 'Name Two',
value: 1,
color: '#000099',
}],
levels: [{
level: 1,
dataLabels: {
enabled: true,
align: 'center',
borderRadius: 5,
backgroundColor: 'rgba(255, 255, 255, 1)',
style: {
fontSize: '20px',
color: '#000',
}
},
}],
}],
});
})

<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/treemap.js"></script>
<div id="container"></div>
&#13;
您可以从文档中激发自己的灵感:
http://api.highcharts.com/highcharts#plotOptions.area.dataLabels.backgroundColor
答案 1 :(得分:1)
没有默认的Highcharts方法来处理IE渲染效果不佳的文本阴影。可以将useHTML设置为true并添加多个将模仿阴影的标签。 (在Chrome,Firefox和IE11中看起来很好)。
示例:http://jsfiddle.net/yzLavxc9/2/
....
dataLabels: {
useHTML: true,
formatter: function () {
return '<div class=dataLabelContainer><div style="position: absolute; top: -1px; left: 1px; color: #000;">'+this.key+'</div><div style="position: absolute; top: 1px; left: 1px; color: #000;">'+this.key+'</div><div style="position: absolute; top: 1px; left: -1px; color: #000;">'+this.key+'</div><div style="position: absolute; top: -1px; left: -1px; color: #000;">'+this.key+'</div><div style="position: absolute; color: #fff;">'+this.key+'</div></div><div style="color: #fff;">'+this.key+'</div></div>';
},
enabled: true,
align: 'center',
style: {
fontSize: '20px',
....