Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置Highcharts HTML标签的背景色?_Highcharts - Fatal编程技术网

如何设置Highcharts HTML标签的背景色?

如何设置Highcharts HTML标签的背景色?,highcharts,Highcharts,我在试着设计一个新的风格。其中一个选项是style:CSSObject,但与许多Highcharts CSSObject一样,它实际上并不需要css。它完全被背景色阻塞了:,我似乎找不到一种有效的语法 labels: { items: [{ html: "<p>Box of text. But how do I set the Background Color?</p>", style

我在试着设计一个新的风格。其中一个选项是
style:CSSObject
,但与许多Highcharts CSSObject一样,它实际上并不需要css。它完全被
背景色阻塞了:
,我似乎找不到一种有效的语法

labels: {
            items: [{
                html: "<p>Box of text. But how do I set the Background Color?</p>",
                style: {
                    left: '60px',
                    top: '20px',
                    width: '250px',
                    fontSize: '10px',
                    backgroundColor: '#fffdcc'
                }
            }]
        },
标签:{
项目:[{
html:“文本框。但是如何设置背景颜色?

”, 风格:{ 左:'60px', 顶部:“20px”, 宽度:'250px', fontSize:'10px', 背景颜色:“#fffdcc” } }] },
如何设置背景色?

我认为这在highcharts API中是不可能的。我建议你只需在图表中添加你自己的html元素

<div id="addText" style="position:absolute; left:0px; top:0px;"></div>

var textX = 200;
var textY = 80;
var span = '<span id="labelText" style="position:absolute; text-align:center;width:150px;background-color:red">';
span += '<span style="font-size: 14px">Box of text with the background set.</span><br>';
span += '</span>';

$("#addText").append(span);
span = $('#labelText');
span.css('left', textX + (span.width() * -0.5));
span.css('top', textY + (span.height() * -0.5));

var textX=200;
var-textY=80;
var span='';
span+='文本框和背景设置。
'; span+=''; $(“#addText”).append(span); span=$(“#标签文本”); css('left',textX+(span.width()*-0.5)); css('top',textY+(span.height()*-0.5));


显然,作为标准的html/css,您可以根据需要设置文本样式。

不幸的是,这是不可能的,因为标签对象被转换为SVG元素,而SVG元素不包括您的样式,如背景。您可以使用变通方法,通过渲染器添加文本,通过rect()添加背景


示例

谢谢。这也非常有帮助。
var point = chart.series[0].data[8];

    var text = chart.renderer.text(
            'Max', 
            point.plotX + chart.plotLeft + 10, 
            point.plotY + chart.plotTop - 10
        ).attr({
            zIndex: 5
        }).add();

    var box = text.getBBox();
    chart.renderer.rect(box.x - 5, box.y - 5, box.width + 10, box.height + 10, 5)
        .attr({
            fill: '#FFFFEF',
            stroke: 'gray',
            'stroke-width': 1,
            zIndex: 4
        })
        .add();