前端開發者應該知道的 CSS 小技巧

cucr發表於2016-02-23

一些小技巧讓你的CSS技術更專業

  1. 使用:not()去除導航上不需要的邊框
  2. body新增行高
  3. 垂直居中任何元素
  4. 逗號分離的列表
  5. 使用負nth-child選擇元素
  6. 使用SVG圖示
  7. 文字顯示優化
  8. 在純CSS幻燈片上使用max-height
  9. 繼承box-sizing
  10. 表格單元格等寬
  11. 使用Flexbox擺脫邊界Hack
  12. 使用屬性選擇器選擇空連結

使用:not()新增/去除導航上不需要的邊框

新增邊框…

…然後去除最後一個元素的邊框…

…使用偽類 :not() 將樣式只應用到你需要的元素上:

當然,你可以使用.nav li + li 或者 .nav li:first-child ~ li, 但是使用 :not() 的意圖特別清晰,CSS選擇器按照人類描述它的方式定義邊框。

body新增行高

你不需要分別為每一個 <p>, <h*> 等元素新增行高,而是為body新增:

這種方式下,文字元素可以很容易從body繼承。

垂直居中任何元素

不,這不是黑魔法,你的確可以垂直居中任何元素:

想讓其他元素居中?垂直,水平…任何東西,任何時間,任何位置?CSS-Tricks上有 一個不錯的文章 來做到這一切。

注意:IE11上flexbox的一些 缺陷行為

逗號分離的列表

讓列表看起來更像一個真正的逗號分離列表:

使用偽類:not() ,這樣最後一個元素不會被新增逗號。

使用負 nth-child 選擇元素

在CSS使用負nth-child選擇1到n的元素。

或者,你已經學習了一些關於 使用 :not(),嘗試:

這很簡單。

使用SVG圖示

沒有理由不使用SVG圖示:

SVG對所有解析度型別具有良好的伸縮性,IE9以上的所有瀏覽器都支援。所以放棄.png,.jpg或gif-jif等任何檔案。

注意:如果你使用SVG圖示按鈕,同時SVG載入失敗,下面能幫助你保持可訪問性:

文字顯示優化

有些字型在所有的裝置上並不是最優顯示,因此讓裝置瀏覽器來幫忙:

注意:請使用optimizeLegibility。同時,IE/Edge不支援text-rendering

在純CSS實現的內容滑塊上使用max-height

在純CSS實現的內容滑塊上使用max-height,同時設定overflow hidden:

繼承box-sizing

html繼承box-sizing

這讓外掛或使用其他行為的元件能很容易地改變box-sizing

表格單元格等寬

使用表格會很痛苦,因此使用table-layout:fixed來保持單元格相同的寬度:

無痛表格佈局。

使用Flexbox擺脫邊界Hack

當使用列約束時,可以拋棄nth-first-last-child的hacks,而使用flexbox的space-between屬性:

現在列約束總是等間隔出現。

使用屬性選擇器選擇空連結

顯示沒有文字值但是 href 屬性具有連結的 a 元素的連結:

這樣做很方便。

瀏覽器支援

這些技巧在當前版本的Chrome,Firefox, Safari, 以及Edge, 和IE11可以工作。

相關文章