Is there a way to render html to image like PNG? I know that it is possible with canvas but I would like to render standard html element like div for example.
You could use PhantomJS, which is a headless webkit (the rendering engine in safari and (up until recently) chrome) driver. You can learn how to do screen capture of pages here. Hope that helps!