为什么 Chart.js 画布不考虑容器元素的填充?

2024-05-01

我将 Chart.js 与简单的折线图一起使用,但 Chart.js 计算的宽度和高度属性似乎基于父元素的总宽度和高度,忽略填充。

var options = {
    maintainAspectRatio: false,
    responsive: true
};

var data = {
    labels: ["", "", "", "", "", "", ""],
    datasets: [
        {
            label: "My First dataset",
            fillColor: "rgba(220,220,220,0.2)",
            strokeColor: "rgba(220,220,220,1)",
            pointColor: "rgba(220,220,220,1)",
            pointStrokeColor: "#fff",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "rgba(220,220,220,1)",
            data: [65, 59, 80, 81, 56, 55, 40]
        },
        {
            label: "My Second dataset",
            fillColor: "rgba(151,187,205,0.2)",
            strokeColor: "rgba(151,187,205,1)",
            pointColor: "rgba(151,187,205,1)",
            pointStrokeColor: "#fff",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "rgba(151,187,205,1)",
            data: [28, 48, 40, 19, 86, 27, 90]
        }
    ]
};

var ctx1 = document.getElementById("mychart1").getContext("2d");
var myNewChart = new Chart(ctx1).Line(data, options);
.container {
    padding: 15px 15px 15px 15px;
    width: 300px;
    height: 200px;
    border: 1px solid black;
}

.child {
    display: inline-block;
    border: 1px solid red;
    width:100%;
    height:100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.1.1/Chart.js"></script>


<div class='container'>
    <canvas id='mychart1' class='child'></canvas>
</div>
<br>
<div class='container'>
    <div class='child'>test</div>
</div>

JSFiddle http://jsfiddle.net/whw90pkh/

第二个容器和子容器显示了我期望的行为。这是 Chart.js 计算画布宽度和高度的错误,还是我犯了样式错误?


我还需要一个响应式画布并遇到了这个问题。这是我的修复:

<div>
    <canvas id="chart"></canvas>
</div>

由于 Chart.js 将画布缩放到容器的宽度,忽略填充,我只是将画布包裹在div. The div使用填充缩放到容器,尊重填充,然后是响应式 Chart.jscanvas缩放至div.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Chart.js 画布不考虑容器元素的填充? 的相关文章

随机推荐

  • Django ModelForm 不保存数据

    我已经尝试过以下帖子中的解决方案 从 ModelForm 保存数据 https stackoverflow com questions 13046488 saving data from modelform 没起作用 ModelForm数据
  • 识别 IR 中的阵列类型

    我一直在尝试使用以下代码来识别 IR 中的数组访问 for BasicBlock iterator ii BB gt begin ii2 ii BB gt end ii Instruction I ii if GetElementPtrIn
  • iPhone 中的应用程序堆大小是多少?

    HI iPhone 中的应用程序堆大小是多少 我的意思是应用程序可以使用 iPhone 中的内存大小 对于 ipod 来说是一样的还是对于 iPhone 或 iPod 来说是不同的 我们可以使用 NSdata 在我们的应用程序中下载的 iP
  • NGINX 与 Tomcat 配置

    我是 Nginx 新手 我需要你的帮助 根据很多论坛我了解到我们所有的静态页面都存储在Nginx中 当有请求到来时 我必须将该请求传递给 tomcat 获取数据 并在 tomcat 生成响应后生成响应 目前 我刚刚做到了 我将请求直接传递给
  • 编码标准维基

    在我的工作地点 我负责创建编码标准文档 一般来说 我们在某种程度上遵循 FxCop 和 StyleCop 工具报告的内容 但我们真正需要的是解释何时使用约定的文档 为什么使用约定 甚至可能是一个简单的示例 将来也可以将其扩展用于其他目的 我
  • pipx 如何知道要使用哪个 Python 版本?

    我是一个坚强的pyenv and poetry开始使用的用户pipx并希望了解更多有关其工作原理的信息 具体来说 我想了解它如何确定安装时使用哪个Python版本 我注意到它似乎在搜索PATH现有的应用程序参考 当您pipx install
  • ASP.NET Core [要求] 不可为 null 的类型

    Here https stackoverflow com questions 6662976 required attribute for an integer value 提出了如何验证不可为空的必需类型的问题 在我的情况下 提供的使字段
  • fbtorch:cmake 找不到 torch 目录

    我正在尝试构建并安装 fbtorch 但是当我使用 cmake 时出现以下错误 CMake Error at CMakeLists txt 9 FIND PACKAGE By not providing FindTorch cmake in
  • 为什么这个“std::atomic_thread_fence”起作用

    首先我想谈一下我对此的一些理解 如有错误请指正 a MFENCE在x86中可以保证全屏障 顺序一致性可防止 STORE STORE STORE LOAD LOAD STORE 和 LOAD LOAD 重新排序 这是根据维基百科 https
  • Firebase 依赖项:“警告:API 'variant.getMergeResources()' 已过时并已被替换”[重复]

    这个问题在这里已经有答案了 我最近开始使用 firebase 并按照官方指南添加了一些依赖项到我的项目中以便能够使用它 以下是我添加到新创建的项目中的依赖项 apply plugin com google gms google servic
  • 如何使用 eloquent/fluent 从单个查询中更新多行?

    我正在学习如何使用 eloquent fluent 从单个查询中插入多行我在这里找到了答案 https stackoverflow com questions 29723865 how to insert multiple rows fro
  • DOM 属性更改时触发事件

    有没有办法在属性更改时触发事件 可能是自定义的 比方说 当IMG src或DIV的innerHtml发生变化时 注意 自 2012 年起 突变事件已从标准中删除 现已弃用 有关如何使用其替代品 请参阅其他答案或文档 MutationObse
  • 在 PHP 中使用消息队列与普通 Cron 作业之间的区别

    我们有一个基于 PHP 构建的大型 Web 应用程序 该应用程序允许安排推文和墙贴 并且有从服务器发出的预定电子邮件 我所说的 计划 是指这些 PHP 脚本计划在特定时间运行cron 大约有 7 个 PHP 文件可以完成上述工作 我一直听说
  • 如何在sql server中获取从当前日期时间到过去7天的过去7天的数据

    您好 我正在使用 pentaho 将表 A 数据从 sql server 加载到 mysql 加载数据时 我只需要从 sql server A 表获取最近 7 天的数据到 mysql 在sql server中createddate列数据类型
  • IllegalStateException:无活动

    我有一个非常奇怪的问题 我一生都无法弄清楚 我有一个即将完成的应用程序 我已经开始在不同版本的 Android 和模拟器中的不同屏幕尺寸 密度上测试它 一切工作正常 直到我使用 Android 3 1 和 3 2 Honeycomb 我得到
  • 模拟三星 Galaxy Tab

    我想使用新的 Samsung Galaxy Tab 平板电脑测试我的应用程序 我应该在模拟器中设置什么参数来模拟该设备 我应该设置什么分辨率和密度 如何表明这是一个大屏幕设备 这款平板电脑支持哪些硬件 最大堆大小是多少 哪个安卓版本 UPD
  • 在Windows应用程序中创建一个文本文件

    我想打开一个文本文件并向该文件写入一些数据 这是我的代码 FileStream fs1 new FileStream D Yourfile txt FileMode OpenOrCreate FileAccess Write StreamW
  • ngClass多次调用方法[重复]

    这个问题在这里已经有答案了 我创建了一个方法并将其附加到 ngClass 以根据条件添加两种样式 我还将数字作为参数传递以在 switch case 中使用 组件 html div class circle div class circle
  • 用于在管道传输结果时链接异步操作的 GCD 模式

    来自 JavaScript 世界 使用异步 javascript 承诺 我相信在 Swift 中使用 GCD 异步队列也能完成同样的事情 你能给我举一个例子 其中在队列中指定了 2 到 3 个异步函数 其中一个异步操作将结果提供给第二个 第
  • 为什么 Chart.js 画布不考虑容器元素的填充?

    我将 Chart js 与简单的折线图一起使用 但 Chart js 计算的宽度和高度属性似乎基于父元素的总宽度和高度 忽略填充 var options maintainAspectRatio false responsive true v