注: 此文章會講多關(guān)于CSS跟HTML的前端。
很久很久以前,在工業(yè)革命時代,差不多1700~1800年,人類發(fā)明了許多商業(yè)量產(chǎn)的新技術(shù),雖然傳統(tǒng)手工的工匠們還是得以保持工作,卻不肯邁進學(xué)習(xí),覺得機器這些東西是無法取代他們的工作。
但差不多在十九世紀(jì)因為時代的改變,需求量越來越多,不得不以這個可以量產(chǎn)更多,更快的機器來取代工匠們的工作。后來這些老工匠們看到機器是如何代替他們的工作,而發(fā)現(xiàn)自己的技術(shù)已經(jīng)被淘汰已久。
在很久以前,當(dāng)網(wǎng)路還是以table作為架構(gòu), 類似這種 < font color = "red"> foo < /font >
被設(shè)計網(wǎng)頁廣泛的使用。
那時我才剛開始接觸網(wǎng)頁設(shè)計,約2008年開始,那時table的架構(gòu)已經(jīng)開始的慢慢的被css取代, 常上的smashing magazine, web designer ledger, speckboy magazine, nettuts等這些部落格已經(jīng)很直接的植入css為下一代的網(wǎng)頁基本。每個閱讀的文章,都是在講關(guān)于semantic,干凈的HTML。
那時候要修改wordpress, blogspot, 都是下載一個theme structure, 然后透過css去修改, 想當(dāng)初我還覺得網(wǎng)頁設(shè)計怎可以如此困難。
以前的網(wǎng)頁只是很小眾,還記得十多年前,網(wǎng)頁可能就只有一頁,而且只是用來放放自己每天的生活日記,把自己喜歡的音樂放上去,而且還是midi的。
現(xiàn)在的網(wǎng)頁的scope卻很大, 從數(shù)十頁至百頁,且還可以每年賺十幾億的商機。
從table轉(zhuǎn)至css是網(wǎng)頁技術(shù)的小改變,卻沒想到這改變了下一代網(wǎng)頁的趨勢。
現(xiàn)在的網(wǎng)頁越來越大,跟以前的相比之下,已經(jīng)越來越復(fù)雜,也越來越重要,當(dāng)然,也可以賺更多的錢。
當(dāng)網(wǎng)站的需求越來越大,開發(fā)團隊也相對的會越來越多,現(xiàn)在比較重要的可能已經(jīng)不再是hand-code, semantic, 以及干凈的網(wǎng)頁。
反而是能夠快速開發(fā),更強大的技術(shù)是比較需要的。沒錯-我們又得追上這個“改變”了。
當(dāng)然,那些十年前的網(wǎng)頁最佳技術(shù)等到現(xiàn)在也還是可以使用,我們無法否認,只是目前網(wǎng)頁的改變比我們想像中的還要快。我們現(xiàn)在的網(wǎng)頁可能都要做出可以每天提供上萬人的服務(wù),并制造出上百萬的業(yè)績。
我們應(yīng)該以不一樣的態(tài)度去看待這件事情。
我們可以把網(wǎng)頁分給三個利害關(guān)系的組群:
1. 客戶 – 付錢給我們制作網(wǎng)頁。
2. 使用者 – 將會使用我們網(wǎng)頁的人。
3. 開發(fā)者 – 維護及開發(fā)網(wǎng)頁。
一定要切記這三個組群,確保我們?yōu)檫@些組群做正確的選擇。
客戶是絕對不會管網(wǎng)頁到底是否semantic, 客戶也絕對不會去管你的id或class總共有多少。他們也不需要了解到是否能夠重復(fù)的使用id或class,這不是他們應(yīng)該煩惱的問題,這應(yīng)該是我們開發(fā)者應(yīng)該幫他們解決的問題。
客戶想要了解的只是網(wǎng)頁的效率跟速度可以有多快多高。以最便宜及有效率的更新他們的網(wǎng)站。
使用者也不會管你的code,就算你是使用table,其實也不會有人知道的。不過使用者是比較在乎網(wǎng)頁速度跟穩(wěn)定性,試想一下,網(wǎng)頁如果慢的話,又導(dǎo)致瀏覽器當(dāng)?shù)舻脑挘墙^對不是我們想要的。
開發(fā)者,也就是我們。會很在意我們的code文件有多整齊,有多方便合作,多方便維護,多方便擴張,多方便修改。
如果新增兩個div會使我們方便維護,何樂而不為呢?
我們要為自己寫code,同時要寫的夠清楚給團隊,寫的有夠穩(wěn)定給客戶,寫得效能夠好給使用者。
Semantic在前端是要考慮是否使用div或header, 有些字是否為h或p, 使用ul或ol. 關(guān)系在于文件的內(nèi)容,而不是管我們寫的class或id的關(guān)聯(lián)性,或更加以直接的方式: < div class = "heading-one" >My page title< /div >
跟 < h1 class = "red" >My page title< /h1 >
第一個是不良的示范,所有的標(biāo)題應(yīng)該是以h去寫mark up,而不是div. 就算class的關(guān)聯(lián)性有多好,不過文件上這是對于網(wǎng)頁沒有好處的寫法。
第二個是正確的示范,文件上就會很清楚的了解這個標(biāo)題是很重要的,就算使用red的class,沒有css他還是無法了解此內(nèi)容的重要性。
實際上瀏覽器不會去閱讀你的css, 而是閱讀html文件, 再透過文件去搭配你css寫好的class。所以你css class寫的太好也沒用,因為html根本就看不懂你的red是否重要,凡而是你的h1會告訴他說他是重要的標(biāo)題。
很多人對于semantic的誤解,其實是命名的相關(guān)性,每當(dāng)我們寫class的名字的時候,其實是件很令人懊惱的東西,建議是要考慮以后的維護性,以后這個class修改后會多久再次更新。
最直接的sample是:< strong class = "red" >$99.9< /strong>
.red {
color: red;
}
如果這時候客戶希望我們將更改顏色,那么,我們是否要這樣:< strong class = "red" >$99.9< /strong>
.red {
color: blue;
}
不過最好的建議,當(dāng)然是這樣:< strong class = "special-offer" >$99.9< /strong>
.special-offer {
color: red;
}
這樣的話是否更好呢?
寫class的話, 是不需要semantic的,而是察覺性 (sensibility)。
我想講個其實是,時代正在慢慢的改變,雖然要跟上改變的速度是難的,要重新學(xué)習(xí)也不是件容易的事,不過這是事實,技術(shù)越來越成熟,自然而然有更好的東西一直出來。
以前只有單純的css, 現(xiàn)在有sass, 有l(wèi)ess, 有stylus.
以前只有html, 現(xiàn)在有haml.
以前只有javascript, 現(xiàn)在有jquery, 有coffeescript.
以前可能寫一寫就上線了, 現(xiàn)在還要調(diào)整網(wǎng)頁速度, 優(yōu)化, seo, 維護, 等等等等~
網(wǎng)頁不論是技術(shù)或設(shè)計,商業(yè)模式,都正在改變。
但是,你跟上了嗎?