XHTML is a progression onto HTML, XHTML or eXtensible Markup Language. In 2000 the W3C (World Wide Web Consortium, put their heads together to propose some fixes for HTML, they wanted to come up with a new form of HTML that complied to a stricter form of markup, the web was evolving, and guidelines needed to be put into place in order to maintain a usuable way to present pages.
So XHTML may sound like it's the W3C restricting what you can and can't do, well yes in a way i guess it could be, but really, it's needed, with the old HTML, there was no real control on layout, web designers were using table layout's to present web pages, and that's essentially a hack, yes it worked after a fashion, but it wasn't good if it came to say, search engines.
As a result of W3C picking up the slack, we now have;
All tags have endings.Every tag now comes with a beginning and an ending (with a few exceptions which we'll come to ). This was a new thing, as prior to XHTML many tags didn't have an ending, which is just weird.
Tags can't be overlapped.In HTML people had a tendancy to overlap tags, such as hello world this used to confuse browsers, and so now if a tag is opened within a container then the tag must be closed before the container is closed.
Everything is in lowercase a mixture of lowercase and uppercase was being used. XHTML only recognises lowercase this makes script writting more consistant.
Attributes must be in quotes.If you have ever written in HTML you'll probably be aware that quotes were optional, not any more!
Layout and markup must be seperate HTML had tags such as <font> and <center> these are more about format then markup. These were useful, but dont quite go far enough, XHTML or at least the strict version, elimanates these tags But CSS more then makes up for it.