Hyper Text Mark-up Language was originally developed for Government Agencies and Universities as a way to transfer structured information through the first versions of the internet. HTML is just a way to describe chunks of information, through the use of tags. This is useful because it gives a conceptual meaning to long strings of information.
The way information is transmitted through the internet can be a very abstract thought and process, but essentially, at a very high level, all that is happening is a string of 1’s and 0’s are being fired off as an electrical signal (on/off) from one device, and being interpreted by another. Once interpreted by the other side as text, it would be important to have context for where, how, and with what emphasis might certain strategically written chunks of information be represented, and this is accomplished with HTML element tags.
HTML is described as ‘the bones’ or ‘the skeleton’ of a web page, because it’s simple, yet fundamentally necessary to delivering the web as we know it today, in the sense that it provides a way to instantiate context and structure to information in a way that gives clear meaning to the arrangement of the data.
HTML also gives us the ability to point our CSS and JS to individual chunks of data in our HTML through attributes like class and ID. Class is one way to identify an element that is to be styled or grouped with other elements. ID is used when you have a very specific element that is to be styled or selected and you want to select that element, and only that element.