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

Discussion in 'ASP .Net' started by Rolf Welskes, Aug 22, 2006.

  1. Rolf Welskes

    Rolf Welskes Guest

    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
     
    Rolf Welskes, Aug 22, 2006
    #1
    1. Advertisements

  2. 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.
     
    Steven Cheng[MSFT], Aug 23, 2006
    #2
    1. Advertisements

  3. Rolf Welskes

    MatsL Guest

    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
     
    MatsL, Aug 23, 2006
    #3
  4. Rolf Welskes

    Rolf Welskes Guest

    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
     
    Rolf Welskes, Aug 23, 2006
    #4
  5. Rolf Welskes

    MatsL Guest

    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.
     
    MatsL, Aug 23, 2006
    #5
  6. Rolf Welskes

    gerry Guest

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



     
    gerry, Aug 23, 2006
    #6
  7. 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.
     
    Steven Cheng[MSFT], Aug 24, 2006
    #7
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.