Do I need <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ..... in asp.net 2.0 ?


R

Rolf Welskes

Hello,
if I have for example:

<table style="width: 100%; height: 100%;" border="1">
<tr>
<td style="width: 100px">k
</td>
<td style="width: 100px">k
</td>
</tr>
<tr>
<td style="width: 100px">k
</td>
<td style="width: 100px">k
</td>
</tr>
</table>

and I see the page in internet explorer 6.0 then:

if I have before:

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

then the table in the height is not the full internet-explorer page as I
want it.

if I have not
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
before in the site, the table is the full internet-explorer page as I want.

So question:
Do I need

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

in my aspx.-pages (asp.net 2.0) ?
Visual studio 2005 allways includes this in aspx-files.
The question is: When I have server controls that generate for example
html-code for IE 6.0 does this code need, that there
are these declarations in the aspx pages ?
Means: If these declarations are not there can it be, that asp.net generated
html is bad visible in browsers?

Thank you for any help.
Rolf Welskes
 
Ad

Advertisements

S

Steven Cheng[MSFT]

Hello Rolf,

As for the following markup fragment you mentioned:

===================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
===================

It is the XML DocType declaration of XHTML 1.0 Transitional conform
document. That means if you want to make your page's ouput HTML be conform
to "XHTML 1.0 Transitional" standard, you must include this declaration
fragment. for example, if you remove this declaration and try validating
your page's output html through the W3C xhtml validator:

http://validator.w3.org/

You will get valiation error indicate that the page is not XHTML compatible.

Of course, if you do not care about the XHTML 1.0 Transitional
compatibility for all the pages in your web application, you can simply
remove all these markup declaration. And so far most popular webbrowsers
can correctly handle both XHTML validated or non-XHTML validated html
document gracefully, you do not need to care much about this.

BTW, as for VS 2005, it by default use XHTML 1.0 Transitional as the
default HTML validation rule and the default webform template is also
adding this XHTML doctype declaration. You can find the template file under
the following location:

C:\Program Files\Microsoft Visual Studio
8\Web\WebNewFileItems\CSharp\Webform.aspx

You can customize the template as you like if you have many web pages or
application will developing without such declaration. But makesure you've
backuped all the default templates.

Hope this helps.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead



==================================================

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.



Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.

==================================================



This posting is provided "AS IS" with no warranties, and confers no rights.
 
M

MatsL

To get the table to fill your screen you have to set the height of the
body element. The body element is only rendered as high as it needs to be.

Replace <body> with <body style="height: 100%;"> and it will work with
the doctype.

One should also note that the doctype makes IE render the HTML according
to standard. Without it IE will render the page in quirks mode which is
pretty much guaranteed to look like crap in all other browsers.

I recommend everyone to always put a doctype in your html documents to
make sure that your work looks good when rendered according to standard.

Remember this: if you don't follow standards today you can count on
having to do it all over in a couple of years when your outdated IE-only
html has been deprecated!
(I just rewrote an old project...)

//Mats
 
R

Rolf Welskes

Hello,
thank you for your informations,

but the main-question is not answered.

if I have no doctype in my html pages,
what is with the code that asp generates for example from server-controls?

Means if I have a complex server control which generates html for example
for IE6.0
and my aspx pages have not the doctype for xhtml, is the generated code
xhtml and can it look bad without
the doctype declaration?

Thank you.
Rolf Welskes
 
M

MatsL

Hi Rolf,
The doctype instructs the web browser how to render the page.
When you have the doctype for xhtml IE will render the page with
standards mode, which is good since it will look (almost) the same in
all modern browsers.
The code that is generated from the server controls is not affected by
the doctype, it's just an instruction for the web browser.
 
G

gerry

i think the answer to his question is - yes
leaving out the DTD can make the browser rendering of your html look bad



Hi Rolf,
The doctype instructs the web browser how to render the page.
When you have the doctype for xhtml IE will render the page with
standards mode, which is good since it will look (almost) the same in
all modern browsers.
The code that is generated from the server controls is not affected by
the doctype, it's just an instruction for the web browser.



Rolf said:
Hello,
thank you for your informations,

but the main-question is not answered.

if I have no doctype in my html pages,
what is with the code that asp generates for example from server-controls?

Means if I have a complex server control which generates html for example
for IE6.0
and my aspx pages have not the doctype for xhtml, is the generated code
xhtml and can it look bad without
the doctype declaration?

Thank you.
Rolf Welskes





To get the table to fill your screen you have to set the height of the
body element. The body element is only rendered as high as it needs to be.

Replace <body> with <body style="height: 100%;"> and it will work with the
doctype.

One should also note that the doctype makes IE render the HTML according
to standard. Without it IE will render the page in quirks mode which is
pretty much guaranteed to look like crap in all other browsers.

I recommend everyone to always put a doctype in your html documents to
make sure that your work looks good when rendered according to standard.

Remember this: if you don't follow standards today you can count on having
to do it all over in a couple of years when your outdated IE-only html has
been deprecated!
(I just rewrote an old project...)

//Mats

Steven Cheng[MSFT] wrote:
Hello Rolf,

As for the following markup fragment you mentioned:

===================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
===================

It is the XML DocType declaration of XHTML 1.0 Transitional conform
document. That means if you want to make your page's ouput HTML be
conform to "XHTML 1.0 Transitional" standard, you must include this
declaration fragment. for example, if you remove this declaration and try
validating your page's output html through the W3C xhtml validator:

http://validator.w3.org/

You will get valiation error indicate that the page is not XHTML
compatible.

Of course, if you do not care about the XHTML 1.0 Transitional
compatibility for all the pages in your web application, you can simply
remove all these markup declaration. And so far most popular webbrowsers
can correctly handle both XHTML validated or non-XHTML validated html
document gracefully, you do not need to care much about this.

BTW, as for VS 2005, it by default use XHTML 1.0 Transitional as the
default HTML validation rule and the default webform template is also
adding this XHTML doctype declaration. You can find the template file
under the following location:

C:\Program Files\Microsoft Visual Studio
8\Web\WebNewFileItems\CSharp\Webform.aspx

You can customize the template as you like if you have many web pages or
application will developing without such declaration. But makesure you've
backuped all the default templates.

Hope this helps.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

==================================================

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent
issues where an initial response from the community or a Microsoft
Support Engineer within 1 business day is acceptable. Please note that
each follow up response may take approximately 2 business days as the
support professional working with you may need further investigation to
reach the most efficient resolution. The offering is not appropriate for
situations that require urgent, real-time or phone-based interactions or
complex project analysis and dump analysis issues. Issues of this nature
are best handled working with a dedicated Microsoft Support Engineer by
contacting Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.

==================================================

This posting is provided "AS IS" with no warranties, and confers no
rights.
 
Ad

Advertisements

S

Steven Cheng[MSFT]

Hi Rolf,

As other members have said, the doctype will affect how the client-browser
will render your page's html content.

However, I don't think it will affect how the ASP.NET runtime/control
adpater generate the html/xhtml for page/controls. This is because the
ASP.NET page/control(actually their render adpater) will generate output
html depending on the client-browser's useragent/capability info rather
than the "doctype" declaration in your aspx page. Does this answer your
question? Please feel free to post here if you have anything unclear.


Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead



This posting is provided "AS IS" with no warranties, and confers no rights.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top