HTML or Hyper Text Markup Language is the back bone of the internet, it makes up the majority of the pages your able to visit on the internet. Hyper Text Markup Language is relatively simple and can be used to create an infinite number of web pages. When a web browser asks a server for a web page the server will respond with a large amount of text in ASCII format. Your browser will strip everything out one piece at a time and compile it into images and text you can understand easily.
Each piece that is understood by the browser is sectioned out, what isn't understood becomes text on the page. Whatever is between certain tags will be formatted a special way based on how the code is written. When CSS (Cascading style sheets) are sent along with HTML the browser will use those lines of code as if they were universal rules for that page. Think of it like defining how a car is built before gathering the parts in which it is built with. It gives a basic structure or design if you will for that car that the browser can readily understand. Those rules can effect how other tags are read and or interpreted and in some cases can help to create new "temporary tags" the browser can understand.
Before the page is assembled (since we already have directions and some of the materials) the browser will request any images it needs before finishing it's work. This is why when the world was still using dial up you would see the text and text formatting first and as a few seconds went by the browser would download the images required to finish off the required data for the completed car. As the internet got faster for the majority of people browsers were able to almost seamlessly pull the code and the images at the same time. Now of course this isn't the only prossess that goes on different scripting languages can add additional functionality to the browser and make the viewing and using of the internet more fun.