為什么有一個單獨的模板?
在OOCSS中,一個重要的目標是所有的頁面創(chuàng)建自一個模板。這簡化了CMS開發(fā),因為有一個單獨的起始點所有頁面可以制作為其他的頁面。CMS的用戶不會落入已創(chuàng)建的頁面不能變種為不同的頁面類型的陷阱。OO模板的另一個目標是每一個section(列,header等)控制自己。實際上,這意味著如果要在模板上增加一個左列,只需在HTML中增加此列。你從來不想這樣寫CSS吧,為了使子元素滿足表現(xiàn)而DOM樹需要很多改變。對CMS開發(fā)來說DOM循環(huán)相當?shù)陌嘿F。
這有語義嗎?我要終止像 .formYellow 或 tinyBlueH2 的class命名嗎?
OOCSS可以寫得有語義也可無語義,取決于你創(chuàng)建模塊時用 errorMod 而非 bigRedModule。我選擇class名優(yōu)一些原則(排名不分先后):
- 短 - 每一字節(jié)計算起來,所以盡可能保持class短
- 清晰 - 可預(yù)料的行為/樣式要顯而易見
- 語義化 - 對象是什么高過看起來像什么。如何用在站點中?
- 通用 - 名稱應(yīng)該適用于多數(shù)站點。過于特殊的名稱減少了適用場合或?qū)е抡Z義化的class以非語義化的方式使用
- 屏幕 - 移動閱讀器或打印樣式或許有不同的視圖,會重寫默認的屏幕視圖,所以當有沖突時class為屏幕而特殊定義(Different views might be provided by mobile or print stylesheets, however they override the default screen view, so the classes chosen are screen specific when there was a conflict)。這簡化了開發(fā)。
其它的框架如何?這只能同YUI一起使用嗎?
在大量框架的生態(tài)系統(tǒng)中,YUI是專業(yè)性及可擴展性的一例。我同他們進行了對比,因為我不斷受到他們代碼和文檔的影響。OOCSS不是一個真正意義上的框架,盡管我創(chuàng)建了很多例子,而是一種書寫可擴展,健壯,可維護性強的CSS的一種方式。也許最好的比喻是一個新的語言。最終,它是未知的JavaScript庫(it is JavaScript library agnostic),我希望貢獻代碼回YUI及其他框架。
CSS框架太超過!我需要從頭開始編寫所有代碼嗎?
每需要一個隨機數(shù)字都要寫一個數(shù)字class嗎?
CSS is hard, not because it is broken , but because it is a legitimate technology requiring expertise to architect correctly. 為每個站點重復(fù)發(fā)明輪子非常的愚蠢。
源文件中右列在主列之前,會影響可訪問性,SEO嗎?
我早期工作過的站點有更標準的模板結(jié)構(gòu),body上有一個極好的class,依靠這個模板顯示或隱藏左右列。自定義CMS的用戶要創(chuàng)建一個3列布局的頁面時非常沮喪,發(fā)現(xiàn)需要兩列,找到它們不得不一個個從頭開始,因為有多個模板/起始點。你或許注意到主列是個流體列,在左右兩列渲染后自適應(yīng)剩余的空間。
我更喜歡標簽排序勝過視覺排序(因為如果標簽順序改變會變得非常怪異),但是我也只想要一個模板。在web開發(fā)中經(jīng)常遇到的是,兩個重要的目標發(fā)生了沖突,我做判斷如何解決。這種情況下標簽排序滿足視覺順序除了右列。在當前的代碼中,只需在HTML增加一個左或右列,沒有別處昂貴的DOM變化。
屏幕閱讀器用戶有兩個選擇:
- 跳過鏈接
- 導(dǎo)航鏈接經(jīng)常為一個鏈接列表或嵌套的鏈接列表形式。這非常有趣,因為這允許屏幕閱讀者通過屏幕閱讀器的特殊操作設(shè)置跳過整個列表。
我的意見是對于跳過菜單這兩種方式足夠了。
每個人似乎都有一個回復(fù)觀點:SEO,它們都不同,甚至相反。:)基于這個思潮,我傾向于:尤其對含有一定合理數(shù)量鏈接的導(dǎo)航菜單,不用太過在意。曾幾何時,我看到過導(dǎo)航鏈接被索引在搜索結(jié)果的內(nèi)容部分,不過是在幾年前了。搜索爬蟲非常智能,我已經(jīng)準備好想當然的認為如果我以語義化,干凈的方式標記內(nèi)容,并非填充一坨垃圾鏈接,爬蟲能區(qū)分的出來。
把導(dǎo)航菜單標記為列表,允許屏幕閱讀器用戶跳過,并提供“跳至內(nèi)容”鏈接,對可訪問性提供了雙倍的備用措施。
出處:99css
責任編輯:bluehearts
上一頁 面向?qū)ο驝SS FAQ [3] 下一頁 面向?qū)ο驝SS FAQ [5]
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|