層疊樣式表/偽元素和偽類
語法
使用 :: 符號(雙冒號符號)來表示偽元素(::first-line, ::first-letter, ::before, ::after 等),以區別於偽類(:active, :hover, :focus, :link, :visited, :first-child 等)。為了與 IE6/7 相容,對兩者都使用單冒號符號,或者使用 IE 特定的樣式。
偽點選
當不需要傳遞資料時,使用 :active 代替 onclick 事件,使用 :hover 代替 onmouseover 事件
使用與背景色相同的邊框色作為預設值,然後在懸停狀態下將其更改以建立懸停效果,而不會移動內容。將所需的填充值減少邊框的大小,以調整它始終隱藏在背景中,而不是動態插入和刪除。
使用 a:active, a:focus{outline:0;width:0;height:0;} 來移除點選連結周圍的虛線
使用 :link,:visited 來設定連結的樣式,而無需設定命名錨標記的樣式
在連結標籤中新增絕對定位的元素,並在懸停定義中引用它們(例如 A:hover span{...}),以建立無 JavaScript 的懸停下拉選單
對所有外部連結使用 rel="external",以及 a[rel~="external"] { target-new: tab; } (CSS3 屬性選擇器)在新的標籤頁中開啟連結
命中檢測
使用游標樣式、透明邊框和影像地圖來擴充套件連結的點選區域,以覆蓋其父元素的尺寸,而無需使用 JavaScript
如果容器具有佈局(固定寬度/高度,內聯塊,浮動),那麼其中的塊級錨將不會有正確的命中檢測,除非其中一個連結也包含一個佈局觸發器(縮放,內聯塊,固定高度)本身或子元素,或者包含一個影像作為子元素。塊級錨本身的佈局可能會導致邊距消失,因此在這種情況下避免使用垂直邊距
如果一個塊級連結被絕對定位在內容之上,它將不會有正確的命中檢測,除非它有一個定義的背景。可以使背景透明或使用不透明度使內容可見
使用 "ul > li{...}" 代替 "ul li{...}" 來只定位標籤的第一級子元素,而不是所有巢狀的後代(CSS2 子元素選擇器)
元素定位
使用 { target-name: modal; } (CSS3 屬性選擇器)在模態框中開啟連結
使用 "a[href=http://abcxyz]" 來定位具有特定屬性值的元素(CSS2 屬性選擇器)