W3C 代碼標(biāo)準(zhǔn)規(guī)范

2018-01-03 22:03 更新

W3C通過設(shè)立領(lǐng)域(Domains)和標(biāo)準(zhǔn)計(jì)劃(Activities)來組織W3C的標(biāo)準(zhǔn)活動(dòng),圍繞每個(gè)標(biāo)準(zhǔn)計(jì)劃,會設(shè)立相關(guān)的W3C工作組織(包括工作組、社區(qū)組、商務(wù)組等)。W3C會根據(jù)產(chǎn)業(yè)界的標(biāo)準(zhǔn)需求調(diào)整Domains和Activity的設(shè)置及相關(guān)的工作組設(shè)置。
截至2014年7月,W3C共設(shè)立5個(gè)技術(shù)領(lǐng)域,開展24個(gè)標(biāo)準(zhǔn)計(jì)劃。查看所有工作組列表(英文)。

w3cinteraction domain  交互技術(shù)標(biāo)準(zhǔn)領(lǐng)域

主要關(guān)注Web與用戶交互的接口和技術(shù)標(biāo)準(zhǔn),包括(X)HTML及其他用于Web的標(biāo)記語言(如CSS, MathML,SMIL,SVG,XForms等) ,同時(shí)提供技術(shù)途徑將這些技術(shù)集成到客戶端環(huán)境中。下設(shè)10個(gè)標(biāo)準(zhǔn)計(jì)劃:
- 圖形(Graphics Activity)
- HTML(HTML Activity)
- 國際化(Internationalization Activity)
- 數(shù)學(xué)表示(Math Activity)
- 富Web客戶端(Rich Web Client Activity)
- 樣式(Style Activity)級聯(lián)樣式單(CSS)
- Web視頻(Video in the Web Activity)媒體標(biāo)記(Annotations)、媒體片段、時(shí)間序列文本(Timed Text)。 
- XForms(XForms Activity),電子表單(Forms)。
- Web字體(Fonts Activity),Web字體(WebFonts)。 
- Web測試(Web Testing Activity),瀏覽器測試和工具、Web測試興趣。  

w3cubiquitous web domain  普適Web標(biāo)準(zhǔn)領(lǐng)域

主要關(guān)注讓任何人在任何地點(diǎn)、任何時(shí)間,通過任何設(shè)備訪問Web內(nèi)容的技術(shù)和標(biāo)準(zhǔn),包括如何通過移動(dòng)重點(diǎn)及其他消費(fèi)電子、交互式電視、車載終端等獲取Web內(nèi)容。2013年11月,W3C調(diào)整技術(shù)領(lǐng)域分工,可擴(kuò)展標(biāo)記語言(XML)相關(guān)標(biāo)準(zhǔn)化工作劃入信息與知識技術(shù)領(lǐng)域。目前,該領(lǐng)域下設(shè)5個(gè)標(biāo)準(zhǔn)計(jì)劃:
- 移動(dòng)Web計(jì)劃(Mobile Web Initiative Activity),語音API社區(qū)組、響應(yīng)式圖片社區(qū)組及核心移動(dòng),新設(shè)立Web和移動(dòng)。
- 多模式交互(Multimodal Interaction Activity),多模式交互。
- 普適Web應(yīng)用(Ubiquitous Web Applications Activity),地理定位(Geolocation)、系統(tǒng)應(yīng)用、基于模型的用戶交互(Model-based UI)、設(shè)備API及策略、Web實(shí)時(shí)通訊(WebRTC)、近場通訊。
- 語音瀏覽器(Voice Browser Activity),語音瀏覽器。
- Web和電視(Web and TV Activity),Web和電視。

w3cTechnology and Society Domain  技術(shù)與社會標(biāo)準(zhǔn)領(lǐng)域

主要解決Web技術(shù)和公共策略相關(guān)的技術(shù)問題,2013年11月,W3C調(diào)整了技術(shù)與社會(Technology and Society))技術(shù)領(lǐng)域的覆蓋范圍,重點(diǎn)推進(jìn)Web的隱私保護(hù)、安全,以及未來與社會化Web、數(shù)字營銷(Digital Marketing)等相關(guān)的標(biāo)準(zhǔn)工作。鑒于Web服務(wù)相關(guān)標(biāo)準(zhǔn)制定工作已經(jīng)完成,W3C關(guān)閉了原來的Web服務(wù)標(biāo)準(zhǔn)計(jì)劃。2014年7月,W3C在該技術(shù)領(lǐng)域下新設(shè)立社會網(wǎng)絡(luò)標(biāo)準(zhǔn)計(jì)劃(Social Activity)。該技術(shù)領(lǐng)域由Wendy Seltzer負(fù)責(zé),目前下設(shè)4個(gè)標(biāo)準(zhǔn)計(jì)劃:
- 專利策略(Patent Policy Activity),專利和標(biāo)準(zhǔn)。 
- 隱私(Privacy Activity),追蹤保護(hù)、隱私。
- 安全(Security Activity),XML安全、Web應(yīng)用安全、Web加密、Web安全新。
- 社交網(wǎng)絡(luò)(Social Activity):2014年7月新設(shè)立,下設(shè)社交網(wǎng)絡(luò)、社交網(wǎng)絡(luò)。 

w3c  信息與知識(Information & Knowledge)標(biāo)準(zhǔn)領(lǐng)域  

2013年11月,W3C正式將原來的語義Web、Web數(shù)據(jù)(Data on the Web)、數(shù)字出版,以及XML相關(guān)的標(biāo)準(zhǔn)化工作合并,設(shè)立新的信息與知識技術(shù)領(lǐng)域(Information and Knowledge),并任命Ralph Swick擔(dān)任該技術(shù)領(lǐng)域的負(fù)責(zé)人。Ralph同時(shí)還兼任了W3C的首席運(yùn)營官。 
- 數(shù)據(jù)(Data Activity),整合了原來的語義Web標(biāo)準(zhǔn)計(jì)劃,及電子政府標(biāo)準(zhǔn)計(jì)劃,數(shù)據(jù)標(biāo)準(zhǔn)計(jì)劃協(xié)調(diào)、 RDFa、 語義Web健康和生命科學(xué)、語義Web、RDF工作組、鏈接數(shù)據(jù)平臺工作組、政府鏈接數(shù)據(jù)工作組,此外,新設(shè)立了Web數(shù)據(jù)最佳實(shí)踐工作組(Data on the Web Best Practices WG)、Web上的逗號分隔值(CSV on the Web)。 
- 數(shù)字出版 (Digital Publishing Activity),數(shù)字出版。   
- 可擴(kuò)展標(biāo)記語言XML(Extensible Markup Language Activity),高效XML交換、XML協(xié)調(diào)組、XML核心、XML處理模型、XML查詢、XML大綱、XSLT。 

w3cwai  Web信息無障礙計(jì)劃標(biāo)準(zhǔn)

主要解決殘障人士方便的獲得Web內(nèi)容相關(guān)的技術(shù)問題并形成解決方案,包括Web信息無障礙的基本原則、實(shí)現(xiàn)技術(shù)、評估方法等。下設(shè)2個(gè)標(biāo)準(zhǔn)計(jì)劃:
- Web信息無障礙技術(shù)(WAI Technical Activity),協(xié)議和格式(PF)、Web內(nèi)容可訪問性原則(WCAG)、編寫工具可訪問性原則、用戶代理可訪問性、評估和修復(fù)工具(ERT),及獨(dú)立用戶界面(Indie UI)。
- WAI國際計(jì)劃辦公室(WAI International Program Office Activity),教育和推廣(EO)、研究和開發(fā)(RD)、WAI、WAI。 
 

一、目的: 為什么要遵循標(biāo)準(zhǔn)
我們作為生產(chǎn)者實(shí)際上只是位于中游,既不是上游的瀏覽器制造商,他們是標(biāo)準(zhǔn)的真正制定者,也不算是下游,他們是瀏覽器的終端使用者。這個(gè)角色就意味著我們位于一個(gè)接口的位置,我們需要想辦法滿足下游的用戶使用上游不同瀏覽器時(shí)看到的是同樣的內(nèi)容。用一個(gè)程序的語言說,我們是轉(zhuǎn)換器……adapter,我們想方設(shè)法讓我們的頁面、我們的程序能夠支持所有的瀏覽器、能夠滿足盡可能多的用戶。我們要滿足所有的客戶,即使做不到,我們也要滿足我們技術(shù)范圍之內(nèi)的所有用戶。

二、目標(biāo)
一個(gè)標(biāo)準(zhǔn)制作的網(wǎng)站,讓你壓根感覺不到跟標(biāo)準(zhǔn)有關(guān)。

三、受眾 
所有ui設(shè)計(jì)師、技術(shù)工程師、運(yùn)營維護(hù)人員。

四、標(biāo)準(zhǔn)內(nèi)容
拋棄聲明:以后我們將拋棄font標(biāo)簽,新的頁面中不應(yīng)該再出現(xiàn)如<font color=”red”></font>,已經(jīng)存在的老的頁面也應(yīng)該在修改時(shí)盡量替代,替代方法:<span 
class=”red_tex”></span>。

一個(gè)標(biāo)準(zhǔn)XHTML頭信息格式如下:

<!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" lang="gb2312"> 
<head> 
    <meta charset="utf-8" /> 
    <title>W3Cschool - 學(xué)技術(shù)查資料,從w3cschool開始!</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="renderer" content="webkit" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="keywords" content="w3cschool,w3cschool在線教程,技術(shù)文檔,編程入門教程,W3Cschool,W3C,HTML,HTML5,CSS,Javascript,jQuery,Bootstrap,PHP,Java,Sql" />
    <meta name="description" content="w3cschool是一個(gè)專業(yè)的編程入門學(xué)習(xí)及技術(shù)文檔查詢網(wǎng)站,提供包括HTML,CSS,Javascript,jQuery,C,PHP,Java,Python,Sql,Mysql等編程語言和開源技術(shù)的在線教程及使用手冊,是類國外W3Cschool的W3C學(xué)習(xí)社區(qū)及菜鳥編程平臺。" />
</head>

 

1、什么是DOCTYPE
DOCTYPE是document type(文檔類型)的簡寫,用來說明你用的XHTML或者HTML是什么版本。其中的DTD(例如xhtml1-transitional.dtd)叫文檔類型定義,里面包含了文檔的規(guī)則,瀏覽器就根據(jù)你定義的DTD來解釋你頁面的標(biāo)識,并展現(xiàn)出來。要建立符合標(biāo)準(zhǔn)的網(wǎng)頁,DOCTYPE聲明是必不可少的關(guān)鍵組成部分;除非你的XHTML確定了一個(gè)正確的DOCTYPE,否則你的標(biāo)識和CSS都不會生效。
XHTML 1.0 提供了三種DTD聲明可供選擇:
i) 過渡的(Transitional):要求非常寬松的DTD,它允許你繼續(xù)使用HTML4.01的標(biāo)識(但是要符合xhtml的寫法)。 
完整代碼如下:

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

ii) 嚴(yán)格的(Strict):要求嚴(yán)格的DTD,你不能使用任何表現(xiàn)層的標(biāo)識和屬性,例如<br>。
完整代碼如下:

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

iii) 框架的(Frameset):專門針對框架頁面設(shè)計(jì)使用的DTD,如果你的頁面中包含有框架,需要采用這種DTD。
完整代碼如下:

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

注:DOCTYPE聲明必須放在每一個(gè)XHTML文檔最頂部,在所有代碼和標(biāo)識之上。

2、名字空間 namespace
<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">
通常我們HTML4.0的代碼只是<html>,這里的"xmlns"是什么呢?
這個(gè)“xmlns”是XHTML namespace的縮寫,叫做“名字空間”聲明。XHTML是HTML向XML過渡的標(biāo)識語言,它需要符合XML文檔規(guī)則,因此也需要定義名字空間。又因?yàn)閄HTML1.0不能自定義標(biāo)識,所以它的名字空間都相同,就是"http://www.w3.org/1999/xhtml"。目前階段我們只要照抄代碼就可以了。

3、定義語言編碼
<meta http-equiv=“Content-Type” content=“text/html; charset=gb2312” />
為了被瀏覽器正確解釋和通過W3C代碼校驗(yàn),所有的XHTML文檔都必須聲明它們所使用的編碼語言,我們一般使用gb2312(簡體中文),制作多國語言頁面也有可能用Unicode、ISO-8859-1等,根據(jù)你的需要定義。
注:如果忘記了定義語言編碼,可能就會出現(xiàn),你在DW(dreamweaver)做完一個(gè)頁面,第二次打開時(shí)所有的中文變成了亂碼。

4、Javascript定義
Js必須要用<script language="javascript" type="text/javascript">來開頭定義,而不是原來的<script language=javascript>或干脆直接<script>,并且需要加個(gè)注釋符<!--   -->,以保證不在不支持js的瀏覽器上直接顯示出代碼來。 
例如:

<script language="javascript" type="text/javascript"> 
//<![CDATA[ 
function show_layout(selObj){ 
var n = selObj.options[selObj.selectedIndex].value; 
document.getElementById('stylesheet').href = n; 
} 
//]]> 
</script> 

注:具體參考js規(guī)范。

5、CSS定義
CSS必須要用<style type=“text/css”>開頭來定義,而不是原來的直接<style>,也不建議直接寫在內(nèi)容代碼里如:<div style=”padding-left:20px;”></div>,并需要加個(gè)注釋符<!-- --> 
例如:

<style type="text/css" media="screen"> 
<!-- 
body {margin:0px;padding:0px;font-size:12px;text-align:center} 
--> 
</style>

為保證各瀏覽器的兼容性,在寫CSS時(shí)請都寫上數(shù)量單位,例如:錯(cuò)誤:.space_10{padding-left:10} 正確:.space_10 {padding-left:10px}

6、不要在注釋內(nèi)容中使用“--”
“--”只能發(fā)生在XHTML注釋的開頭和結(jié)束,也就是說,在內(nèi)容中它們不再有效。
例如下面的代碼是無效的:<!--這里是注釋-----------這里是注釋-->
正確的應(yīng)用等號或者空格替換內(nèi)部的虛線。<!--這里是注釋============這里是注釋-->

7、所有標(biāo)簽的元素和屬性的名字都必須使用小寫
與HTML不一樣,XHTML對大小寫是敏感的,<title>和<TITLE>是不同的標(biāo)簽。XHTML要求所有的標(biāo)簽和屬性的名字都必須使用小寫。例如:<BODY>必須寫成<body>。大小寫夾雜也是不被認(rèn)可的,通常dreamweaver自動(dòng)生成的屬性名字"onMouseOver"也必須修改成"onmouseover"。

8、所有的屬性必須用引號""括起來
在HTML中,你可以不需要給屬性值加引號,但是在XHTML中,它們必須被加引號。
例如:<height=80>必須修改為:<height="80">。
特殊情況,你需要在屬性值里使用雙引號,你可以用",單引號可以使用&apos;,例如:<alt="say&apos;hello&apos;">

9、把所有<和&特殊符號用編碼表示
任何小于號(<),不是標(biāo)簽的一部分,都必須被編碼為 &lt;
任何大于號(>),不是標(biāo)簽的一部分,都必須被編碼為 &gt;
任何與號(&),不是實(shí)體的一部分的,都必須被編碼為 &amp; 
錯(cuò)誤:
http://club.china.alibaba.com/forum/thread/search_forum.html?action=SearchForum&doSearchForum=true&main=1&catcount=10&keywords=mp3 
正確:
http://club.china.alibaba.com/forum/thread/search_forum.html?action=SearchForum&amp;doSearchForum=true&amp;main=1&amp;catcount=10&amp;keywords=mp3

10、給所有屬性賦一個(gè)值
XHTML規(guī)定所有屬性都必須有一個(gè)值,沒有值的就重復(fù)本身。例如: 
<td nowrap><input type="checkbox" name="shirt" value="medium" checked>必須修改為:
<td nowrap="nowrap"><input type="checkbox" name="shirt" value="medium" checked="checked" />

11、所有的標(biāo)記都必須要有一個(gè)相應(yīng)的結(jié)束標(biāo)記
以前在HTML中,你可以打開許多標(biāo)簽,例如<p>和<li>而不一定寫對應(yīng)的</p>和</li>來關(guān)閉它們。但在XHTML中這是不合法的。XHTML要求有嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu),所有標(biāo)簽必須關(guān)閉。如果是單獨(dú)不成對的標(biāo)簽,在標(biāo)簽最后加一個(gè)"/"來關(guān)閉它。 
例如:<br /> 
<img height="80" alt="網(wǎng)頁" title=”網(wǎng)頁” src="logo.gif" width="200" />

特殊結(jié)束標(biāo)記 
錯(cuò)誤:
Document.write("<td width=\"300\"><a href=\"1.html\">ok</a></td>");
正確:
Document.write("<td width=\"300\"><a href=\"1.html\">ok<\/a><\/td>");
在js中,原已結(jié)束的標(biāo)簽需要再轉(zhuǎn)義再結(jié)束。

12、所有的標(biāo)記都必須合理嵌套 
同樣因?yàn)閄HTML要求有嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu),因此所有的嵌套都必須按順序,以前我們這樣寫的代碼: 
<p><b></p></b>必須修改為:<p><b></b></p> 
就是說,一層一層的嵌套必須是嚴(yán)格對稱。
錯(cuò)誤:
<table><tr><form><td></td></form></tr></table>
正確:
<form><table><tr><td></td></tr></table></form>

13、圖片添加有意義的alt屬性
例如:<img src="logo.gif" width="100" height="100" align="middle" boder="0" alt="w3cschool" />
盡可能的讓作為內(nèi)容的圖片都帶有屬于自己的alt屬性。
同理:添加文字鏈接的title屬性。
<a href="#" target="_blank" title="新聞新聞新聞新聞">新聞新聞…</a>,在一些限定字?jǐn)?shù)的內(nèi)容展示尤為重要,幫助顯示不完成的內(nèi)容顯示完整,而不用考慮頁面會因此而撐大。

14、在form表單中增加lable,以增加用戶友好度 
例如:

<form action="http://somesite.com/prog/adduser" method="post">
  <label for="firstname">first name: </label>
  <input type="text" id="firstname" />
  <label for="lastname">last name: </label>
  <input type="text" id="lastname" />
</form>

 

附錄一
1、XHTML校驗(yàn)

校驗(yàn)網(wǎng)址:http://validator.w3.org/
校驗(yàn)方式:網(wǎng)址校驗(yàn)、文件上傳校驗(yàn)
一般選擇"Show Source"和"Verbose Output"可以幫助你找到錯(cuò)誤代碼所在行和錯(cuò)誤原因。

XHTML校驗(yàn)常見錯(cuò)誤原因?qū)φ毡?/span>
1.No DOCTYPE Found! Falling Back to HTML 4.01 Transitional--未定義DOCTYPE。
2.No Character Encoding Found! Falling back to UTF-8.--未定義語言編碼。
3.end tag for "img" omitted, but OMITTAG NO was specified--圖片標(biāo)簽沒有加"/"關(guān)閉。
4.an attribute value specification must be an attribute value literal unless SHORTTAG YES is specified--屬性值必須加引號。
5.element "DIV" undefined---DIV標(biāo)簽不能用大寫,要改成小寫div。
6.required attribute "alt" not specified---圖片需要加alt屬性。
7.required attribute "type" not specified---JS或者CSS調(diào)用的標(biāo)簽漏了type屬性。
其中最最常見的錯(cuò)誤就是標(biāo)簽的大小寫問題了。通常這些錯(cuò)誤都是關(guān)聯(lián)的,比如忘記了一個(gè)</li>其他<li>標(biāo)簽都會報(bào)錯(cuò),所以不要看到一堆的錯(cuò)誤害怕,通常解決了一個(gè)錯(cuò)誤,其他的錯(cuò)誤也都沒有了。


附錄二
2、CSS2校驗(yàn)

校驗(yàn)網(wǎng)址:http://jigsaw.w3.org/css-validator/
校驗(yàn)方式:網(wǎng)址校驗(yàn)、文件上傳校驗(yàn)、直接貼入代碼校驗(yàn)
校驗(yàn)成功,會顯示"恭喜恭喜,此文檔已經(jīng)通過樣式表校驗(yàn)! "。校驗(yàn)失敗,會顯示兩類錯(cuò)誤:錯(cuò)誤和警告。錯(cuò)誤表示一定要修正,否則無法通過校驗(yàn);警告表示有代碼不被W3C推薦,建議修改。
同樣,通過檢驗(yàn)后,可以放置一個(gè)CSS校驗(yàn)通過圖標(biāo)。

CSS2校驗(yàn)常見錯(cuò)誤原因?qū)φ毡?/span>
1.(錯(cuò)誤)無效數(shù)字:color909090不是一個(gè)color值,909090---十六進(jìn)制顏色值必須加"#"號,即#909090
2.(錯(cuò)誤)無效數(shù)字:margin-topUnknown dimension:6pixels ---pixels不是一個(gè)單位值,正確寫法6px
3.(錯(cuò)誤)屬性:scrollbar-face-color 不存在 : #eeeeee --- 定義滾動(dòng)條顏色是非標(biāo)準(zhǔn)的屬性
4.(錯(cuò)誤)值:cursorhand不存在 : hand是非標(biāo)準(zhǔn)屬性值,修改為cursor:pointer
5.(警告)Line:0 font-family: 建議你指定一個(gè)種類族科作為最后的選擇 --W3C建議字體定義的時(shí)候,最后以一個(gè)類別的字體結(jié)束,例如"sans-serif",以保證在不同操作系統(tǒng)下,網(wǎng)頁字體都能被顯示。
6.(警告)Line:0 can't find the warning message for otherprofile --表示在代碼中有非標(biāo)準(zhǔn)屬性或值,校驗(yàn)程序無法判斷和提供相應(yīng)的警告信息。


w3c標(biāo)準(zhǔn)驗(yàn)證鏈接:


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號