- 還是
- ?這是一個博弈的問題。至今這個問題也沒有人能夠給出明確的答案,就連我也是如此。誠然,
- 元素的時候,這個div就顯得有些冗餘,但有時候為了配合美工絢麗的設計,多一層標籤就意味著多一層變化(有些人在a標籤裡套span也是如此)。而div不帶任何原始屬性的先天優勢也是其它標籤所無法比擬的。這個命題我只是想說明一件事,就是我們應該意識到,
- 之外,還有
- 這種寫法,同樣具有良好的結構和語義,並且省去了一層嵌套。在我們不需要為華麗的美工勞心勞神的時候,是不是也可以讓結構更簡約呢?
這個命題其實還可以引申為——“並不是所有內容都需要塊元素做容器”、“並不是所有鏈接都需要其它元素做容器”,例如很多頁面都有的“更多”。有些人寫做“
或。在這些「容器」只包含了一個標籤的時候,它們是否還有存在的必要?直接寫成會破壞結構嗎?會缺乏語意嗎?會影響佈局嗎?換個思路,你也許就會有不一樣的收穫。
4.工作上也做到“結構與表現分離”
關於這一點,網路上很多高手都是這樣建議的,也就是先打開編輯器,把結構完整地寫出來,再去CSS裡寫表現,而盡量不去動已經寫好的結構。
然而以看書為主要學習方式的人卻很難體會,因為關於標準的書籍多半是手把手來教的,也就是必然是結構表現結合,循序漸進。雖然有些書籍有這方面的建議,但短短的幾句話遠不如讀書過程中的潛移默化。在製作人員能夠對結構良好掌握的時候,同時寫結構與表現也不會對結果有太大的影響。但以我的經驗,結構表現分離的工作方式,要比同時寫結構與表現效率高很多,同時也不容易遺漏頁面上的元素。
當然,所謂的「結構與表現分離」並不是完全不考慮表現,想要兼顧到表現,就要保證──在不破壞結構的前提下,CSS選擇者能夠選擇到盡量多的內容。在哪些地方加class,或是用哪些標籤來區分,是個見仁見智的地方,相信每個人都有自己的體會。而結合不同的設計稿,有時也需要做出相對應的變化,然而這些變化都應該有一個同樣的前提──不破壞程式碼的結構和可讀性。
再就是,一定要意識到,任何視覺化的工具都是魔鬼。它們視覺化介面下所呈現的效果,往往與真實瀏覽器相差千里,而我們真正要相容的是瀏覽器,不是編輯器的視覺化介面。
5.CSS不是萬能的,沒有CSS也不是萬萬不能的
相較於CSS1.0時代,今天CSS可以完成更多的事情,然而需求永遠是領先於技術的,CSS無法完成網頁所有的表現層工作,有時候我們必須結合JS或其他語言來實現一些效果。而有些時候,用JS的方法比只靠CSS簡單得多,而且程式碼結構更加良好——最典型的例子就是下拉式選單。這些時候,我們要說服自己,或是說服老闆與客戶,採取更簡單、更合理的方式。因為DOM同樣是網頁標準的重要組成,並不是使用了JS我們的網頁就降低了效率或是不再標準,恰恰相反,這是對JS最大的誤解。說到這裡不得不提一點,就是今天的時代,比以往更要求每個職業了解更多的相關知識,做設計的人要懂一點互動和製作,做製作的也必須了解設計和程序,尤其是JS這樣的前端技術,只有這樣,你和同事才能夠更好地合作,個人的發展前景也會更光明。
沒有CSS,指的是當我們的網站因為各種未知的原因導致CSS檔案載入失敗,不要因此而慌亂,這是考驗我們程式碼品質的最佳時機。在沒有CSS的時候,如果網頁仍舊保持良好的可讀性,這成果遠比透過W3C驗證更值得我們自豪。