HTML or Hypertext Markup Language is the standard and most basic language in use to create web pages. It has a very simple code structure that makes it extremely easy to pick-up and learn compared to any other language. CSS or Cascading Style Sheets is a style sheet language that can be applied to any XML document. Its purpose is to simplify the styling of certain elements so that the written code would be a lot easier to read.
HTML is rather simple with a few keywords that are dedicated to formatting certain words, sentences, or paragraphs. It is also quite forgiving with mistakes, still showing some result even when there are errors in the code. This aspect of HTML makes it quite easy to learn and write simple web pages that only contains a small amount of content and formatting. The problem with HTML is it doesn’t really scale that well once you start to develop bigger or fancier pages. Styling could involve multiple keywords in every section and this gets repeated multiple times in a single page, making the page unnecessarily longer. The simple and easy to learn language becomes very convoluted and quite difficult to trace once you’ve made mistakes.
CSS was developed to simplify the code in much bigger pages. This doesn’t mean that CSS cannot be used in simpler and less complex pages. CSS can still be beneficial for small pages but the benefits are more apparent as the size of the page grows. CSS does this by creating custom tags that defines the proper font, size, color, margin, and even the background. These custom tags can then be used just like normal HTML keywords like Font and Bold; but instead if just changing one aspect, it changes every aspect to conform to the tag definition. The end result of all this is that you would only need to use one tag to achieve a specific look, and you can use that tag over and over again in your pages. You are also not limited to a single tag, you can create as many as you need to fully stylize your pages.
CSS is just a tool that has become popular due to its modularity. It makes web page creation a lot easier to do and troubleshoot. Although you can use CSS in HTML pages, it is not meant for HTML alone. It can also be used on other languages like XML and XHTML among others.