編寫高質量的CSS

2021-09-18 04:06:38 字數 1714 閱讀 9829

我們應用css的能力應該分成兩部分:一部分是css的api,重點是如何用css控制頁面內元素的樣式;另一部分是css框架,重點是如何對css進行組織。

base層:reset功能+通用類

common層:元件級別的css類

page層:頁面級別css樣式

舉個例子,有兩個列表,列表條目1字型14px紅色,列表條目2字型16px綠色:

方案一:

然後分別為number-list1與number-list2設定樣式

方案二 :

然後,將樣式分解為顆粒度小的class內,利用類組合達到效果。這就是多用組合少用繼承的思想。

模組化寫類的樣式時,常常需要寫margin樣式。這個時候不建議給某個div同時設定margin-top, margin-bottom值。因為可能會帶來上下margin重合的問題。

複習一下css權重問題:

css的選擇符是有權重的:id選擇器的權重是100、class選擇器的權重是10、標籤選擇器的權重是1;

我們在設定樣式時,適當使用子選擇器,可以增加css的權重。例如:span .font{} 的樣式會覆蓋.font{}的樣式。但css選擇符的權重越高,樣式越不容易覆蓋。為了保證樣式容易被覆蓋,提高可維護性,css選擇符需保證權重盡可能低。

將**的多張背景圖合併到一張大圖上,這便是css sprite.

css sprite出發點已經不僅是「解決滑過狀態時背景出現空白」的問題了,通過將多張合併成一張大圖,會大大減少網頁的http請求數,減小伺服器壓力。這對於流量比較大的**很有價值。

這裡擴充套件乙個問題: 我們在寫頁面時,對於,是使用img標籤好呢?還是使用background-img屬性好呢?

以下對二者進行乙個對比總結:

本質區別:img標籤是html標籤,background-img是css的乙個樣式;

載入方面:img標籤是html結構的一部分,img 會在載入結構時進行載入,而background-img會在結構和內容載入完成後才開始載入;

seo方面:搜尋引擎會關注img標籤的alt屬性;這時如果使用了background-img則頁面可讀性比較差;另外,有些**需要在禁用css情況下執行,此時比較重要的例如logo,就需要使用img標籤而不是background-img.

在多數場景下,二者都能完成工作。比如hover切換,可以改變img的src屬性,也可以改變background-img的url; 比如改變的位置,可以改變img元素的位置,也可以改變background-img的postion;

css sprite將多張合併為一張,通過控制background-position進行定位,這對於的位置精確程度要求非常高。定位完成後,大圖中的每個小圖的座標值不可輕易改動,這在一定程度上降低了可維護性。

因此,如何排列能夠盡量緊湊,同時保證不會影響擴充套件性,是css sprite技術最困難也是最具挑戰性的地方。

以上,從分層組織css,模組化css,使用時注意低權重原則,以及巧用css雪碧圖闡述了提高css**質量的四個方面。更多方法還需在實踐中積累。

[1].編寫高質量**-web前端開發修煉之道 -- 曹劉陽.

高質量CSS編寫規範

id和class的命名在保持語義性的同時盡可能的短.可以縮寫單詞,但縮寫後務必能讓人明白其含義。比如author縮寫成atr就非常費解。屬性書寫順序,首先定義顯示屬性 推薦的寫法 selector 不推薦的寫法 selector 這樣,就可以從css 規則中靠前的定義獲得顯示版式。框架為先,細節次之...

java 編寫高質量的equals

1,使用 操作符檢查 引數是否為這個物件的引用 是則返回true 2,使用instanceof 操作符檢查 引數是否為正確的型別 如果不是返回false 3,把引數轉換為正確的型別 4,對於該類中的每個 關鍵 域,檢查引數中的域是否與物件中對應的域相匹配 5,當你編寫完成了equals方法後,應該問...

Java編寫高質量的方法

工作中我們經常編寫大量方法來實現我們的需求,如寫一些公用方法處理相同業務。雖然我們每天都要寫很多方法,不過很多人並不知道如何編寫高質量的方法,寫的方法也是亂成一團,本次參考 大全 中高質量的子程式一章,介紹下如何編寫高質量的方法,讓我們的 看起來更優秀。一.我們為什麼要編寫方法 1.避免 重複。試想...