with xhtml documnent , how do one trigger quirk mode? - quirks-mode

With the Xhtml document , how do you trigger quirk mode in internet explorer?
is it related to meta tag or doc type?

Internet Explorer doesn't support XHTML. In order to be XHTML it must be served with the application/xhtml+xml content-type, but IE doesn't support that. If you use text/html it will be parsed as HTML regardless of DOCTYPE.

Usually if you don't specify a DOCTYPE most modern browsers will render the page in quirks mode. You can also "trigger" quirks mode by using xhtml1-transitional as your DOCTYPE. See this chart.
There was a bug in IE6 that caused quirks mode to be triggered if you put an xml declaration or white spaces before the DOCTYPE, but that was fixed in IE7.

Related

Why is DOCTYPE line red in firefox?

The websites I've designed had no problem before but now I see DOCTYPE line red in Firefox 11. There is no problem in validation. I changed encoding to UTF-8 without BOM but problem still exists.
http://validator.w3.org/check?uri=genelvana.com
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Isn't it because Transitional doctype isn't really valid anymore unless you are using legacy code?
Surely now if you build a website now, should you be using strict or html5?
Same here while Fx6 didn't color it in red.
While hovering this first line, a tooltip appears saying
Almost standards mode doctype. Expected "<!DOCTYPE html>".
You can safely forget this "advice" IMHO. The important thing to do is choosing a valid doctype and then write code that is conformant to this doctype, as you already do. No browser cares about what follows html so the contrary is true too: no browser cares if there's something after html ;)
Of course, if you use HTML5 elements and technologies (nav element, canvas or whatever) then yes use the HTML5 doctype.
It's not so much an error, as it is a warning. Firefox is simply alerting you that the DOCTYPE you are using, XHTML 1.0 Transitional, triggers Almost standards mode, instead of Standards mode.
If you want the page to be displayed in Standards mode, all you need to do is change the DOCTYPE to either XHTML 1.0 Strict or HTML 5.
you may have some CSS validation errors like fractional pixel values or missing unit declarations like these :
div {left:3.545253px;}
or
div {left: 50;}
these would cause the html doctype validation errors. Check your CSS files and jQuery CSS settings if you have any.

Why is IE8 saying page default is quirks mode?

Here is the doctype I am using:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
This will happen if you have content (an HTML comment perhaps) before the DOCTYPE. White-space should be OK in IE8 - although I think even this caused problems with IE6.
(In IE6 an XML declaration before the DOCTYPE would trigger quirks mode - this was fixed in IE7, but it would seem that other content before the DOCTYPE still triggers this.)
not being funny, and I'm sure you've already checked this, but...
Have you tried pressing F12 to step into the IE Developer Console. Is there achance maybe that the "Document Mode" or "Browser Mode" is set to "Quirks Mode"
Forgive me if this isn't the case... I've simply fallen foul of this stupidity before...
It sounds like you're dealing with an Intranet page, which IE8 and IE9 treat differently. If your page is considered to be in the Intranet Zone, IE8 will default to a compatibility mode that might be borking your page up a bit.
You may be able to get around this by using the X-UA-Compatible meta element, but I haven't tested this myself.
This page is high in Google rankings for 'why page triggers ie8 quirks mode', so I will post my 2 findings (through painfull troubleshooting experience):
1) Page will triger quirks mode if you use php in general, but say on that particular page you do not have any php code in the before <html> section at all, but for compatibility you wish to write empty <?php ?> tags at the opening. Now, say, you wish to 'minimize' that code and remove all the empty spaces in between, so you write:
<?php?>
This will trigger IE8 Quirks Mode, because before <!DOCTYPE html> now you will have an extra line with something like this in IE8:
<!-- -->
and in Chrome 34.x:
<!--?php?-->
common, but deadly mistake. Just put
<?php ?>
(with space) to be safe.
2) Second reason was indeed very hard to discover. If you use UTF-8 for your documents and edit them with Notepad++, you will most probably set your character encoding as pure UTF-8 (Notepad++ > Encoding > Encode in UTF-8), and by chance you may trigger IE8 Quirks Mode!
Now, the solution is very simple: using Notepad++ just select Encoding > Convert using UTF-8 without BOM.
Quirks Mode is again gone!
Took me a while to catch all these, trying hard to find bugs in CSS, that were not CSS-related at all!

DD_belatedPNG not working in IE8?

Might anyone know why DD_belatedPNG works wonders for my transparent pngs in IE6 and IE7, but not in IE8?
Thanks.
You can also use the content attribute to specify multiple document compatibility modes. To specify multiple document modes, set the content attribute to identify the modes you want to use. Use a comma to separate each mode.
If a particular version of Internet Explorer supports more than one requested compatibility mode, it will use the highest available mode listed in the content attribute. You can use this fact to exclude specific compatibility modes, although this is not recommended. For example, the following header excludes IE7 mode.
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=7;" >
This should force IE8 to run like IE7 and IE9 to stay as IE9
Source: http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx
According to this blog, you have to use a X-UA-Compatible meta tag for it to "work".

When does IE8 go into Quirks mode?

We're in the process of converting web app to IE8 (now client is using IE6). We didn't create that app. We are only modifying and adding features to it. When I visit most of the pages in this app using IE8 developer tools show that IE is working in Quirks mode. But some of the pages work in Internet Explorer 8 Standards Mode. This page http://msdn.microsoft.com/en-us/library/dd565628(VS.85).aspx says:
"Quirks Mode: This behavior matches that of Internet Explorer when rendering a document with no doctype or a Quirks doctype."
But all of our pages have DOCTYPE defined - !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" (I don't know how to enter angle brackets here but they are present on webpage.
Can anyone explain me why is IE8 working in both Quirks and standard mode when displaying pages that all have DOCTYPE defined? Or maybe show me two examples of pages that IE8 displays in Quirks and standard mode?
The doctype tag has to be first in the markup, otherwise it's ignored. If you have an XML declaration tag before the doctype tag, IE will ignore the doctype.
If the HTML markup is utterly broken, the browser might fall back into interpreting it as tag soup instead of as an HTML document, and rendering it in Quirks mode.
Use the W3C HTML validator to check that the code doesn't have any serious errors.
Try viewing your HTML i an HEX editor. There might be some weird characters (usually 3: ef bb bf) just before the DOCTYPE declaration. IE also falls into quirks in that case. Happened to me before, and happening right now as well.

why am I triggering quirks mode in IE8?

I'm working on a page that, when I load into IE8 and view the developers tools it tells me that page default is quirks mode.
I've got a strict DTD:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
I even went ahead and put in the explicit standards switch, though I didn't think I'd need to:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
I can't understand why page default isn't IE8 standards?
Only thing I can think of is that to get to this page, I first have to log in to an application and the first pages I must traverse are old quirks mode pages. Does IE decide on which mode to use at a server level, or is it supposed to decide page by page?
Thanks!
Does IE decide on which mode to use at a server level
Not generally, no. There is the ugliness of the compatibility view list, which is site-specific, but that only kicks you back to IE7-style-Standards Mode, not IE5.5-style-Quirks-Mode.
Your code otherwise looks OK, as long as that DOCTYPE is the very first thing on the page. IE will be forced to document.compatMode= 'BackCompat' if there is a comment, PI, XML declaration (prior to IE8) or any non-whitespace textual content before the doctype. If a control character has snuck in that you can't see in your text editor, that could do it.
Example problem page?

Resources