On 2/3/10 2:54 PM, Tim Hutt wrote:
a) Otherwise width:100% in CSS and width="100%" in HTML would have different meanings. Confusing!
I'm not suggesting that. I'm saying we keep supporting only integers in the width attribute and if you put width:100% in your CSS and the canvas resizes you can do whatever you want (change the width attribute or not, whatever you want).
b) Nobody uses it currently anyway - there's no content to break! I'm not exaggerating - look through canvasdemos.com and I bet you won't find a single case where the canvas is sized using CSS
And no UA stylesheets? No user stylesheets? No non-demo things actually using canvas for something?
I actually have a hard time believing this, honestly.
c) It's slow, and looks rubbish.
While true, repainting the whole canvas from scratch on resize is not likely to be faster. And will look like rubbish by default (as in, look blank) unless the author writes script to make it otherwise. If the author is writing such script it's two extra line to set the canvas size too.
I suppose an alternative might be to have some way of retrieving the true size of the canvas
Like getBoundingClientRect()?
canvas.width = canvas.trueWidthInPixels;
Yep. canvas.width = canvas.getBoundingClientRect().width;
Well, yes it would be good to have onresize for all elements.
Which is why it's being worked on anyway.
But you still need to add width="...%" support to the canvas tag otherwise it will never *be* resized, so you couldn't achieve #1 with #2. I may have misunderstood you here.
You put the % sizing in your CSS and reset the canvas width/height attributes if you want to.
-Boris