You should probably be using canvas
, since canvas is designed for drawing stuff. The performance of using canvas
should be better than using DOM elements, especially with newer versions that uses GPU acceleration for drawing.
Anyway, you can always use border-radius
combined with border-width
or border-color
to create curves by showing only one side of the border of element, while hiding all others:
#curves.width div {
border-color: transparent transparent transparent #999;
}
#curves.color div {
border-width: 0 0 0 1px;
}
Combining this with different combinations of border-radius
, and you’ve got yourself some curves. I’ve whipped up a very simple demo for this here: http://www.jsfiddle.net/yijiang/nDxYJ/
You can even combine it with CSS3 transform
rotation and transformation for more flexibility. It is, however, still more restrictive than using canvas
, and more difficult to control too.