web標(biāo)準(zhǔn)主要強(qiáng)調(diào)的是一個(gè)網(wǎng)站的結(jié)構(gòu),樣式,行為。這三者在網(wǎng)站進(jìn)行編寫的時(shí)候應(yīng)該盡量做的分離,從而達(dá)到結(jié)構(gòu)清晰,易于閱讀,易于維護(hù)的目的。那么我們又該如何進(jìn)行分離呢?
其實(shí)答案就是按結(jié)構(gòu),樣式,行為來分,哈哈。而更具體的說就是將所有html代碼放在html文件中,將css代碼放在css文件中,將js代碼放在js文件中。接下來,進(jìn)一步闡明三門語言各自的職責(zé)。
HTML:HTML作為整個(gè)頁面的骨架。負(fù)責(zé)的對整個(gè)頁面內(nèi)容的進(jìn)行合理的組織,同時(shí)通過語義化的標(biāo)記使得頁面的內(nèi)容易于讀者閱讀,利于SEO。應(yīng)該做到的點(diǎn):
1.結(jié)構(gòu)良好:良好的結(jié)構(gòu)將有利于頁面的拓展,且會(huì)影響到后續(xù)CSS,JS代碼的質(zhì)量,推薦篇文章
2.做到標(biāo)簽的語義化:例如如果是標(biāo)題那么請記得用h1-h6,如果是語氣的加強(qiáng)請使用strong.我覺得這方面有個(gè)很好的入口點(diǎn)就是設(shè)想你的頁面是為“盲人閱讀者而寫”的。而盲人是無法看到樣式的加粗來得知該內(nèi)容的強(qiáng)調(diào)的內(nèi)容。其對該內(nèi)容為強(qiáng)調(diào)是通過閱讀機(jī)來語氣的加強(qiáng)來得知的。而閱讀機(jī)則是想搜索引擎一樣是通過標(biāo)簽的語義來進(jìn)行判斷的
3.標(biāo)簽字母要小寫
4.標(biāo)簽要閉合
5.標(biāo)簽不允許隨意嵌套CSS:CSS主要是負(fù)責(zé)頁面的樣式,使得頁面的不至太過于單調(diào)乏味,也是頁面的的內(nèi)容布局更為優(yōu)美,給訪問者以美感。
JS:javascript使得頁面具有具有動(dòng)態(tài)性,交互性。想想各種鼠標(biāo)hover時(shí)的想過,輪播圖??芍猨s使得頁面更加的豐富多彩。另一方面,js也是得一些例如表單檢驗(yàn)的工作可以提前在客戶端完成,進(jìn)一步提升了用戶體驗(yàn)。
最后,想強(qiáng)調(diào)一下我在《DOM編程藝術(shù)》中g(shù)et到的一個(gè)思想,"平穩(wěn)退化,漸進(jìn)增強(qiáng)"。具體的闡釋是這樣的:
1.漸進(jìn)增強(qiáng):先實(shí)現(xiàn)最基本的頁面功能,然后在此基礎(chǔ)上進(jìn)行優(yōu)化,使得頁面的行為更加的豐富,進(jìn)而提高用戶體驗(yàn)。
2.平穩(wěn)退化:通常我們都會(huì)通過js來實(shí)現(xiàn)某種效果,從而達(dá)到提高用戶體驗(yàn)的目的。但試想如果用戶瀏覽器禁用了js,頁面的最基本用能是否還能使用?如表單的填寫,內(nèi)容的展示。
其中有一個(gè)例子至今印象深刻,對于注冊登錄時(shí)。通常我們都是提供一個(gè)登錄或注冊按鈕。然后檢測按鈕的click事件,并將form表單設(shè)置為display:none;用戶的瀏覽器無法使用js想想是否該網(wǎng)站的登錄,注冊功能便變得無法使用了。而作者提供的解決方法是用a作為按鈕。設(shè)為<a href="login.html">登錄</a>,而在js中通過hack登陸按鈕的click事件來達(dá)到能用js時(shí),點(diǎn)擊登陸按鈕彈出登陸框的效果(當(dāng)然在click事件發(fā)生時(shí)會(huì)通過阻止默認(rèn)事件使得頁面不跳轉(zhuǎn)),而當(dāng)js不能使用時(shí),也能通過跳轉(zhuǎn)單獨(dú)的登錄頁面進(jìn)行登錄功能的使用。書感覺還是挺好的,尤其是里面的思想,建議有空找來閱讀閱讀。