国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

CSS 面向對象CSS FAQ

2024-07-11 08:45:39
字體:
來源:轉載
供稿:網友

原文:http://wiki.github.com/stubbornella/oocss/faq(翻譯時為Version 28)
翻譯:ytzong

在OOCSS中怎么定義“對象”?

對象類似JAVA中的類,保持著OO的特征。

一個CSS對象由4部分組成:

  1. 可能是一個或多個DOM節點的HTML
  2. 由wrapper節點的class名開始的CSS樣式聲明
  3. 類似于背景圖片和顯示用的sprites組件以及
  4. JavaScript行為,監聽或者與對象關聯的方法

這可能令人費解,因為每個CSS class不是其自身必要的對象,但可以是一個wrapper class的一個部件。比如:

<div class="mod">
        <div class="inner">
                <div class="hd">Block Head</div>
                <div class="bd">Block Body</div>
                <div class="ft">Block Foot</div>
        </div>
</div>

對象是一個class為mod的模塊。包括4個部件節點(不能獨立于模塊外,包括2個區塊,inner和body,和兩個可選擇的區塊,head和foot)

OOCSS如何提升性能?

OOCSS具有雙倍的性能優勢:

  1. 高度重用的CSS代碼,只需要很少的CSS代碼,意味著:
    • 更小的文件,從而更快的傳輸
    • CSS代碼在站點頁面中調用的比重增大則有希望被復用或被瀏覽器緩存
  2. 就瀏覽器而言更少的重繪和布局計算
    • 單個頁面,CSS規則復用的越多,渲染引擎花在“computed values”的計算時間越少
    • 手動增加的"extending"類,重寫更少的規則,這再一次意味著引擎做很少去應用規則

要用ID來對內容寫樣式嗎?

當你在同一頁面(或者同一站點同時緩存良好)復用一個對象時,這是性能的“免費贈品”。用ID來寫樣式在同一頁面中只能使用一次。@cgriego (twitter) 拿它與singletons比較過,我認為非常精確。可能有些情況下你要用ID定義樣式,比如非常特殊的 header menus,此時你可以在用ID來沙箱(譯注:動名詞)特殊元素并確保此處的代碼不會影響站點的其它地方。選擇ID而非class前要三思,隨著站點的發展,真的很難預料其他人會怎么處理依據你的CSS所構建的HTML。如有選擇的余地,盡可能的考慮擴展性。

我正在考慮移除模板head, body, foot中的ID。某些人或許有多個主區域。站點的多個header 和 footer更難以猜測,但我敢打賭肯定有設計師會這樣想,所以ID很可能會消失(不太順,看原文:Someone could have multiple main content areas. Multiple site headers and footers are more difficult to imagine, but I bet there is a designer who can dream up something like that, so the IDs are very likely to disappear.)。

另一方面,ID hooks are great for linking。放在HTML中,不過別用它們來寫樣式。

設計師可以寫OOCSS嗎?

是的,設計師出于本能理解對象,比多數人當前書寫CSS的方式要形象 — layers of exceptions (想一下,一個老太太吞了一只蒼蠅)。事實上,他們愛上OOCSS的原因有兩個:

  1. 這使他們能快速創建復雜高點擊量的站點。他們不需糾結于不理解的結構除非有足夠的能力并充足的了解語法
  2. 學CSS時,他們不需創建丑陋的 “hello world!” 站點。設計師在非常在意的是他們的工作看起來很漂亮。如果必需做一些丑陋的東東,即便是學習之由,他們很快就會有挫敗感并灰常的郁悶。OO-CSS 使得他們的工作在每個學習階段都看起來很漂亮

設計師是聰明D。我們要給他們信任。他們會講一種不同的,非工程師的語言,但是極客的語言經常以一種丑陋的方式來拒絕人。我們能做的更好。

我是個前端架構師,如何向團隊傳授OOCSS?

作為架構師,你應該寫結構對象;圓角如何創建,為角或其他特性放置表象元素,并處理瀏覽器差異。新手為這些模塊寫皮膚(borders, colors, background images, 等等)。

我用OO-CSS方式創建了大批站點(千級的頁面,百萬級的訪問者)。正確的完成后,很好擴展,這意味著新手將處理的個別元件可預見性很強。代碼審閱很容易,因為有可接受的方法明確的規則來擴展對象。這種回饋使新開發者快速生產。

我在FullSIX(一個法國的網絡營銷機構)管理一個前端開發團隊,是我工作過的最有才能的。某些時候我們的成功意味著我們將會有更多難以把控的工作。雇傭前端專家非常困難(沒有這種學校!),所以我開始 對一些對寫代碼有興趣的設計師(很少或沒有經驗)推行一個內部實習項目 ,一個月就可以作為團隊的初級成員工作。

  • 第一周:學習語義并根據現有的CSS創建HTML。學習創建網頁:不需要更多的CSS,HTML語法,多個class,驗證,語義,介紹代碼審閱等
  • 第二周:創建簡單的內容對象(標題,列表等),持續一周。學習CSS語法,怎么擴展對象,顏色,字體百分比,等等
  • 第三周:創建區塊的皮膚。邊框,顏色,背景圖片,基本的布局,sprites。讓他們同一個回答過n個問題的資深開發者一起工作,使他們少走彎路,他也應是很好的代碼審閱者。
  • 第四周:他們已經是團隊的皮膚制作成員了。

他們的代碼在一個客戶的網站上,同資深開發者寫的一樣好,或許更好因為他們還未學到一些壞習慣:)

入門:如何使用這些文件?

3個文件,libraries.css (reset 及 fonts 取自 yui), grids.css 及 template.css 已完成,其它的還非常不穩定。

  1. 打開template.html并存為新文件
  2. 通過擴展相應的對象來改寫列的數量及寬度。站點中只需一個模板,即使你有不同列的頁面,因為列也是對象。可以把它們當作任意的區域,可能會有0 ~ n 個左列。查閱模板文檔可了解更多
  3. 用柵格來分割內容區域為小的區塊。查閱柵格文檔了解更多
  4. 添加內容。提示:這也應OO

如何部署在站點上?

注意CSS文件在不斷改進中,我會依據接到的反饋進行改變。

我把CSS文件分為了模塊,比如柵格和模板。在使用時移除不必要的注釋并減少HTTP請求,否則站點會超級慢。這意味著要合并CSS文件為一個稍大的文件。我通過嵌套的注釋來組織CSS。最后,作為上線/部署的一部分,用CSS壓縮器來移除注釋.

上一頁12 下一頁 閱讀全文
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇左市| 青龙| 宁波市| 锡林浩特市| 兴仁县| 兴海县| 鄱阳县| 南安市| 台江县| 漾濞| 富平县| 紫金县| 叙永县| 连云港市| 京山县| 大余县| 绥江县| 军事| 菏泽市| 南通市| 桃园市| 长沙县| 离岛区| 永胜县| 东港市| 临邑县| 嘉禾县| 辰溪县| 库伦旗| 长宁县| 隆尧县| 乌海市| 赣州市| 舞阳县| 静安区| 土默特左旗| 禹城市| 广元市| 宣威市| 阜新| 大悟县|