Connecting Tech Pros Worldwide Forums | Help | Site Map

VS2005 and DOCTYPE in Web Forms

Chris Botha
Guest
 
Posts: n/a
#1: Nov 20 '05
I am porting an existing 2003 project to 2005. Yesterday I found that some
of my Java script did not want to work. After eventually examining the HTML
view of the new and old form for differences, I noticed the DOCTYPE lines
pretty close to the top of the forms in HTML view differ. I removed the line
in the new form and my Java script worked. Today I noticed that a SPAN on a
new form with the width property set to 100% displayed about 1/4 over the
page, so I thought let me give the DOCTYPE line a shot, I removed it and the
SPAN displays perfectly. So, I am not sure if the DOCTYPE line generated by
VS2005 is evil or a new standard, but it surely causes problems.



Joerg Jooss
Guest
 
Posts: n/a
#2: Nov 20 '05

re: VS2005 and DOCTYPE in Web Forms


Chris Botha wrote:
[color=blue]
> I am porting an existing 2003 project to 2005. Yesterday I found that
> some of my Java script did not want to work. After eventually
> examining the HTML view of the new and old form for differences, I
> noticed the DOCTYPE lines pretty close to the top of the forms in
> HTML view differ. I removed the line in the new form and my Java
> script worked. Today I noticed that a SPAN on a new form with the
> width property set to 100% displayed about 1/4 over the page, so I
> thought let me give the DOCTYPE line a shot, I removed it and the
> SPAN displays perfectly. So, I am not sure if the DOCTYPE line
> generated by VS2005 is evil or a new standard, but it surely causes
> problems.[/color]

What you experience is called "quirks" mode. See
http://www.quirksmode.org/css/quirksmode.html for more details.

Here's how IE 6 decides between quirks and standards compliant mode:

http://msdn.microsoft.com/library/de.../en-us/dnie60/
html/cssenhancements.asp

Unfortunately, Visual Studio .NET 2002 and 2003 both use a default
DOCTYPE in ASP.NET that *enables* quirks mode.
[Hony soit qui mal y pense ;-)]

What does all that mean for your HTML? If it requires quirks mode, it's
most likely broken...

Cheers,
--
http://www.joergjooss.de
mailto:news-reply@joergjooss.de
Kevin Spencer
Guest
 
Posts: n/a
#3: Nov 20 '05

re: VS2005 and DOCTYPE in Web Forms


The following JavaScript will allow the "width" style for spans to work in
all browsers, regardless of DOCTYPE:

<script type="text/javascript" >
var sps = document.getElementsByTagName("span");
for (var index = 0; index < sps.length; index++)
{
var sp = sps[index];
if (sp.className == "label")
{
var s = sp.style.width.substring(0, sp.style.width.indexOf("px"));
var i = (s - sp.offsetWidth) / 2;
if (sp.style.textAlign == "center")
{
sp.style.paddingLeft = i;
sp.style.paddingRight = i;
}
else if (sp.style.textAlign == "right")
sp.style.paddingLeft = i * 2;
else
sp.style.paddingRight = i * 2;
}
}
</script>

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
If you push something hard enough,
it will fall over.
- Fudd's First Law of Opposition

"Joerg Jooss" <news-reply@joergjooss.de> wrote in message
news:xn0e9xalmd0135e015@msnews.microsoft.com...[color=blue]
> Chris Botha wrote:
>[color=green]
>> I am porting an existing 2003 project to 2005. Yesterday I found that
>> some of my Java script did not want to work. After eventually
>> examining the HTML view of the new and old form for differences, I
>> noticed the DOCTYPE lines pretty close to the top of the forms in
>> HTML view differ. I removed the line in the new form and my Java
>> script worked. Today I noticed that a SPAN on a new form with the
>> width property set to 100% displayed about 1/4 over the page, so I
>> thought let me give the DOCTYPE line a shot, I removed it and the
>> SPAN displays perfectly. So, I am not sure if the DOCTYPE line
>> generated by VS2005 is evil or a new standard, but it surely causes
>> problems.[/color]
>
> What you experience is called "quirks" mode. See
> http://www.quirksmode.org/css/quirksmode.html for more details.
>
> Here's how IE 6 decides between quirks and standards compliant mode:
>
> http://msdn.microsoft.com/library/de.../en-us/dnie60/
> html/cssenhancements.asp
>
> Unfortunately, Visual Studio .NET 2002 and 2003 both use a default
> DOCTYPE in ASP.NET that *enables* quirks mode.
> [Hony soit qui mal y pense ;-)]
>
> What does all that mean for your HTML? If it requires quirks mode, it's
> most likely broken...
>
> Cheers,
> --
> http://www.joergjooss.de
> mailto:news-reply@joergjooss.de[/color]


Chris Botha
Guest
 
Posts: n/a
#4: Nov 20 '05

re: VS2005 and DOCTYPE in Web Forms


Hi Kevin, I should have mentioned that the span width is set on the style of
the span, thus:
<span style="WIDTH: 100%; .....>

So what I am saying is that Java script as well as normal HTML breaks with
the DOCTYPE settings used by VS2005.
The Java script that broke was (1) I've set a handler for the
document.onscroll and the event did not fire any more, and (2) on another
form I had something like theDiv.scrollIntoView().

Thanks in any case.


"Kevin Spencer" <kevin@DIESPAMMERSDIEtakempis.com> wrote in message
news:%237hJVEQ7FHA.472@TK2MSFTNGP15.phx.gbl...[color=blue]
> The following JavaScript will allow the "width" style for spans to work in
> all browsers, regardless of DOCTYPE:
>
> <script type="text/javascript" >
> var sps = document.getElementsByTagName("span");
> for (var index = 0; index < sps.length; index++)
> {
> var sp = sps[index];
> if (sp.className == "label")
> {
> var s = sp.style.width.substring(0, sp.style.width.indexOf("px"));
> var i = (s - sp.offsetWidth) / 2;
> if (sp.style.textAlign == "center")
> {
> sp.style.paddingLeft = i;
> sp.style.paddingRight = i;
> }
> else if (sp.style.textAlign == "right")
> sp.style.paddingLeft = i * 2;
> else
> sp.style.paddingRight = i * 2;
> }
> }
> </script>
>
> --
> HTH,
>
> Kevin Spencer
> Microsoft MVP
> .Net Developer
> If you push something hard enough,
> it will fall over.
> - Fudd's First Law of Opposition
>
> "Joerg Jooss" <news-reply@joergjooss.de> wrote in message
> news:xn0e9xalmd0135e015@msnews.microsoft.com...[color=green]
>> Chris Botha wrote:
>>[color=darkred]
>>> I am porting an existing 2003 project to 2005. Yesterday I found that
>>> some of my Java script did not want to work. After eventually
>>> examining the HTML view of the new and old form for differences, I
>>> noticed the DOCTYPE lines pretty close to the top of the forms in
>>> HTML view differ. I removed the line in the new form and my Java
>>> script worked. Today I noticed that a SPAN on a new form with the
>>> width property set to 100% displayed about 1/4 over the page, so I
>>> thought let me give the DOCTYPE line a shot, I removed it and the
>>> SPAN displays perfectly. So, I am not sure if the DOCTYPE line
>>> generated by VS2005 is evil or a new standard, but it surely causes
>>> problems.[/color]
>>
>> What you experience is called "quirks" mode. See
>> http://www.quirksmode.org/css/quirksmode.html for more details.
>>
>> Here's how IE 6 decides between quirks and standards compliant mode:
>>
>> http://msdn.microsoft.com/library/de.../en-us/dnie60/
>> html/cssenhancements.asp
>>
>> Unfortunately, Visual Studio .NET 2002 and 2003 both use a default
>> DOCTYPE in ASP.NET that *enables* quirks mode.
>> [Hony soit qui mal y pense ;-)]
>>
>> What does all that mean for your HTML? If it requires quirks mode, it's
>> most likely broken...
>>
>> Cheers,
>> --
>> http://www.joergjooss.de
>> mailto:news-reply@joergjooss.de[/color]
>
>[/color]


Chris Botha
Guest
 
Posts: n/a
#5: Nov 20 '05

re: VS2005 and DOCTYPE in Web Forms


Hi Joerg, thanks for the links. That such a subtle thing can cause so many
problems (I debugged for quite a while before I stumbled upon it). When I
see a funny in a page now, first thing I do is to remove the DOCTYPE.
[Shame to him who thinks evil of it :-)]

Thanks.


"Joerg Jooss" <news-reply@joergjooss.de> wrote in message
news:xn0e9xalmd0135e015@msnews.microsoft.com...[color=blue]
> Chris Botha wrote:
>[color=green]
>> I am porting an existing 2003 project to 2005. Yesterday I found that
>> some of my Java script did not want to work. After eventually
>> examining the HTML view of the new and old form for differences, I
>> noticed the DOCTYPE lines pretty close to the top of the forms in
>> HTML view differ. I removed the line in the new form and my Java
>> script worked. Today I noticed that a SPAN on a new form with the
>> width property set to 100% displayed about 1/4 over the page, so I
>> thought let me give the DOCTYPE line a shot, I removed it and the
>> SPAN displays perfectly. So, I am not sure if the DOCTYPE line
>> generated by VS2005 is evil or a new standard, but it surely causes
>> problems.[/color]
>
> What you experience is called "quirks" mode. See
> http://www.quirksmode.org/css/quirksmode.html for more details.
>
> Here's how IE 6 decides between quirks and standards compliant mode:
>
> http://msdn.microsoft.com/library/de.../en-us/dnie60/
> html/cssenhancements.asp
>
> Unfortunately, Visual Studio .NET 2002 and 2003 both use a default
> DOCTYPE in ASP.NET that *enables* quirks mode.
> [Hony soit qui mal y pense ;-)]
>
> What does all that mean for your HTML? If it requires quirks mode, it's
> most likely broken...
>
> Cheers,
> --
> http://www.joergjooss.de
> mailto:news-reply@joergjooss.de[/color]


clintonG
Guest
 
Posts: n/a
#6: Nov 20 '05

re: VS2005 and DOCTYPE in Web Forms


<snip />

So what's the general consensus when building VS2005 2.0 applications? Any
Target Schema suggestions? The Master is currently using this...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<%= Clinton Gallagher


Joerg Jooss
Guest
 
Posts: n/a
#7: Nov 21 '05

re: VS2005 and DOCTYPE in Web Forms


clintonG wrote:
[color=blue]
> <snip />
>
> So what's the general consensus when building VS2005 2.0
> applications? Any Target Schema suggestions? The Master is currently
> using this...
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
> "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html
> xmlns="http://www.w3.org/1999/xhtml" >
>
> <%= Clinton Gallagher[/color]

It really depends on your both clients (browsers) and clients (the guys
giving you money).

Personally, I'd stay from quirks mode whenever possible, especially if
supporting multiple browser types is a requirement. One quirk that
works fine in one browser may cause disaster in another browser.

If accessibility is a requirement, you most likely have to render
standards compliant HTML -- many screenreaders don't work too well with
quirks mode HTML, and laws or regulations regarding accessibility may
simply prescribe that only standards compliant HTML is to be used for
certain types of web sites (government agencies etc.).

Cheers,
--
http://www.joergjooss.de
mailto:news-reply@joergjooss.de
Closed Thread


Similar ASP.NET bytes