1.HTML、XML谷婆、XHTML
HTML
超文本標(biāo)記語言慨蛙,標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用。
“超文本”就是指頁面內(nèi)可以包含圖片纪挎、鏈接期贫,甚至音樂、程序等非文字元素异袄。
超文本標(biāo)記語言的結(jié)構(gòu)包括“頭”部分(英語:Head)通砍、和“主體”部分(英語:Body),其中“頭”部提供關(guān)于網(wǎng)頁的信息隙轻,“主體”部分提供網(wǎng)頁的具體內(nèi)容埠帕。
XML
可擴(kuò)展標(biāo)記語言垢揩,標(biāo)準(zhǔn)通用標(biāo)記語言的子集玖绿,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言。
在電子計(jì)算機(jī)中叁巨,標(biāo)記指計(jì)算機(jī)所能理解的信息符號(hào)斑匪,通過此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種的信息比如文章等锋勺。它可以用來標(biāo)記數(shù)據(jù)蚀瘸、定義數(shù)據(jù)類型,是一種允許用戶對(duì)自己的標(biāo)記語言進(jìn)行定義的源語言庶橱。 它非常適合萬維網(wǎng)傳輸贮勃,提供統(tǒng)一的方法來描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。是Internet環(huán)境中跨平臺(tái)的苏章、依賴于內(nèi)容的技術(shù)寂嘉,也是當(dāng)今處理分布式結(jié)構(gòu)信息的有效工具奏瞬。早在1998年,W3C就發(fā)布了XML1.0規(guī)范泉孩,使用它來簡(jiǎn)化Internet的文檔信息傳輸硼端。
XHTML
可擴(kuò)展超文本標(biāo)記語言,是一種置標(biāo)語言寓搬,表現(xiàn)方式與超文本標(biāo)記語言(HTML)類似珍昨,不過語法上更加嚴(yán)格。
從繼承關(guān)系上講句喷,HTML是一種基于標(biāo)準(zhǔn)通用置標(biāo)語言的應(yīng)用镣典,是一種非常靈活的置標(biāo)語言,而XHTML則基于可擴(kuò)展標(biāo)記語言唾琼,可擴(kuò)展標(biāo)記語言是標(biāo)準(zhǔn)通用置標(biāo)語言的一個(gè)子集骆撇。XHTML 1.0在2000年1月26日成為W3C的推薦標(biāo)準(zhǔn)。
HTML父叙、XML神郊、XHTML 的關(guān)系
發(fā)展趨勢(shì):
html(超文本標(biāo)記語言)=>xhtml(可擴(kuò)展性超文本標(biāo)記語言)=>xml(可擴(kuò)展性標(biāo)記語言);
早起的網(wǎng)頁使用html語言編寫的,但是它擁有三個(gè)嚴(yán)重的缺點(diǎn):
1趾唱、編碼不規(guī)范涌乳,結(jié)構(gòu)混亂臃腫,需要智能的終端才能很好的顯示甜癞;
2夕晓、表現(xiàn)和結(jié)構(gòu)混亂,不利于開發(fā)和維護(hù)悠咱;
3蒸辆、不能使用更多的網(wǎng)絡(luò)設(shè)備,比如手機(jī)析既、PDA等躬贡;
因此HTML需要發(fā)展才能解決這個(gè)問題,于是W3C又制定了XHTML眼坏,XHTML是HTML向XML 過度的一個(gè)橋梁拂玻。而xml是web發(fā)展的趨勢(shì)。
書寫差別:
html:
1.對(duì)大小寫不敏感宰译;
2.標(biāo)簽不必成對(duì)出現(xiàn)檐蚜;
3.<br>;
xhtml:
1.對(duì)大小寫敏感,必須是小寫的沿侈;
2.標(biāo)簽必須成對(duì)出現(xiàn)闯第,有開始標(biāo)簽就必須有結(jié)束標(biāo)簽;
3.屬性值必須在引號(hào)之內(nèi)缀拭;
4.不支持屬性最小化: eg:正確:<input checked='checked'>
錯(cuò)誤:<input checked>
5.name屬性不贊成使用咳短,以后會(huì)被淘汰肃廓;
6.空元素也要結(jié)束標(biāo)簽:如:
,
(水平分割線)
xml:
html最終會(huì)發(fā)展到xml,xhtml是html想xml發(fā)展的一個(gè)過渡诲泌,xhtml的特性也適合xml盲赊;
2.HTML語義化
什么是HTML語義化?
語義化HTML是一種編寫HTML的方式:根據(jù)內(nèi)容的結(jié)構(gòu)化(內(nèi)容語義化)敷扫,選擇合適的標(biāo)簽(代碼語義化)便于開發(fā)者閱讀和寫出更優(yōu)雅的代碼的同時(shí)讓瀏覽器的爬蟲和機(jī)器很好地解析哀蘑。
2、為什么要語義化葵第?
1.為了在沒有CSS的情況下绘迁,頁面也能呈現(xiàn)出很好地內(nèi)容結(jié)構(gòu)、代碼結(jié)構(gòu):為了裸奔時(shí)好看卒密;
2.用戶體驗(yàn):例如title缀台、alt用于解釋名詞或解釋圖片信息、label標(biāo)簽的活用哮奇;
3.有利于SEO:和搜索引擎建立良好溝通膛腐,有助于爬蟲抓取更多的有效信息:爬蟲依賴于標(biāo)簽來確定上下文和各個(gè)關(guān)鍵字的權(quán)重;
4.方便其他設(shè)備解析(如屏幕閱讀器鼎俘、盲人閱讀器哲身、移動(dòng)設(shè)備)以意義的方式來渲染網(wǎng)頁;
5.便于團(tuán)隊(duì)開發(fā)和維護(hù)贸伐,語義化更具可讀性勘天,是下一步吧網(wǎng)頁的重要?jiǎng)酉颍裱璚3C標(biāo)準(zhǔn)的團(tuán)隊(duì)都遵循這個(gè)標(biāo)準(zhǔn)捉邢,可以減少差異化脯丝。
在做前端開發(fā)的時(shí)候要記住:HTML 告訴我們一塊內(nèi)容是什么(或其意義)伏伐,而不是它長(zhǎng)的什么樣子宠进,它的樣子應(yīng)該由CSS來決定。
HTML語義化需要注意些什么
-寫語義化的 HTML 結(jié)構(gòu)其實(shí)很簡(jiǎn)單秘案,首先掌握 HTML 中各個(gè)標(biāo)簽的語義砰苍,在看到內(nèi)容的時(shí)候想想用什么標(biāo)簽?zāi)芨玫拿枋鏊市伲鞘裁淳陀檬裁礃?biāo)簽阱高。
- <h1>~<h6> ,作為標(biāo)題使用茬缩,并且依據(jù)重要性遞減赤惊,<h1> 是最高的等級(jí)。
- <p>段落標(biāo)記凰锡,知道了 <p> 作為段落未舟,你就不會(huì)再使用 <br /> 來換行了圈暗,而且不需要 <br /> 來區(qū)分段落與段落。<p> 中的文字會(huì)自動(dòng)換行裕膀,而且換行的效果優(yōu)于 <br />员串。段落與段落之間的空隙也可以利用 CSS 來控制,很容易而且清晰的區(qū)分出段落與段落昼扛。
- <ul>寸齐、<ol>、<li>抄谐,<ul> 無序列表渺鹦,這個(gè)被大家廣泛的使用,<ol> 有序列表也挺常用蛹含。在 web 標(biāo)準(zhǔn)化過程中毅厚,<ul> 還被更多的用于導(dǎo)航條,本來導(dǎo)航條就是個(gè)列表浦箱,這樣做是完全正確的吸耿,而且當(dāng)你的瀏覽器不支持 CSS 的時(shí)候,導(dǎo)航鏈接仍然很好使酷窥,只是美觀方面差了一點(diǎn)而已珍语。
- <dl>、<dt>竖幔、<dd>板乙,<dl> 就是“定義列表”。比如說詞典里面的詞的解釋拳氢、定義就可以用這種列表募逞。
- <em>、<strong>馋评,<em> 是用作強(qiáng)調(diào)放接,<strong> 是用作重點(diǎn)強(qiáng)調(diào)。
- <table>留特、<td>纠脾、<th>、&caption>蜕青, (X)HTML中的表格不再是用來布局苟蹈。
其他需要注意的事項(xiàng)
- 盡可能少的使用無語義的標(biāo)簽div和span;
- 在語義不明顯時(shí)右核,既可以使用div或者p時(shí)慧脱,盡量用p, 因?yàn)閜在默認(rèn)情況下有上下間距,對(duì)兼容特殊終端有利贺喝;
- 不要使用純樣式標(biāo)簽菱鸥,如:b宗兼、font、u等氮采,改用css設(shè)置殷绍。
- 需要強(qiáng)調(diào)的文本,可以包含在strong或者em標(biāo)簽中(瀏覽器預(yù)設(shè)樣式鹊漠,能用CSS指定就不用他們)篡帕,strong默認(rèn)樣式是加粗(不要用b),em是斜體(不用i)贸呢;
使用表格時(shí)镰烧,標(biāo)題要用caption,表頭用thead楞陷,主體部分用tbody包圍怔鳖,尾部用tfoot包圍。表頭和一般單元格要區(qū)分開固蛾,表頭用th结执,單元格用td; - 表單域要用fieldset標(biāo)簽包起來艾凯,并用legend標(biāo)簽說明表單的用途献幔;
- 每個(gè)input標(biāo)簽對(duì)應(yīng)的說明文本都需要使用label標(biāo)簽,并且通過為input設(shè)置id屬性趾诗,在lable標(biāo)簽中設(shè)置for=someld來讓說明文本和相對(duì)應(yīng)的input關(guān)聯(lián)起來蜡感。
3.內(nèi)容與樣式分離的原則
一個(gè)網(wǎng)頁分為三個(gè)部分:HTML——結(jié)構(gòu),css——表現(xiàn)恃泪,javascrip——行為郑兴。內(nèi)容也就是html,樣式也就是css贝乎。所以內(nèi)容和樣式的分離情连,就是指在網(wǎng)頁編碼的過程中,要將html和css兩大部分分開览效。
優(yōu)點(diǎn):
- 瀏覽器加載網(wǎng)頁頁面速度變快却舀。分離原則下,大部分頁面代碼寫在了CSS當(dāng)中锤灿,頁面體積容量變得更小挽拔。
- 網(wǎng)頁修改設(shè)計(jì)時(shí),效率衡招、省時(shí)篱昔。根據(jù)html標(biāo)簽內(nèi)ID或class的標(biāo)記,到CSS里找到相應(yīng)的ID或class始腾,可以快速替換指定位置的樣式州刽,不會(huì)破壞頁面架構(gòu)和其他部分的樣式。
- 典型的應(yīng)用就是網(wǎng)頁換膚浪箭,使用相同的 html 結(jié)構(gòu)穗椅,不同的 css 樣式。
更好地被搜索引擎收錄奶栖∑ケ恚基于內(nèi)容與樣式分離的原則,html的語義化就是首要考慮的,網(wǎng)頁中語義化的標(biāo)簽代碼就會(huì)更加適合搜索引擎宣鄙。 - css樣式的分離袍镀,它可以根據(jù)不同的瀏覽器,達(dá)到顯示效果的統(tǒng)一冻晤。保證網(wǎng)頁架構(gòu)不變形的前提下苇羡,放心在不同瀏覽器渲染顯示樣式。
實(shí)現(xiàn)方式:
正確做法是寫HTML的時(shí)候先不管樣式鼻弧,重點(diǎn)放在HTML的結(jié)構(gòu)和語義化上设江,讓HTML能提現(xiàn)頁面結(jié)構(gòu)或者內(nèi)容,,然后進(jìn)行 css 樣式設(shè)置攘轩,減少 HTML 與 CSS 契合度(即內(nèi)容與樣式分離) 叉存,寫JS的時(shí)候,盡量不要用JS去直接操作樣式度帮,而是通過給元素添加刪除class來控制樣式變化(即行為分離)