每天資訊47 width、height、padding屬性詳解

菜單

47 width、height、padding屬性詳解

width屬性

width屬性表示的是盒子內容的寬度。

width屬性的單位通常是px,也可以是em和百分數。

當塊級元素沒有設定width屬性時,這個塊級元素將在頁面的水平方向上鋪滿。也就是說,當塊級元素沒有設定width屬性時,它的寬度就是瀏覽器視窗的寬度。

h系列標籤、p標籤、li標籤、div標籤都是塊級元素。

height屬性

height屬性表示盒子內容的高度。

height屬性的單位通常是px,也可以是em和百分數。

盒子的height屬性如果不設定,不管這個盒子是不是塊級元素,它將自動的被它裡面的內容撐開,如果這個盒子裡面沒有內容,那麼height的值將預設是0。

width和height屬性的單位rem和百分數,主要在移動端開發中用的比較多。

padding屬性

padding是盒子的內邊距,就是盒子邊框的內壁到文字的距離。

47 width、height、padding屬性詳解

padding有上下左右四個方向,每一個方向都可以單獨設定。相當於padding這個大的屬性下面又細分了4個方向的小屬性。

47 width、height、padding屬性詳解

這4個小屬性,都是padding後面跟一個小短橫,然後跟方向描述詞,表示它是哪一個方向的padding。

padding的每一個方向上的數值,都是可以不一樣的。

接下來我在vscode和瀏覽器中演示下width、height、padding這幾個屬性。我建立了一個叫“width、height、padding。html”的檔案。程式碼如下:

<!DOCTYPE html>width、height、padding屬性詳解 所謂的光輝歲月,並不是後來閃耀的日子,而是無人問津時,你對夢想的偏執。

在上面的程式碼中,我設定內容區域距離div盒子上邊框的距離是30畫素,距離div盒子右邊框的距離是20畫素,距離div盒子下邊框的距離是10畫素,距離div盒子左邊框的距離是5畫素。

在瀏覽器中,右鍵檢查,我們看到盒子模型是這樣:

47 width、height、padding屬性詳解

我麼看到內容區域是300畫素寬度乘以200畫素高度,上下左右方向的內邊距都顯示出來了。滑鼠滑到盒子模型的300*200內容區域上,效果更直觀。

47 width、height、padding屬性詳解

padding的寫法

1、四數值寫法

四數值寫法,每一個數值就是分別代表某一個方向上的數值。

第一個數值代表內容和上邊框方向的距離,

第二個數值代表內容和右邊框方向的距離,

第三個數值代表內容和下邊框方向的距離,

第四個數值代表內容和左邊框方向的距離,

每一個數值之間用空格隔開。

比如:

47 width、height、padding屬性詳解

這就是四數值寫法。

使用這種寫法,比我上面的程式碼中的寫法更簡潔。上面的程式碼中,我是按照padding-top、padding-right、padding-bottom、padding-left這四個小屬性寫的,要寫4行程式碼,而用這種四數值寫法,只需要一行程式碼,就能把四個方向都設定了。

只要記住,四數值寫法,就是按照上右下左的順序來設定padding的,你也可以按照鐘錶的順時針方向記憶。

2、三數值寫法

三數值寫法數值之間也是用空格隔開。三個數值分別表示上、左右、下的方向的距離。

比如:

47 width、height、padding屬性詳解

這就是三數值寫法,第一個值表示上方向10畫素,

第二個值表示左右方向,就是左方向是20畫素,右方向也是20畫素

,第三個值表示下方向30畫素。

三數值寫法,也可以按照上右下左去記,第一個數值是上,第二個數值是右,第三個數值是下,第四個數值是左,但是左方向沒有值,所以左方向就和右方向一樣

3、二數值寫法

二數值寫法數值之間也是用空格隔開。分別表示上下、左右方向的距離。

比如:

47 width、height、padding屬性詳解

這就是二數值寫法。也就是說,如果你給padding設定了2個值,CSS就會認為,第一個值是上下方向都是同樣的距離,第二個值表示左右方向,也是同樣的距離。

二數值寫法,也可以按照上右下左去記。比如上面的示例,上10px,右20px,下沒有,所以跟上一樣,也是10px,左也沒有,所以跟右一樣,也是20px。

4、一數值寫法

一個數值,表示上下左右四個方向距離都一樣。

接下來我們看一個盒子模型圖:

47 width、height、padding屬性詳解

上下都是30畫素,左右沒有,那麼padding屬性如何寫呢?

沒錯,就是

47 width、height、padding屬性詳解

但是不能寫成——padding:30px;

這樣寫就錯了,這樣寫就表示四個方向都是30畫素,顯然是不對的。

左右沒有,但是也必須要寫一個0,表示左右都是0,

CSS中,出現0這個數值,後面可以不帶單位。

再看這個盒子模型:

47 width、height、padding屬性詳解

上、左右都是40畫素,下沒有,

我們可以用三數值寫法,即padding:40px 40px 0;

但是更推薦一種新寫法:

47 width、height、padding屬性詳解

這種寫法就更能體現CSS的層疊性,我們先設定4個方向都是40,然後再設定下方向為0,去覆蓋前面一條屬性中的下方向的數值,非常有靈性。

這種寫法就是用小屬性去層疊大屬性,非常推薦這種寫法。

關於padding的各種寫法,請自己去寫程式碼驗證練習。