使用 Flexbox 时 Apex 图表无法正确调整大小
Apex Charts dont resize properly when using Flexbox
最近我将 Floats 更改为 FlexBox 以便更轻松地使用面板(正如我在其他问题上所建议的那样)。虽然大多数事情都按我预期的那样工作,但我在更改后遇到了 Apex 图表问题。
完整代码在这里:
https://github.com/EvotecIT/PSWriteHTML/blob/master/Examples/Example12-Charts/Example12.html
这是加载后的样子。您会注意到,在第一行和第二行图表中,即使它们所在的面板就位并且它适用于顶行,也会超出范围。
如果我调整大小(例如 1 毫米),它将开始正常工作。
知道可能是什么问题吗?
在顶点图表中 CSS 它有不使用溢出的注释(我试过了但它什么也没做)但老实说,我什至有一次忘记附上那个 CSS 但什么也没有改变了(就像一切都由 JS 完成。
.apexcharts-canvas {
position: relative;
user-select: none;
/* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */
}
/* scrollbar is not visible by default for the legend, hence forcing the visibility */
请记住,在 JS/CSS/HTML 方面我完全是菜鸟所以请原谅我的语言。
您需要将所有脚本移动到末尾,而不是在 HTML 中注入,以允许 SVG 文档解析器正确获取元素的大小。
var options = {
"chart": {
"height": 350,
"type": "line",
"toolbar": {
"show": true,
"tools": {
"download": true,
"selection": true,
"zoom": true,
"zoomin": true,
"zoomout": true,
"pan": true,
"reset": true
},
"autoSelected": "zoom"
}
},
"plotOptions": {
"bar": {
"horizontal": true
}
},
"dataLabels": {
"enabled": true,
"offsetX": -6,
"style": {
"fontSize": "12px",
"colors": [
null
]
}
},
"series": [{
"name": "People count",
"data": [
400,
430,
448
]
},
{
"name": "People death",
"data": [
450,
0,
200
]
}
],
"xaxis": {
"type": "category",
"categories": [
"2015",
"2016",
"2017"
]
},
"stroke": {
"show": true,
"curve": "straight",
"width": 2,
"colors": [
"#0000ff",
"#008000"
]
},
"legend": {
"position": "right",
"offsetY": 100,
"height": 230
},
"title": {
}
}
var chart = new ApexCharts(document.querySelector('#ChartID-2rhiatbe'),
options
);
chart.render();
最近我将 Floats 更改为 FlexBox 以便更轻松地使用面板(正如我在其他问题上所建议的那样)。虽然大多数事情都按我预期的那样工作,但我在更改后遇到了 Apex 图表问题。
完整代码在这里: https://github.com/EvotecIT/PSWriteHTML/blob/master/Examples/Example12-Charts/Example12.html
这是加载后的样子。您会注意到,在第一行和第二行图表中,即使它们所在的面板就位并且它适用于顶行,也会超出范围。
如果我调整大小(例如 1 毫米),它将开始正常工作。
知道可能是什么问题吗?
在顶点图表中 CSS 它有不使用溢出的注释(我试过了但它什么也没做)但老实说,我什至有一次忘记附上那个 CSS 但什么也没有改变了(就像一切都由 JS 完成。
.apexcharts-canvas {
position: relative;
user-select: none;
/* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */
}
/* scrollbar is not visible by default for the legend, hence forcing the visibility */
请记住,在 JS/CSS/HTML 方面我完全是菜鸟所以请原谅我的语言。
您需要将所有脚本移动到末尾,而不是在 HTML 中注入,以允许 SVG 文档解析器正确获取元素的大小。
var options = {
"chart": {
"height": 350,
"type": "line",
"toolbar": {
"show": true,
"tools": {
"download": true,
"selection": true,
"zoom": true,
"zoomin": true,
"zoomout": true,
"pan": true,
"reset": true
},
"autoSelected": "zoom"
}
},
"plotOptions": {
"bar": {
"horizontal": true
}
},
"dataLabels": {
"enabled": true,
"offsetX": -6,
"style": {
"fontSize": "12px",
"colors": [
null
]
}
},
"series": [{
"name": "People count",
"data": [
400,
430,
448
]
},
{
"name": "People death",
"data": [
450,
0,
200
]
}
],
"xaxis": {
"type": "category",
"categories": [
"2015",
"2016",
"2017"
]
},
"stroke": {
"show": true,
"curve": "straight",
"width": 2,
"colors": [
"#0000ff",
"#008000"
]
},
"legend": {
"position": "right",
"offsetY": 100,
"height": 230
},
"title": {
}
}
var chart = new ApexCharts(document.querySelector('#ChartID-2rhiatbe'),
options
);
chart.render();