HTML允乐、XML、XHTML 有什么區(qū)別
- HTML茫因,超文本標記語言蚪拦,是語法較為松散的、不嚴格的Web語言冻押;
比如大小寫不注意,標簽沒有閉合,等等,瀏覽器一定會展現(xiàn),不會出現(xiàn)報錯,無法運行的情況.
- XML驰贷,可擴展標記語言,主要用于存儲數(shù)據(jù)和結(jié)構(gòu).(參考)洛巢;
- XHTML括袒,可擴展超文本標記語言,基于XML狼渊,作用與HTML類似箱熬,但語法更嚴格.(參考)
可認為是更嚴格的HTML
怎樣理解語義化HTML
-
<em> HTML語義化是什么类垦?</em>
語義化是指根據(jù)內(nèi)容的結(jié)構(gòu)化(內(nèi)容語義化)狈邑,選擇合適的標簽(代碼語義化),便于開發(fā)者閱讀和寫出更優(yōu)雅的代碼的同時蚤认,讓瀏覽器的爬蟲和機器很好的解析米苹。
-
<em>為什么要語義化?</em>
- 有利于SEO砰琢,有助于爬蟲抓取更多的有效信息蘸嘶,爬蟲是依賴于標簽來確定上下文和各個關(guān)鍵字的權(quán)重良瞧。
- 語義化的HTML在沒有CSS的情況下也能- 呈現(xiàn)較好的內(nèi)容結(jié)構(gòu)與代碼結(jié)構(gòu)
- 方便其他設(shè)備的解析
- 便于團隊開發(fā)和維護
- 支持更多的設(shè)備
屏幕閱讀器(如果訪客有視障)會完全根據(jù)你的標記來“讀”你的網(wǎng)頁。 如果你使用的含語義的標記,屏幕閱讀器會根據(jù)你的標簽來判斷網(wǎng)頁的內(nèi)容训唱,而不是一個字母一個字母的拼寫出來褥蚯。
-
<em>怎樣語義化?</em>
- 語義化的HTML結(jié)構(gòu)首先要強調(diào)HTML結(jié)構(gòu)
HTML結(jié)構(gòu)是頁面的骨架,一個頁面就好像一幢房子况增,HTML結(jié)構(gòu)就是鋼筋混泥土的墻赞庶。CSS是裝飾材料,是原木地板澳骤,是大理石歧强,是油漆,是用來裝飾房子的为肮。合理的房屋結(jié)構(gòu)和賞心悅目的裝修搭配才是一個舒適的居住環(huán)境摊册。
或者HTML結(jié)構(gòu)對我們來說本身就是某種語言代碼邏輯,CSS就是需要展現(xiàn)的數(shù)據(jù)颊艳。我們可以通過設(shè)置不同的數(shù)據(jù)(CSS樣式)來得到不同的結(jié)果輸出(表現(xiàn))茅特。數(shù)據(jù)是靈活多變的,但業(yè)務(wù)邏輯棋枕,代碼本身結(jié)構(gòu)卻是固定通用的温治。
所以,擁有一個既清晰又干凈的HTML結(jié)構(gòu)是非常重要的戒悠。- 分清語義化標簽和默認樣式
HTML在頁面中的作用就是結(jié)構(gòu)和含義熬荆,通俗點說就是劃分內(nèi)容,這里放什么绸狐,我們放的是什么卤恳。HTML本身是沒有表現(xiàn)的,我們看到例如
<h1>
是粗體寒矿,字體大小2em突琳,加粗;<strong>
是加粗的符相, 不要誤會這是HTML的表現(xiàn)拆融,這些其實是HTML默認的CSS樣式在起作用“≈眨可以保證去掉或樣式丟失的時候也能讓頁面呈現(xiàn)清晰的結(jié)構(gòu)镜豹。
結(jié)構(gòu)(HTML)才是重點,樣式(CSS)是用來修飾結(jié)構(gòu)的蓝牲。
>所以要先確定HTML標簽趟脂,再來選用合適的CSS樣式。布局的標簽是通過HTML內(nèi)在的上下文語境來決定當前的語義化的結(jié)構(gòu)例衍,而不是通過外在的樣式表現(xiàn)來決定能襯托的標簽昔期。那些樣式只是瀏覽器默認的CSS樣式已卸。它們就只是開發(fā)商默認給新房刷的大白粉墻面一樣,不同的裝修公司設(shè)計的風格不同的硼一,也可能只是簡單刷白累澡,那我們剛好可以復(fù)用,也或者會再貼其它墻紙般贼,那我們也只好覆蓋它永乌。重點永遠在墻體。
樣式本身是沒有意義和內(nèi)容邏輯的具伍,維護CSS的代價要遠遠小于維護HTML結(jié)構(gòu)翅雏。
-
<em>一些語義化實用建議</em>
根據(jù)文檔上下文結(jié)構(gòu)合理的選用最適合表達當前語義的標簽;
盡可能少的使用無語義的標簽div和span人芽;
不要使用純樣式標簽望几,如:b、font萤厅、u等橄抹,一切表現(xiàn)改用css設(shè)置;
h標簽的使用應(yīng)該根據(jù)重要性逐級遞減惕味,沒有斷層楼誓。并且一個頁面只能有一個h1;
提高關(guān)鍵詞密度名挥,如圖片替換alt疟羹,鏈接說明title;
正確使用內(nèi)容容器禀倔,如段落p榄融,列表ul, ol, li, dl, dt, dd
需要強調(diào)的文本,可以包含在strong或者em標簽中(瀏覽器預(yù)設(shè)樣式救湖,能用CSS指定就不用他們)愧杯,strong默認樣式是加粗(不要用b),em是斜體(不用i)鞋既;
使用表格時力九,標題要用caption,表頭用thead邑闺,主體部分用tbody包圍跌前,尾部用tfoot包圍。表頭和一般單元格要區(qū)分開检吆,表頭用th舒萎,單元格用td;
表單域要用fieldset標簽包起來蹭沛,并用legend標簽說明表單的用途臂寝;
每個input標簽對應(yīng)的說明文本都需要使用label標簽,并且通過為input設(shè)置id屬性摊灭,在lable標簽中設(shè)置for=someld來讓說明文本和相對應(yīng)的input關(guān)聯(lián)起來咆贬。
相關(guān)鏈接
怎樣理解內(nèi)容與樣式分離的原則
網(wǎng)頁三部分:Html——結(jié)構(gòu),css——表現(xiàn)帚呼,javascrip——行為掏缎。內(nèi)容也就是html,樣式也就是css煤杀。所以內(nèi)容和樣式的分離眷蜈,就是指在網(wǎng)頁編碼的過程中,要將html和css兩大部分分開沈自。
寫 HTML 的時候先不管樣式, 重點放在HTML的結(jié)構(gòu)和語義化上酌儒,讓 HTML 能體現(xiàn)頁面結(jié)構(gòu)或者內(nèi)容。之后再去寫樣式枯途。
寫 JS 的時候忌怎,盡量不要用 JS 去直接操作樣式,而是通過給元素添加刪除class來控制樣式變化
HTML 內(nèi)不允許出現(xiàn)屬性樣式酪夷,盡量不要出現(xiàn)行內(nèi)樣式