This is one of those things which I'm not quite sure, so I want to know the difference. Which is better to use in most sites and what is the diffrence between - XHTML Strcit and XHTML Transitional? And why?
Transitional was designed for that exact purpose: the "transition" from old html to xhtml. If you're converting an old webpage to xhtml then use transitional. But, when starting from scratch I personally always use strict.
Transitional was designed for old html to new html. With each new version of html, more elements were deprecated, but no all. Strict has no presentation elements, besides the useless presentation module, which most people ignore. Meaning, you have to use CSS. XHTML 1.1 has no transitional or frameset. it's strict by default.
What do you mean by real xml? You can serve it now as application/xhtml+xml. Just send IE text/xml or text/html. IE will not support application/xhtml+xml until they write a decent xml parser for it. They only got 4 devs working on IE. It's freaking pathetic. That said, if you want to take advantage of xml-based languages, MathML, SVG, etc. you have to use and xml content-type.
The question is, until all browers serve 'real' xml, why use xhtml at all?
1- Browsers don't serve anything. Servers serve, browsers consume. That said, the sooner IE gets with the bandwagon the better.
2- There's more ways to consume a page off the web than just in a browser. If I (in the effort to publish the most boring book ever) decide to convert my blog to PDF to send to a publisher it's possible to write a program that will pull my XHTML pages and compile them into a single PDF file using XSLT. How is that possible? XHTML conforms to XML rules. If I suddenly feel like reading my resume on my cellphone, I can. How is that possible? The WAP 2.0 standard used by most wireless browsers support the XHTML-MP subset of XHTML.
3- Short of "Alpha Nerd street cred™" I don't see a real strong reason to push towards XHTML1.1 at the moment just because of the mime-type issues. I've done it and it's a pain, and IMHO I think it's better to wait before having to go through the hassle. Unfortunately, if you combine that with the "how long to get the crap browsers out of the pool?" question it's a good way off before I think anyone needs to worry about it.
I didn't say it couldn't be done. I already do it. The point I was making is that to Joe EndUser® it doesn't matter and just adds more work to a process where it just doesn't seem necessary right now.
Unless you're not using static files. In which case you'll need to add detection in your backend code instead. It's not crazy insane-o work, I just don't think it's necessary unless you're trying to score points with the nerd herd.