跳至主要內容
點這裡看目錄
讀 9 分鐘雜記

部落格經營|基礎網頁設計(2)-CSS篇之一

繼上一篇介紹完HTML的架構,這篇要介紹CSS的概念喔! 如果有還沒看過上一篇的可以回去看喔! 上一篇 認識CSS (Cascading style sheet , CSS),簡單來說是負責視覺性的編輯,也是設計風格發散的開始。根據顏色、排版、字型大小等等的方式來呈現視覺上的差異。 其中,編寫網頁的順序必須先寫html再編寫CSS。舉例來說,html就像蓋房子的鋼筋,先打好網頁的架構以及主要內容,需要視覺傳遞的文字、圖片等資訊。隨後,加…

#部落格經營#生科出路#跨領域轉職
部落格經營|基礎網頁設計(2)-CSS篇之一

導讀:這篇文章聚焦於「CSS 自學 筆記」,幫你快速掌握重點。

繼上一篇介紹完HTML的架構,這篇要介紹CSS的概念喔! 如果有還沒看過上一篇的可以回去看喔!

上一篇

認識CSS

(Cascading style sheet , CSS),簡單來說是負責視覺性的編輯,也是設計風格發散的開始。根據顏色、排版、字型大小等等的方式來呈現視覺上的差異。

其中,編寫網頁的順序必須先寫html再編寫CSS。舉例來說,html就像蓋房子的鋼筋,先打好網頁的架構以及主要內容,需要視覺傳遞的文字、圖片等資訊。隨後,加上CSS就像在鋼筋中間填滿水泥、貼上磁磚,讓這些架構更加豐富,也更能夠讓訪客了解這間房子的樣貌。

套用CSS

套用CSS的方式有3種,分別為:

套用方式說明
⾏內套⽤ (inline css)在 HTML 標籤直接宣告樣式
嵌入套⽤ (embedded css)嵌入於 HTML ⽂件的 <style> 標籤內
外部連接 (External Link css)外部 CSS 檔案 (附檔名 .css)
CSS套用方法示意:行內套用、嵌入套用、外部連接

通常會寫好主要風格樣式後存放在一個style.css檔,隨後每個分頁都能導入這個CSS以達到大部分相同風格的效果。隨後再使用嵌入套用的方式進行該分頁的微調。

style.css 與各分頁導入示意

Normalize.css

因為原先的html有預設一些樣式,例如ul會默認有圓形符號,h1、h2等會有固定行高等等。因此藉由normalize.css的導入可以排除這些預設的問題。建議在之後的每支程式都先導入,會減少很多麻煩。


開源Normalize.css文檔

選擇器(selector)

主要在使用CSS的時候,必須告訴電腦要改變style的部分在哪裡,可以根據屬性、名字等等(完整說明請見 MDN CSS 選擇器)。主要選擇器類型如下:

選擇器類型語法說明
屬性選擇器元素名稱 { }以 HTML 標籤名稱選取所有同類元素
Class 選擇器.class名稱 { }以 class 屬性選取,可重複使用於多處
ID 選擇器#ID名稱 { }以 ID 屬性選取,頁面唯一
後代選擇器父層 子層 { }以巢狀結構選取深層元素

屬性選擇器

html內的標籤即為相對應屬性,在CSS檔案中宣告要改變樣式的屬性。

屬性選擇器:html 標籤即為相對應屬性

Class選擇器

在html裡面,當有很多相同標籤出現,但只想要改變特定的時候,可以給予標籤class命名,並在CSS檔案中以"."+class名稱宣告要改變樣式的部分。

Class 選擇器:以 .class 名稱宣告要改變樣式的部分

ID選擇器

與class選擇器相同,可以給予標籤ID命名,值得注意的是,同一個標籤可以命名多個class而ID就只能有一個,隨後在CSS檔案中以"#"+名稱宣告要改變樣式的部分。

ID 選擇器:以 # 名稱宣告要改變樣式的部分

(選取了class_selector的div內容文字顏色改為紅色,因此ID_selector沒有被更動;而ID選擇器則選到ID_selector的div內容文字大小改為32px)

後代選擇器

當想改變特定部分時,除了能使用class,ID選擇器以外,也能透過巢狀結構的特性,利用父層子層的關係來找到特定區域。

父層子層、繼承與取代

若以A標籤夾住B標籤,則A為父層,B為子層。相當於A裡面的B。通常CSS的特性會有繼承的效果。也就是說,透過改變父層的樣式,子層的狀態也會跟著改變。

父層與子層的繼承效果示意

此外,因為電腦閱讀方式是從上到下,在CSS檔案中若同樣設定A標籤的內容,則較下方提到的改變會取代掉先前的更動。

較下方設定取代先前更動的示意

切記能夠盡量減少後代選擇的層數,在例子中,雖然能夠以div ul li #first的方式選到"a"。

但事實上,使用#first的方式就可以直接達到同樣效果。然而後者的電腦運算方式會快得多。若在SEO或優化網頁的過程中,這部分是主要影響速度的一部份。

減少後代選擇層數示意:div ul li #first → #first

Box Model

在網頁排版的時候,事實上是被裁切成許多不同的塊狀(盒狀 / Box Model)。試著把html寫好的內容想像成一個個盒子。把巢狀結構想像成俄羅斯娃娃一樣,大的盒子裡面可以裝許多小盒子。

但是在排版的時候,如果想要改變盒子的大小,以及彼此之間的間距應該怎麼辦呢?

在排版過程中,大多使用的是box model ,透過宣告盒子間的間距、盒子高度跟寬度等等來達到想要的效果。

padding : 下圖中黑線以內,綠色區域就是padding的區域,透過改變padding可以把這個區塊中的物件向中心推擠。(若物件靠左則會右推,靠上則往下)。

box model 示意:黑線以內綠色區域是 padding

margin : 下圖中黑線以外,紅色區域為margin,透過改變margin來將物件遠離此區塊。(物件在左則會向左推開)。

box model 示意:黑線以外紅色區域是 margin
寫法範例說明
寫法1padding/margin: 5px;上下左右都推開5px
寫法2padding/margin: 5px 3px;上下推開5px;左右推開3px
寫法3padding/margin: 5px 3px 1px;上推開5px,左右推開3px,下推開1px
寫法4padding/margin: 5px 3px 1px 3px;上5px,右3px,下1px,左3px
padding / margin 四種寫法示意

 #使用padding/margin: 0 auto的方式可以將區塊置中

border : 事實上border同樣也會占版面。可以透過px solid/dot color來選擇邊框的粗細 實虛線以及顏色

另外,border也時常被用來除錯以及將區塊可視化。

border 佔版面示意:px solid/dot color 邊框

Box sizing: border box

在排版的過程中,假如為了要將大盒子內的物件分開而使用了padding,這會造成整體的大小超出原本預期排版的間隔配置。這時候可以使用box sizing: border box的方式,可以解決超出版面、區塊的問題。

後記

如果你喜歡這樣解說的方式的話,分享給也在跟 padding、margin 纏鬥的朋友吧!有疑問或覺得我寫錯的地方,歡迎用下面的「寫信」告訴我!

大家都在問

文章分享了繼上一篇介紹完HTML的架構,這篇要介紹CSS的概念喔! 如果有還沒看過上一篇的可以回去看喔! 上一等實務經驗,對想要部落格經營的人很有參考價值。

可以透過實習、專案經驗、技能培訓等方式累積跨領域經驗,並善用生科背景的分析能力。

跨領域實習能幫助你探索不同職業選項,累積多元技能,並建立更廣泛的職場網絡。

訂閱白鷗電子報

我會把最近讀到的期刊、跨領域路上的觀察,還有還沒整理成文章的筆記,先寄給你。主題分開寄,想收哪個自己勾。

想收到哪些

歡迎贊助支持!

如果文章的內容對你有用,歡迎小額贊助!會給我很大鼓勵,讓我動力繼續創作下去!

金額 (6 元起,也可以自訂)

聯繫

想找我合作、發現網站哪裡怪怪的,或有想看的主題,都可以寫信給我。

Juan 喚 簽名白鷗x喚

寫信給白鷗x喚

想說的事直接寫給我,我讀完會用 email 回你。

關於什麼
分享社群
加入 LINE 社群

作者

白鷗x喚 作者 Juan

喚 Juan

從生科跨到工程,現在是生理訊號演算法工程師,也一直在記錄生活跟工作。這裡的文章,是我從實驗室、職場跟諮詢現場整理出來的筆記——很多都是我當初也很希望有人先跟我說的事。

希望每位白鷗在閱讀時,都能感受到穩定的陪伴,知道這些轉彎、期待與不安並不是一個人面對。

贊助 · 社群

文章有幫到你的話,可以請我喝杯咖啡,會給我很多鼓勵,讓我可以繼續創作下去!

贊助白鷗x喚加入社群

再看點別的

同個主題的其他文章。