HTML5与HTML4的区别(译文)
2019獨角獸企業重金招聘Python工程師標準>>>
本文選譯自:W3C Working Group Note: HTML5 Differences from HTML4。
解釋一下W3C Working Group Note,作為“工作組筆記” 發布,意味著它是一個草稿版文檔,可能被其它文檔更新、替換或廢棄。但由于翻譯時草稿只發布了不到二十天,本文有很好的時效性。也作為比較性質的文獻,比起HTML5的標準它更容易理解,可以讓人快速地理解HTML5的變化輪廓。
關于本翻譯:
- 原文所有指涉HTML5的地方用的要么是無定語的"HTML",要么是“新的HTML”,為了避免和HTML4的混淆,均寫作HTML5;
- 由于缺乏一目了然的譯名,原文中的User Agent統一簡寫為UA;
- 由于原文的章節劃分非常合理,第五節的屬性均為Property,此外其它的章節均是Attribute,因此本文不在翻譯上區分它們,均譯作“屬性”;
- Application統一簡寫為App;
- 為避免混淆,第四節即文檔模型章節部分,分類名均保留英文名不翻譯。
- 第五節中IDL(Interface Definition Language)相關內容由于沒有標準翻譯,概念legacy caller、Stringifiers、?setter、getter、creator、deleter等均保留原文
1. 簡介
1.1. 文檔范圍
本文檔覆蓋W3C的HTML5標準,它不包含W3C HTML5.1標準或WHATWG HTML標準。
1.4. 向后兼容
HTML5是這樣被定義的:能向后兼容目前UA處理內容的方式。為了讓語言更簡單,一些老的元素和Attribute被舍棄。比如一些純粹用于展現的元素(譯注:即非語義化的元素,如big)或Attribute被舍棄,因為他們更適合用CSS來處理。
但UA依然可以支持老舊的屬性和元素。這就是為什么HTML5標準清楚地劃分了給開發的要求和給UA的要求。比如,開發者不應當使用plaintext元素,但UA需要兼容plaintext元素。
既然HTML5已區分對UA和對開發者的要求,再也不需將一些特性標記為deprecated(不贊成使用)了。
2. 語法
HTML5定義了HTML5語法,日前已廣泛兼容于網絡上HTML4和XHTML1的文檔,但不兼容大部分HTML4中的深奧SGML特性,大部分UA都不支持它們,比如處理指令 (processing instructions) 和標簽簡寫 (shorthand markup)。
HTML5語法中同時定義了解析規則——包括異常的處理方式。這種解析規則能夠廣泛支持HTML4領域的實現,UA可以使用這些規則來解析媒體類型為text/html的資源。
下面是一個能夠說明HTML語法的示例文檔:
<!doctype html> <html><head><meta charset="UTF-8"><title>Example document</title></head><body><p>Example paragraph</p></body> </html>另外一個可以被用于HTML的語法是XML。XML語法可兼容于XHTML文檔或實現。使用XML語法的文檔需要配套XML文檔的媒體類型如application/xhtml+xml或application/xml來使用,同時,元素需要遵循XML規則,被放到http://www.w3.org/1999/xhtml命名空間中:
<?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>Example document</title></head><body><p>Example paragraph</p></body> </html>2.1 符號編碼
HTML標準中要求開發聲明編碼方式,有這些方式可以做到:
- 傳輸層,可以用HTTP頭部的Content-Type
- 在文檔頭部放置對應使用的編碼的BOM
- 使用有charset的meta元素
比如<meta charset="UTF-8">可以用于聲明UTF-8編碼。這個新聲明替代了<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">,盡管后者依然可以使用。
XML語法中,開發需要按照XML標準來設置編碼。
2.2 Doctype
HTML5語法要求聲明Doctype,以確保瀏覽器以標準模式渲染頁面。Doctype沒有其他用途。
HTML5語法中的Doctype聲明為<!DOCTYPE html>,不區分大小寫。
之前HTML4標準中的Doctype更長,因為HTML4語法是基于SGML的,需要引用DTD。而在新的HTML5標準中,再也不需要引用DTD了(譯注:因為HTML5不再基于SGML)。因此,doctype只是為了確保文檔以標準模式渲染。
為了支持舊有的標簽,可以使用<!DOCTYPE html SYSTEM "about:legacy-compat">作為Doctype聲明。
HTML4.0、HTML 4.01、XHTML 1.0、XHTML 1.1之類嚴格的Doctype,在HTML5中可以使用,但不被提倡。
在XML語法中,可以使用任何Doctype聲明或省略Doctype。使用XML媒體類型的文檔永遠會在標準模式中被解析。
2.3 MathML和SVG
HTML語法允許文檔內嵌MathML和SVG元素。
- math和svg的開始標簽將會導致HTML解析器轉為特殊的插入模式,以將元素和屬性放入合適的命名空間,并轉化大小寫,并支持XML中的空元素語法
- HTML中的math/svg的相關元素及其屬性依然是區分大小寫的
- 可以省略namespace(譯注:如svg的namespace可以省略xmlns="http://www.w3.org/2000/svg")
- 在這個特殊的插入模式里,可以使用CDATA語法
- 一些MathML和SVG元素可能導致解析器轉回HTML解析模式,比如mtext和foreignObject,在這些元素內部你可以使用HTML元素或者新的math/svg元素。
一個使用了svg功能的例子如下:
<!doctype html> <title>SVG in text/html</title> <p>A green circle:<svg> <circle r="50" cx="50" cy="50" fill="green"/> </svg> </p>2.4 其它方面
- 字符實體⟨和⟩分別代表U+27E8和U+27E9(數學意義上的左右尖括號?、?),而非U+2329和U+232A(尖括號的舊有表示方法?、 ?)。(譯注,見維基百科的說明)
- 一些新的字符實體被加入,包括在MathML中定義的全部字符實體
- 空元素(如br)允許有一個結尾反斜杠(trailing slash)
- 相較于HTML4,HTML5中的&在更多場景下不轉義
- 屬性需要起碼一個空格字符來區隔開
- 有空值的屬性等價于屬性與值完全相同的情形(譯注:比如<input autofocus>就相當于<input autofocus="autofocus">),即使這個屬性并非boolean屬性
- 相較于HTML4,HTML5中省略了引號的屬性值允許使用更大范圍的字符集
- HTML解析器不再對屬性值中間出現的空格進行標準化,比如<input id=" a ">中的id不再有效,同時<input value="">中的value中的空行字符可以被使用,而不需要使用實體來替代
- optgroup結束標簽可選填
- colgroup開始標簽可選填,HTML解析器會根據上下文補完
3. 語言
3.1 新標簽
以下標簽的引入是為了用于更好的文檔結構:
- section代表一般意義上的文檔/app區塊,它應當與h1~h6等元素搭配使用,以標示文檔層級
- article代表了獨立于文檔的一塊內容,比如blog入口或報刊文章
- main代表了文檔/app的主體內容
- aside代表了一些與頁面其它部分關聯性不那么大的內容
- header代表了一組介紹性或導航性質的輔助內容
- footer代表了一個區塊的底部,可以包含作者、版權等信息
- nav代表了文檔中可以導航的區塊
- figure代表了代表了一個獨立的內容流
figcaption可以用作內容流的標題 - template可以用于聲明一塊可用于克隆與插入的HTML片段
(譯注:這替代了我們常見的方案textarea、script type="text/html"、script type="text/template")
其它的新標簽:
- audio和video代表了多媒體元素,它們也提供了相應的API用于開發者定制UI,同時也提供了觸發UA展示其默認控件的方式。
source元素跟他們一同使用,用于有多類型的內容流的情形
track提供了audio的文本軌道(譯注:包含字幕等) - embed用于插件內容
- mark代表了一個文檔中需要標記或高亮的引用部分
- progress代表了一個任務的完成程度
- meter代表了一個度量,比如對磁盤空間的度量
- time代表了時間/日期
- ruby、rt、rp為ruby表達式
- bdi代表了一段隔絕于周圍元素的雙向書寫文本格式
- wbr代表了可能斷行的部分
- canvas用于渲染動態位圖
- datalist與input的list屬性共同使用,可以用于創建下拉選擇框控件
- keygen代表生成的密鑰對
- output代表了一種輸出內容
3.2 新屬性
表單元素:
- input的type屬性有了更多新值:tel、search、url、email、date、time、number、range、color
- form屬性可用于在input、output、select、textarea、button、label、object、fieldset元素上指定關聯的<form>元素的id,不局限于常規的層疊關系
- input、textarea元素可使用placeholder屬性來幫助用戶填寫數據,注意,它不應當替代label元素的作用
- 非type="hidden"的input、select、textarea、button可使用autofocus元素來制定自動獲得焦點的元素
- input、select、textarea有新屬性required,代表了用戶需要填寫該字段,才可以提交這個表單。select的第一個元素應當為沒有值的元素,以作為空值的占位符
- fieldset標簽允許使用disabled屬性,這將禁止所有子元素的交互;它同時還可以使用name以方便腳本獲取
- input元素有了用于指明輸入限制的屬性autocomplete,?min,max,?multiple,?pattern及step
- input type="image"的元素有width和height屬性
- input與textarea元素有了dirname以指明書寫方向(譯注:ltr或rtl)
- textarea元素有了新的屬性,如maxlength、minlength、wrap來控制最大輸入長度與提交時的斷行行為
- form元素有了novalidate屬性來禁止默認的表單驗證行為
- input與button元素有了formaction,?formenctype,?formmethod,?formnovalidate與formtarget屬性,用于覆蓋繼承自form的action,?enctype,?method,?novalidate及target屬性
- input元素有了minlength和maxlength屬性
非表單元素的新屬性:
- area元素同a和link元素一樣有了新的hreflang、type、rel屬性
- base元素同a一樣可以有target屬性
- meta元素有了charset屬性
- script元素有了async屬性將影響腳本的加載與運行
- html元素有manifest屬性,可用于指定緩存行為
- link元素有了新的屬性sizes,可以指定不同的大小的favicon
- ol元素有了新的屬性reversed,它代表著列表的順序是逆序的
- iframe元素有了sandbox和srcdoc屬性以支持沙盒安全保護
- object元素有了typemustmatch元素以保證更安全的嵌入順序
- img元素有crossorigin屬性以在canvas中支持CORS
HTML4中有一些全部標簽都可以使用的屬性,在HTML5中叫做全局屬性,如:accesskey?,?class,?dir,?id,?lang,?style,?tabindex?及title。此外,XHTML 1.0僅允許一些標簽上的xml:space屬性設置。
有這些新的全局屬性:
- contenteditable
- data-*代表了開發定制的屬性,這種格式可以避免與將來的新HTML屬性沖突
- hidden屬性代表一個元素不再與文檔相關
- role及aria-*用于支持無障礙訪問
- spellcheck用于指定內容是否允許進行拼寫檢查
- translate用于指定內容是否應當翻譯
3.3 修改的標簽
- b元素現在表示一段加強表示的文本,但并不表達額外的重要性、暗示需要加重的語氣和聲調(譯注:與em的語義區分開來)。比如文檔摘要里的關鍵字、產品評價里的產品名字、可以與之交互的文本等等
- i元素現在代表了一段需要使用不同的語氣或聲調的文本,或代表了不同品類的文本,如分類學名稱、科技術語、其他語言中的方言或俚語等等
- s元素代表了不再準確/相關的元素
- small元素代表了旁注,如免責聲明、注意事項、法律限制或版權聲明
- strong元素代表了重要性,而非著重強調
- u元素 represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt.(譯注:沒理解這個元素的語義)
- address元素的范圍現已由最近的祖先article/body元素決定,代表了后者的聯系信息
- script標簽可以被用于自定義數據塊
- blockquote元素依然表示從另外一個來源里摘錄的內容,但現在允許包含footer或cite元素
- dl元素現在代表了有關聯的命名-值的列表,但不再適用于對話了
- hr元素代表了段與段之間的主題意義上的區隔(譯注:即暗示段落主題已經發生了變化)
- noscript元素 represents nothing if scripting is enabled, and represents its children if scripting is disabled. It is used to present different markup to user agents that support scripting and those that don't support scripting, by affecting how the document is parsed.(譯注:沒看出來前后有什么區別)
3.4. 修改的屬性
(譯注:大部分是限制放寬,略)
3.5. 廢棄的元素
開發不應當使用這些廢棄的元素了,但是UA仍應當支持他們。
這些元素被廢棄,因為他們僅僅是用于展現層面的標簽,他們用CSS處理更好:basefont、big、center、font、strike、tt。
這些元素被廢棄,因為他們有損可訪問性與可用性:frame、frameset、noframes
這些元素被廢棄,因為他們罕有人使用、有其他元素替代或造成了迷惑:
- 在表示省略語的時候,acronym被abbr取代
- applet被object取代
- isindex元素被表單元素取代
- dir被ul取代
最后,noscript僅僅可以在HTML語法中被使用,它不被XML語法允許。
因為需要在視覺上隱藏它內部的內容,同時不允許noscript內部內容有運行腳本、應用樣式、擁有可以提交的表單、加載資源等行為,所以noscript內部的內容將被當作純文本解析。
3.6. 廢棄的屬性
這些屬性被廢棄,你可以在這里找到你能夠用以替代的屬性或標簽。
- a廢棄屬性:shape,?coords,?rev,?charset
- area廢棄屬性:nohref
- form廢棄屬性:accept
- head廢棄屬性:profile
- html廢棄屬性:version
- iframe廢棄屬性:longdesc
- img廢棄屬性:name
- input廢棄屬性:usemap
- link廢棄屬性:target,?rev,?charset
- meta廢棄屬性:scheme
- object廢棄屬性:archive,?classid,?codebase,?codetype,?declare,?standby
- param廢棄屬性:valuetype,?type
- table廢棄屬性:summary
- td廢棄屬性:axis,?abbr,?scope
- th廢棄屬性:axis
此外,HTML不再包含純用于表現的屬性,它們應當被CSS替代:
- caption,?iframe,?img,?input,?object,?legend,?table,?hr,?div,?h1,?h2,?h3,?h4,?h5,?h6,?p,?col,?colgroup,?tbody,?td,?tfoot,?th,?thead和tr的align屬性被廢棄
- body的alink,?link,?text,?background屬性被廢棄
- table,?tr,?td,?th和body的bgcolor屬性被廢棄
- object的border屬性被廢棄
- table的cellpadding和cellspacing屬性被廢棄
- col,?colgroup,?tbody,?td,?tfoot,?th,?thead和tr的char和charoff屬性被廢棄
- br的clear屬性被廢棄
- dl,?ol和ul的compact屬性被廢棄
- table的frame屬性被廢棄
- iframe的frameborder屬性被廢棄
- td和th的height屬性被廢棄
- img和object的hspace和vspace屬性被廢棄
- iframe的marginheight和marginwidth屬性被廢棄
- hr的noshade屬性被廢棄
- td和th的nowrap屬性被廢棄
- table的rules屬性被廢棄
- iframe的scrolling屬性被廢棄
- hr的size屬性被廢棄
- li,和ul的type屬性被廢棄
- col,?colgroup,?tbody,?td,?tfoot,?th,?thead和tr的valign屬性被廢棄
- hr,?table,?td,?th,?col,?colgroup和pre的width屬性被廢棄
下列屬性允許使用,但不鼓勵被使用:
- img元素上的border屬性。如果使用,要求使用0作為值。應當替代為CSS控制
- script元素上的language屬性。如果使用,要求使用JavaScript(不區分大小寫),同時不應當與type屬性沖突。由于它沒有實際意義,開發應當省略它
- a的name屬性。開發應當使用id來替代它
4. 內容模型
內容模型即元素的嵌套規則。
內容模型層面,HTML4有這些混亂的規則:
- 有兩個大類"inline"和"block-level"元素,有一些元素不屬于任何一個類別
- 有一些元素允許嵌套inline元素(如p);
有些允許嵌套block-level元素(如body);
有些都允許(如div);
然而一些元素不根據類別、而僅僅允許嵌套特定元素(如table?dl);
或完全不允許嵌套元素 - 一個元素可能在一個類別中,而內容模型卻在另外一個類別中。
比如p屬于block-level,但內容模型為inline。 - 更加讓人混淆的是,針對HTML4的不一樣的DTD聲明——Strict、Transitional或Frameset——有不一樣的內容模型。
比如Strict下body元素僅僅允許嵌套block-level元素,但在Transitional下,body元素兩種元素都允許嵌套 - CSS的視覺格式化模型中也存在"block-level element"和"inline-level element"的區分,它跟CSS中的display屬性相關,同時沒有跟HTML的內容模型有任何關聯
HTML5的內容模型不再使用"inline"和"block-level"的方式區分元素,為避免與CSS類似概念的混淆。然而,比起HTML4,它增加了更多類別,一個元素可以屬于任意個數的類別。
HTML5中劃分出來的類別如下:
- Metadata,如link、script
- Flow,如span、div、文本節點。它接近于HTML4層面的block-level和inline的混合
- Sectioning,如aside、section
- Heading,如h1
- Phrasing,如span、img、文本節點。它接近于HTML4的inline概念
- Embedded,如img、iframe、svg
- Interactive,如a、button、label
與HTML4有很大不一樣的一點是,HTML5中不再出現僅僅允許嵌套"block-level"的類別了(譯注:因為HTML5已經不存在"block-level"類別的標簽了)。
比如,body允許Flow類別的內容。這個規則比起HTML4 Strict,它更接近HTML4 Transitional。
更多變化包括:
- address元素允許嵌套Flow類別的標簽,但不允許嵌套Heading、Section類別的元素,不允許嵌套header、footer、另一個address
- HTML4允許object出現在head內部,但HTML5不允許
- noscript元素由block-level類別轉為Phrasing類別
- table,?thead,?tbody,?tfoot,?tr,?ol,?ul及dl元素允許為空
- 表格元素需要遵從表格模型。比如兩個單元格不允許交疊
- table元素允許tfoot元素作為它的最后一個子元素
- caption元素允許嵌套Flow類別的元素,但不允許嵌套table元素
- th元素允許嵌套Flow類別的元素,但不允許嵌套header元素、footer元素、Sectioning類別或Heading類別的元素
- a的內容模型為transparent,它與它的父級擁有同樣的內容模型,這意味著在a的父級允許Flow類別的子元素的時候,a可以嵌套div元素。
此外,它不允許嵌套Interactive類別的元素 - ins和del元素的內容模型為transparent。
HTML4有類似的規則,但無法在DTD中表達出 - 在object元素的param子元素以后,內容模型為transparent
(譯注:這個規則應該是為了覆蓋object內嵌套embed的場景) - map元素的內容模型為transparent
當有一個map作為祖先節點的時候,area元素被當作Phrasing類別的元素,同時area不再需要成為map的直接子節點 - legend元素不再是fieldset必須的子節點了
5. API
HTML5引進、修改、擴展、廢棄了很多API。
5.1 新增接口
HTML5為了幫助創建Web App,引入了一些新的接口:
- 媒體標簽video和audio的播放流程控制、同步多個媒體標簽、字幕等接口
- 表單限制驗證接口
(如setCustomValidity) - 引入應用緩存機制,允許Web App離線的API
- 允許Web App注冊為對應協議或媒體類型的處理應用的APP的API。
(即registerProtocolHandler和registerContentHandler) - 引入contenteditable屬性,允許編輯任意元素的接口
- 暴露會話歷史、允許使用腳本無刷新更新頁面URL
(History接口) - base64轉換API
(atob()及btoa()) - 處理搜索服務提供方的接口
(AddSearchProvider()及IsSearchProviderInstalled()) - External接口
- 打印文檔的接口
(print())
(譯注:下列接口是很早就有,屬于BOM中的共識部分,直到HTML5才加入標準)
- 暴露文檔URL、允許使用腳本切換、刷新頁面的接口
(Location接口) - 基于時間的回調接口
(setTimeout()及setInterval()) - 提供給用戶的提示接口
(alert(),confirm(),prompt()) - Window接口
- Navigator接口
5.2 修改的接口
如下DOM 2的接口已被改動:
- document.title的返回值將會折疊多個空格符
- document.domain允許賦值,因此可以改變文檔的script origin
- document.open()可以清空文檔(如果調用時僅有兩個或以下參數),或像是window.open()一樣表現(如果調用時有三個或四個參數)。在前種調用方式下,拋出一個XML異常
- document.close()、document.write()、document.writeln()拋出一個XML異常。后兩者允許可變參數,他們可以在文檔解析階段往文檔流中加入文本,并隱式調用document.open()。在一些情形下,他們都可能會被忽略
- document.getElementsByName()將返回滿足name符合參數的所有HTML元素
- HTMLFormElement的elements接口將返回HTMLFormControlsCollection,包括button,?fieldset,?input,?keygen,?object,?output,?select及textarea
- HTMLSelectElement的add()接口允許第二個參數為數字
- HTMLSelectElement的remove()接口在參數越界的時候,將刪除集合中第一個元素
- 在所有的HTML元素中都可以調用click()、focus()及blur()接口了
- a及areastringify為它們的href屬性
(譯注:意味著HTMLAnchorElement和HTMLAreaElement對應的toString方法返回它們的href屬性)
5.3 Document擴展
DOM Level 2中有個HTMLDocument接口,繼承自Document接口,并提供了文檔內部的元素(僅局限于HTML范疇內)訪問接口。
HTML5將這些成員移動到了Document接口中,并在特定方向上拓展了它。由于各類文檔(譯注:XML、HTML5、SVG等等文檔)都使用了Document接口,而HTML5范疇內的元素在所有類別的文檔中都可用,因此這些接口在SVG等文檔中都可以很好的運作。
此外,Document接口還有一些新成員:
- location、lastModified及readyState:用于幫助管理文檔的元數據(metadata)
- dir、head、embeds、plugins、scripts:用于獲取DOM樹的不同部分
- activeElement及hasFocus接口,用于判斷一個元素是否獲得了焦點
- 文檔編輯接口:designMode、execCommand()、queryCommandEnabled()、queryCommandIndeterm()、queryCommandState()、queryCommandSupported()、queryCommandValue()
- 所有的IDL事件處理屬性。此外,onreadystatechange是唯一一個在Document上才有效的接口
在腳本中修改了HTMLDocument原型的那部分還是可以正常運轉的,由于window.HTMLDocument也將返回Document接口。
5.4 HTMLElement擴展
HTMLElement接口也在HTML5中得到了擴展:
- 用于得到data-*的屬性的接口dataset
- click()、focus()、blur()接口允許腳本模擬用戶點擊與切換焦點
- accessKeyLabel給予UA賦予該元素的快捷鍵,開發可以通過accesskey屬性來影響UA的該行為
- isContentEditable返回元素是否可以編輯
- 全部的IDL事件處理屬性
- 得到元素屬性的接口如translate、hidden、tabIndex、accessKey、contentEditable、spellcheck、style
(譯注:DOM Level 2僅建議采用Element接口上的setAttribute和getAttribute來獲取或設置HTML Attribute,HTML5的這些定義擴展了HTML Attribute的范圍,讓它們可以像DOM Property一樣set和get——UA早已廣泛支持) - 有些之前在HTMLElement上定義接口被移動到了Element接口中:id、className、classList、getElementsByClassName()
(譯注:擴展了DOM Level 2上的Element接口定義,可以直接set/get id等屬性值了——UA早已廣泛支持)
5.5 其它接口擴展
DOM Level 2中的其它接口也得到了擴展。
| 接口 | 新增接口 |
| HTMLOptionsCollection | legacy caller、setter creator、add()、remove()、selectedIndex |
| HTMLFormElement | 通過name或index索引的getter、checkValidity() |
| HTMLSelectElement | getter、setter creator、item()、namedItem()、labels、selectedOptions及各種validate接口函數 |
| HTMLOptionElement | 構造器new Option() |
| HTMLInputElement | files、height、indeterminate、list、valueAsDate、valueAsNumber、width、stepUp()、stepDown()、labels、文本選取區域API及各種validate接口函數 |
| HTMLTextAreaElement | textLength、labels、文本選取區域API及各種validate接口函數 |
| HTMLButtonElement | labels及各種validate接口函數 |
| HTMLLabelElement | control |
| HTMLFieldSetElement | type、elements及各種validate接口函數 |
| HTMLAnchorElement | relList、text |
| HTMLLinkElement | relList |
| HTMLAreaElement | relList |
| HTMLImageElement | 構造器new Image()、naturalWidth、naturalHeight、complete |
| HTMLObjectElement | contentWindow、legacy caller及各種validate接口函數 |
| HTMLMapElement | images |
| HTMLTableElement | createTBody() |
| HTMLIFrameElement | contentWindow |
此外:
- HTMLLinkElement和HTMLStyleElement實現了CSSOM中的LinkStyle接口
- HTMLAnchorElement、HTMLLinkElement和HTMLAreaElement實現了URLUtils接口
5.6 廢棄接口
- 在HTML5中已被廢棄的屬性,其對應IDL屬性接口也將被廢棄。如bgColor已被廢棄,那么HTMLBodyElement之上的IDL屬性接口bgcolor也被廢棄
- 在HTML5中已被廢棄的元素,其對應接口也被廢棄,包括HTMLAppletElement,?HTMLFrameSetElement,?HTMLFrameElement,?HTMLDirectoryElement及HTMLFontElement、HTMLBaseFontElement
- 由于HTML解析器將isindex替代為其他元素了,HTMLIsIndexElement接口被廢棄
- 一些成員屬性從HTMLDocument接口移動到了Document接口,因此在原來的HTMLDocument下被廢棄:anchors和applets。
?
轉載于:https://my.oschina.net/wangch5453/blog/2994317
總結
以上是生活随笔為你收集整理的HTML5与HTML4的区别(译文)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PostgreSQL的高可用与数据复制方
- 下一篇: R-CNN-减少region propo