这里的canvascss中设定的样式为什么可以盖过js设定的样式
来源:6-2 折线图画布
sally_js
2016-05-10
canvas通过js在行内样式已经有了width=530,height=400了,为什么css中设置100%,可以让它跟父级一样大
写回答
1回答
-
这个地方设置的样式有点特殊。canvas是一个特殊的元素。本质上你可以把 canvas 当作一张图片。
用油画来比喻, cns.width cns.height 是油画的画框, ctx.width , ctx.height 是画布。理论上这两个设置应该是一样的,不然的话一部分画就超出框外了(我们假设画框默认就有 overflow:hidden 的能力。
然后,我们把这个油画拍成一张照片(css设置 width:100%,height:100%)放在另一个框里面(根据父元素大小调整自己),照片嘛我们当然可以放大缩小了(实际上我们都是缩小一半来用的,为了在高清屏下显示不会模糊)。
<canvas id="canvas"></canvas> <script> var cns = document.createElement('canvas'); var ctx = cns.getContext('2d'); cns.width = ctx.width = w; // 设置元素(画框)大小、画布(画布)大小 cns.height = ctx.height =h; </script> <style> #canvas{ width:100%;height:100%; /*设置照片大小*/ } </style>
232016-05-11
相似问题
关于结构和样式的问题
回答 1
关于页面布局的问题
回答 3