In layman's terms: A block is a pre-designed horizontal section of content and code that is purposely created to fulfill an objective within the template. A block should be stackable so that it can be easily combined with other blocks to create a complete webpage or landing page.

A more technical definition would be: A block can be thought of as an encapsulated piece of HTML content that “owns” typically full horizontal space of the page and contains data (model), styling (css), and behaviour (javascript) to render itself.