CSS secrets 讀書筆記(1)

2021-07-22 16:14:35 字數 4734 閱讀 8318

開頭先寫點別的,今天終於離開了生活了一年的國家。 心裡有點對未來的期待,終於不是個學生了。 出國一年, 獲得的收穫可能就是終於想通了以後想幹什麼吧, 人總要有一項技術傍身,進可成名立萬,退可養家餬口。 今天登機前終於有一家投了簡歷的公司聯絡我了,也算乙個好訊息。前幾天發現了一本寫css很好的書,叫做css-secrets。 可惜的是網上並沒有中文版,只用英文本。不過語句比較易懂。 寫下筆記,以供查閱。

-赫爾辛基飛往北京

-gl r.t

1.最小化**重複度

當需要修改乙個屬性的時候,盡量只需要最小限度的修改

看以下**

font-size: 20px;

line-height: 30px;

如果我們要修改font-size的話,那麼line-height也要對應的進行修改。 如果把**改寫為,

font-size: 20px;

line-height: 1.5;

我們想修改**的時候,只需要修改font-size乙個屬性就可以了。 所以,當兩個標籤有聯絡的時候,盡量讓他們的value也有相關性。

擴充套件: 如果我們要改變父元素的font-size,那麼子元素的font-size自然也要跟著改變。 那麼**又可以改寫為:

font-size: 150%;

line-height: 1.5;

注意,有時也需要用具體數值,判斷使用什麼的方法是哪些元素需要隨著div變化,哪些不會。

2.可維護性vs簡潔性

有時候可維護性和簡潔性是互相排斥的。 如果我們要做乙個只有左邊邊框為0的border,

border-width: 10px, 10px, 10px, 0;
但是我們想要修改邊框寬度的時候,要修改3個數值。

如果注重可維護性,

border-width: 10px;

border-left-width: 0;

3.currentcolorcurrentcolor 屬性可以把顏色設定為css裡的第乙個顏色變數。

hr{

height: .5em;

background

: currentcolor;}

4.繼承繼承可以極大的簡化**,它可以用在任意的css屬性裡,通常繼承父元素的屬性。 例如,繼承form,

input, select, button{font: inherit;}
繼承鏈結,

a

5.相信你的眼睛,而不是數值6.on responsive web design盡量多的對網頁進行測試。每個**詢問都會給css加東西,不要輕易的新增它們,要正確地去使用它們。它們應該是最後用的在嘗試過其它方法之後。

一些方法去避免:

使用百分比

當需要使用乙個固定的寬度時,使用max-width.

當背景顏色需要覆蓋整個包容器的時候,使用background-size: cover;

當用行,列去排列元素的時候,讓列數可以隨寬度變化。(使用display: inline-block)

當使用多列文字的時候,使用column-width代替column-count

7.理智的使用簡略表示式

下面的兩行css是不完全相等的,

background: rebeccapurple;

background-color: rebeccapurple;

簡略表示式會始終給你乙個rebeccapurple的背景顏色。然後background-color會在遇到其它元素時停下。

8.是否要使用預處理

(沒聽說過,看不懂,跳過看後面有介紹。)

1.半透明邊框

利用rgba()和hsla()可以製作出半透明效果,但是它們主要用來製作背景。原因如下:

一些老的瀏覽器不會認識到這是一種新的顏色形式,像處理一樣處理它們,只在背景中使用它們。

對於背景更容易提供撤回功能。

如果使用在別的地方,不能直接應用。

例子:

border: 10px solid hola(0,0%,100%,.5);

邊框消失了!!!

原因時背景只自動延伸到了邊框區域。 為了解決這個問題,css3中引入了background-clip。預設值是border-box。如果想讓background延展到內部,那麼**改寫為

2.多邊框實現辦法1: box-shadow

很少有人知道box-shadow有第四個引數,擴散半徑。它可以使陰影變得更大。0offset和0blur可以用陰影製造乙個邊框。由於我們可以在乙個shadow上加另乙個shadow,所以可以實現多邊框。

實現辦法2: outline

如果只需要2個邊框,可以使用outline在border外面再加乙個邊框。

3.可變背景位置

有時候,我們想讓背景從另一角落開始而不是左上。

方法1: 擴充套件背景位置

在css3,background-position允許設定邊距。

background-position: right 20px bottom 10px;

方法2: background-origin 法

看如下**,

padding: 10px;

background: url(code-pirate.svg) no-repeat #58a;

background-position: right 10px bottom 10px;

每次修改padding,便要修改position,太麻煩了。 我們經常寫 top left,但是,到底是哪個元素的top left。 在box model中有4個box,margin,border,padding,content。預設的,background position是padding。 因此影象不會使背景變的模糊。background-orgin可以對這個設定進行改變。

padding: 10px;

background: url(「code-pirate.svg」) no-repeat #58a bottom right;

background-organ: content-box;

這和之前的**的效果一樣,但是更加簡潔。

方法3: calc()

我們想讓背景距離底部10px距離右邊20px。如果一定要用top left,那麼我們可以用calc().

background-position: calc(100%-20px) calc(100%-10px)

4.內邊框

有時候,我們只想讓內邊框是圓滑的,而外邊框是尖的。

最簡單的辦法就是用乙個div巢狀進另乙個div。 不過這樣是比較麻煩的。

解決辦法: 使用shadow,但是對擴散半徑有限制。(我覺得div套div就挺好,書上寫了怎麼求最小半徑了,有興趣的自行查閱。 我覺得有點奇技淫巧的感覺,不推薦。)

5.條紋背景

假設我們使用2種顏色來製造,

修改**

可以看到,上20%和下20%都是純色。

如果設定為50%,那麼便上下分界。

縮小上下的高度

background: linear-gradient(#fb3 30%, #58a 30%);

background-size: 100% 30px;

如果設定第二個顏色的位置為0,那麼下乙個顏色會在上乙個顏色結束時開始。

background: linear-gradient(#fb3 30%, #58a 0);

background-size: 100% 30px;

如果設定成豎直,只需要加入to right屬性就可以。 文章後面踢到了如何實現45度角。需要的時候自行查閱。

《CSS Secrets》讀書筆記(1)

三年重構老司機二刷 css secrets 覺得有些東西還是應該記錄下來,本文內容來自書籍 css secrets 中文名叫 css揭秘 做筆記的過程中我會根據自己的過往經驗加上自己的理解和看法,用通俗的表達對一些知識點進行解釋。本書的物件是有一定css開發經驗的人,如果你是新手,閱讀起來可能有點吃...

《CSS Secrets》讀書筆記(3)

三年重構老司機二刷 css secrets 覺得有些東西還是應該記錄下來,本文內容來自書籍 css secrets 中文名叫 css揭秘 做筆記的過程中我會根據自己的過往經驗加上自己的理解和看法,用通俗的表達對一些知識點進行解釋。本書的物件是有一定css開發經驗的人,如果你是新手,閱讀起來可能有點吃...

讀書筆記 1

從我第一次看到windows就對它那花花綠綠的外表所吸引,大學兩年過來,時間又讓我從另乙個角度重新認識的了這些美麗的。本學期開始圖形程式設計的學習,探索windows圖形系統,並對gdi api,directdraw api進行學習。之所以寫部落格,第 一 是想勉勵自己不斷學習,讓大家監督 第 二 ...