Flexbox is a CSS3 layout mode used to make layouts for web pages and applications. It gives user to complete control over boxes size, direction, order, alignment and make complex layouts to display easily on mobile phones. Now a days, most of developers perfer to use flexbox to create complex applications layouts that can run same on mobiles, tablets and desktops.
To learn canvas, user must have little knowledge of HTML, CSS and JavaScript.