HTML, or HyperText Markup Language, forms the backbone of the web. It provides the structure. With HTML, elements are assigned tags, or marked up, indicating how they function in a document. The method and best practice of markup is called semantic markup, which means the markup (tags) indicate the function or meaning of the element. Thus, a paragraph is marked up as a paragraph (
<p>), a heading as a heading, etc.
HTML goes beyond grammar. HTML, particularly since the introduction of HTML5, offers a fairly extensive range of structural elements, such as
table element allows a wide range of presentation of tabular data. Overall, HTML is becoming more flexible, and more semantic.
CSS, or Cascading Style Sheets, provides the presentational layer of the web. This forms how things look. Browsers provide a default presentation (main headings are big and bold), but CSS allows you to fine tune the look of a site, as well as arrange elements pretty much at will, replacing that default presentation.
Furthermore, CSS allows sites to become responsive to the various devices we use to view the web. A site can transform, depending on parameters such as screen size or orientation, giving the viewer the best possible experience on any device, without coding alternate sites.