天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

HTML和XHTML的不同

  1. MIME[1]類型(MIME Types)
  2. 解析(Parsing)
  3. 語(yǔ)法(Syntax)
  4. 標(biāo)記(Markup)
  5. 字符編碼(Character Encoding)
  6. 腳本(Scripts)
  7. 樣式表(Stylesheets)

  請(qǐng)注意以下信息是基于(X)HTML5的當(dāng)前規(guī)范,某些技術(shù)上問(wèn)題并不適用于HTML的早先版本。

  雖然HTML和XHTML看起來(lái)在語(yǔ)法上類似,但在很多方面顯著的不同。 

注:由于當(dāng)前的WHATWG[2]文檔是一個(gè)草案,這個(gè)部分需要跟隨一個(gè)變化的對(duì)象。標(biāo)記@@@的不同是從理論上可以被改變且不影響向后兼容的不同。

  MIME類型(MIME Types)

  1. XHTML必須以XML MIME類型來(lái)提供,例如application/xml 或 application/xhtml+xml。
  2. HTML必須以text/html來(lái)提供。

      MIME類型決定了使用文件的類型。如果嘗試使用text/html來(lái)發(fā)送XHTML,你實(shí)際上僅使用了HTML,可能有語(yǔ)法錯(cuò)誤。

    技術(shù)上,依據(jù)規(guī)范,XHTML1.0被允許作為text/html來(lái)發(fā)送。但是正是由于上面的原因,這樣的一個(gè)文件被認(rèn)為是HTML文件而不是XHTML文件

      解析(Parsing)

      XHTML用XML解析請(qǐng)求。HTML用它自己定義的更接近當(dāng)前瀏覽器實(shí)際處理HTML的方式。

    1. 在XHTML中,良構(gòu)性(well-formedness)錯(cuò)誤是致命的。在HTML中,錯(cuò)誤處理規(guī)則更加優(yōu)雅。良構(gòu)性錯(cuò)誤在HTML也是語(yǔ)法錯(cuò)誤,包括以下:
      1. 未編碼的和符號(hào)(&替代&amp;)和小于符號(hào)(<替代&lt;)(這并不應(yīng)用于CDATA)。(注:在HTML中,未編碼的和符號(hào)在一些情況下是被允許的。)
      2. 注釋包含額外的連接字符或以一個(gè)連接字符結(jié)尾。例如:<!--語(yǔ)法--錯(cuò)誤--> or <!--語(yǔ)法錯(cuò)誤--->
      3. 不匹配結(jié)束標(biāo)簽。(不適用于可選標(biāo)簽元素)
      4. 不閉合標(biāo)簽。
      5. 非法字符出現(xiàn)在屬性名稱前或中。
      6. 文件結(jié)束(EOF)意外發(fā)生。
      7. 非法的字符出現(xiàn)在DOCTYPE名前。
      8. 丟失DOCTYPE名。
      9. 在DOCTYPE中PUBLIC標(biāo)識(shí)符沒(méi)有SYSTEM標(biāo)識(shí)符。(注:在HTML5中包含這些中的任何一個(gè)是語(yǔ)法錯(cuò)誤,在XML中允許唯一的SYSTEM標(biāo)識(shí)符出現(xiàn)在它自己中。)
      10. 有屬性的結(jié)束標(biāo)簽。
      11. 非法結(jié)束標(biāo)簽。(在HTML中,一個(gè)非法的</br>和</p>會(huì)導(dǎo)致產(chǎn)生隱含在它之前的開始標(biāo)簽。)
    1. 內(nèi)部子集在XML中是允許的,在HTML中是無(wú)意義的(且被禁止)
      1. 在一些情況下,HTML中的內(nèi)部子集最終部分內(nèi)聯(lián)呈現(xiàn)。
    2. 當(dāng)符號(hào)序列“]]>”在內(nèi)容中不標(biāo)記一個(gè)CDATA段的結(jié)束時(shí),在XHTML中是一個(gè)良構(gòu)性錯(cuò)誤,但在HTML中是有效的。
    3. <![CDATA[...]]>,在XHTML中是一個(gè)CDATA片段,在HTML中是一個(gè)偽造的注釋。
    4. <?foo …?>,在XHTML中是一個(gè)處理指令,在HTML中是一個(gè)偽造的注釋。
    5. 在HTML中,用于空元素語(yǔ)法的尾部斜線在非空(non-void)元素(見(jiàn)下)中會(huì)有解析錯(cuò)誤,但在所有情況下都被忽略。
    6. 在HTML中,script和style元素作為CDATA解析。(注:這個(gè)CDATA的定義不同于XML中的。)在XML中,它們作為普通元素解析(這意味著注釋被當(dāng)著真正的注釋,看起來(lái)像起始標(biāo)簽的就是起始標(biāo)簽)。
    7. 在HTML中,title和textarea元素作為RCDATA被解析。(RCDATA定義不同于SGML中的,也不是XML的RCDATA.)
    8. 在HTML中,如果腳本執(zhí)行(scripting)是可用,noscript元素作為CDATA被解析。如果腳本執(zhí)行是不可用的,它作為PCDATA被解析。在XHTML中,這個(gè)元素是沒(méi)有作用的,當(dāng)腳本執(zhí)行不可用時(shí),不能真正被用于阻止內(nèi)容將要呈現(xiàn)。
    9. 在HTML中,iframe,noembed和noframes作為CDATA解析。在XHTML中作為普通元素被解析,因此不能阻止內(nèi)容被使用。
    10. 在XHTML中屬性值的空格(white space)符被標(biāo)準(zhǔn)化為空白[3]
    11. 在HTML中,可選標(biāo)簽的元素在特定情況下被隱藏。
    12. 在HTML中,在body中出現(xiàn)的帶標(biāo)簽的title元素被轉(zhuǎn)移到head中。在XHTML中,它停在指定它的地方。
    13. 在HTML中,脫離上下文(context)出現(xiàn)的特定元素的標(biāo)簽被忽略。包括:caption,col,colgroup,frame, frameset,head,option,optgroup,tbody,td,tfoot,th,thead,tr。
    14. plaintext在HTML中有一個(gè)特別的解析請(qǐng)求。(無(wú)論如何,它都是被禁止的。)
    15. 這并不是全部的在HTML中發(fā)生的邊界狀態(tài)和錯(cuò)誤條件。

        語(yǔ)法(Syntax)

      1. 在HTML中,doctype是必須的。在XHTML中是可選的。
      2. 在XHTML中,標(biāo)簽名和屬性名是大小寫敏感的。在HTML中,它們是不敏感的。
      3. 在XHTML中,非空元素必須有一個(gè)開始標(biāo)簽和一個(gè)結(jié)束標(biāo)簽。在HTML中,某些元素允許省略一個(gè)或兩個(gè)標(biāo)簽。
        1. html (兩個(gè))
        2. head (兩個(gè))
        3. body(兩個(gè))
        4. li (結(jié)束標(biāo)簽)
        5. dt (結(jié)束標(biāo)簽)
        6. dd (結(jié)束標(biāo)簽)
        7. p (結(jié)束標(biāo)簽)
        8. colgroup (兩個(gè))
        9. thead (結(jié)束標(biāo)簽)
        10. tbody(兩個(gè))
        11. tfoot (結(jié)束標(biāo)簽)
        12. tr (結(jié)束標(biāo)簽)
        13. td (結(jié)束標(biāo)簽)
        14. th (結(jié)束標(biāo)簽)
      4. 在XHTML中,空元素可以用空元素語(yǔ)法(<br />)或一個(gè)結(jié)束標(biāo)簽緊跟在開始標(biāo)簽的后面(<br>&lt/br>)。在HTML中,空元素(empty elements)語(yǔ)法(尾部斜線)允許出現(xiàn)在空元素(void elements)上[4],但是禁止在非空元素上。無(wú)論如何,它沒(méi)有任何意義可言,可以省略。對(duì)于空元素,結(jié)束標(biāo)簽是禁止的。
        1. base, link, meta, hr, br, img, embed, param, area, col 和 input。
        2. 注:在解析請(qǐng)求時(shí),下面的元素被當(dāng)作空元素對(duì)待,因?yàn)樗鼈兪沁^(guò)時(shí)和不標(biāo)準(zhǔn)的。尾部斜線是不允許的:basefont, bgsound, spacer,wbr(在任何方式下這些元素都是不允許的,所以它們沒(méi)有太多不同)。
      5. HTML允許屬性最簡(jiǎn)化(minimisation),比如省略這個(gè)值,而XHTML不允許。
      6. HTML允許使用沒(méi)有引號(hào)的屬性值,而XHTML不允許。
      7. XHTML允許使用CDATA片段,而HTML不允許。
      8. XHTML允許處理指令,而HTML不允許。
      9. 在HTML中,所有實(shí)體引用(entity references)都是預(yù)定義的,不請(qǐng)求一個(gè)文檔類型定義(DTD[5])。但是由于XHTML5沒(méi)有DTD,實(shí)體引用不能用在XHTML中(包括5中預(yù)定義的實(shí)體:&ampamp;,&amplt;,&ampgt;,&ampquot; 和&ampapos;)。
        1. 可以用自己的驗(yàn)證解釋器提供自己的DTD,但是瀏覽器不能使用這個(gè)驗(yàn)證解析器而將無(wú)法讀取DTD。
      10. 一套合法的unicode字符集在XML1.0中的限制遠(yuǎn)超在HTML中。
      11. XHTML允許命名空間前綴,但是HTML禁止。

          標(biāo)記(Markup)

        1. 在XHTML中,命名空間聲明(xmlns屬性)是必須的。在HTML中的html元素也允許xmlns屬性出現(xiàn),其值是”http://www.w3.org/1999/xhtml”。
          1. <html xmlns=”http://www.w3.org/1999/xhtml”>
          2. 在HTML中,xmlns沒(méi)有絕對(duì)作用。它基本上是一個(gè)護(hù)身符。它被允許僅僅是為了從XHTML移植過(guò)來(lái)更容易。當(dāng)被HTML解析器解析時(shí),這個(gè)屬性最終處于無(wú)效的(null)命名空間中。
          3. 在XML(和XML命名空間理解的解析器)中,xmlns屬性是其命名空間聲明機(jī)制的一部分,一個(gè)元素實(shí)際上在無(wú)效的命名空間中是不能有xmlns屬性的。當(dāng)DOM執(zhí)行時(shí),這個(gè)屬性最終在”http://www.w3.org/2000/xmlns/”命名空間中。
        2. XHTML允許使用非XHTML元素和屬性(在不同的命名空間),HTML不允許。
        3. XHTML用xml:lang屬性,HTML用lang屬性代替。
        4. XML ID引入xml:id,能用在XHTML中,但在HTML中沒(méi)有作用。
        5. 在HTML中,noscript能被使用,在XHTML中,它是禁止的。
        6. HTML用base元素,XHTML用xml:base代替。
        7. 在XHTML中,p元素也許包含結(jié)構(gòu)化的內(nèi)聯(lián)級(jí)(inline level)元素,包括blockquote, dl, menu, ol, ul, pre 和 table。在HTML序列化中,由于向后兼容的限制,這是不可能的(雖然它或許可以通過(guò)DOM操作實(shí)現(xiàn))。
        8. 在XHTML中,table元素或許包含子tr元素。在HTML序列化中,由于向后兼容的限制,這是不可能的(雖然它或許可以通過(guò)DOM操作實(shí)現(xiàn))。

            字符編碼(Character Encoding)

          1. 在XHTML中,XML聲明被用于指定的字符編碼。在HTML中,禁止XML聲明。
          2. 在HTML中,帶有一個(gè)charset屬性的meta可以用于代替。在XHTML中,如果有包含它,它是被禁止且忽略的。
          3. XHMTL的默認(rèn)編碼是依據(jù)XML規(guī)則,UTF-8或UTF-16。在HTML中如果沒(méi)有聲明編碼,它應(yīng)該決定執(zhí)行一個(gè)特別的啟發(fā)式的或退回到一個(gè)默認(rèn)的值。(規(guī)范中本章節(jié)還未完成)

              腳本(Scripts)

            1. document.write()和document.writeln()不能用在XHTML中,但能用在HTML中。
            2. 在XHTML中,通過(guò)innerHTML屬性獲取的字符串必須是一個(gè)良構(gòu)的XML片段。
            3. DOM APIs在XHTML中是大小寫敏感的,但是一些在HTML中是不敏感的。(不適用于那些不在HTML命名空間的元素。)
              1. Element.tagName, Node.nodeName,和 Node.localName 返回是大寫的值。
              2. Document.createElement()是大小寫不敏感的(規(guī)范寫法是小寫)。
              3. Element.setAttributeNode()將會(huì)把屬性名改成小寫。
              4. Element.setAttribute()是大小寫不敏感的(規(guī)范寫法是小寫)。
              5. Document.getElementsByTagName()和 Element.getElementsByTagName()是大小寫不敏感的。
              6. Document.renameNode()。如果新的命名空間是HTML命名空間,在重命名執(zhí)行之前新的合格的名字必須是小寫。
            4. 在HTML中,Document.createElement()在HTML命名空間下創(chuàng)建一個(gè)元素。在XML(包括XHTML),這個(gè)被DOM2和DOM3定義的命名空間是空的。
              1. 在XHTML中,瀏覽器在這個(gè)領(lǐng)域缺乏通用性。在Firefox,這個(gè)命名空間依賴于MIME類型。在Opera它依賴于根元素,而在Safari,它一直是無(wú)效的。

                  樣式表(Stylesheets)

                1. 用于CSS中的選擇器(selectors)匹配在XHTML中是大小寫敏感的,在HTML中大小寫不敏感的。
                2. 在HTML中在畫布上渲染背景,CSS請(qǐng)求body元素的特殊處理,但不適用于XHTML。

                  原文: Differences Between HTML and XHTML

                  it知識(shí)庫(kù)HTML和XHTML的不同,轉(zhuǎn)載需保留來(lái)源!

                  鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

                  主站蜘蛛池模板: 久久91精品国产91久 | 国产a级午夜毛片 | 麻豆蜜桃国语精品无码视频 | 精品国产乱码久久久久久下载 | 国产成人久视频免费 | 国产日韩欧美综合久久 | 99热在线精品免费全部my | 国产成人无码一区AV在线观看 | 国产在线精品亚洲视频在线 | 日日噜噜噜噜夜夜爽亚洲精品 | 无码日韩人妻精品久久蜜桃免费 | 三级黄色小视频 | 成人在线视频播放 | 四虎一级片 | 健身房被教练啪到腿软H | 久草高清在线 | 高清国语自产拍在线 | 九九热视频这里只有精 | 拍戏被CAO翻了H | 国产精品一区二区三区免费 | 欧美日韩精品一区二区三区高清视频 | 中文字幕伊人香蕉在线 | 精品AV无码一二三区视频 | 各种肉黄浪荡故事集 | 国产精品手机在线视频 | 女性酥酥影院 | 精品手机在线视频 | 久久青草费线频观看国产 | 涩涩伊人久久无码欧美 | 欧美激情视频一区二区 | 国产高清亚洲日韩字幕一区 | 一区二区三区四区国产 | 97影院午夜午夜伦不卡 | 亚洲欧美精品无码大片在线观看 | 窝窝影院午夜看片毛片 | 国内极度色诱视频网站 | 两性午夜刺激爽爽视频 | 伊人色综合久久天天 | 国产亚洲一区二区三区啪 | 亚洲精品乱码久久久久久中文字幕 | 4399日本电影完整版在线观看免费 |