---
# System prepended metadata

title: P 高度? 這東東也有高度喔?

---


<h1>P 高度? 這東東也有高度喔?</h1>

: p 不是以 px 為單位的嗎?是要怎麼計算他的高度啊~
假設有是 24px ，不同字型那麼高度都是一樣的嗎? 不見得喔~
所以要依據行高 (line-height)、字型、瀏覽器的默認樣式來計算每行的高度
p是區塊元素，每有一行就是占據一行高度與寬度
如果文字佔據兩行，那就要算兩行的高度

如果沒有特別設定行高，則吃到瀏覽器默認行高 
主流瀏覽器默認行高為 1.2 (Chrome、Firefox、Safari、Edge)
```
body{
  font-size: 24px;
  line-height: 1.8;
}

<p>p 不是以 px 為單位的嗎?是要怎麼計算他的高度啊~</p>
```
上面這一題的高度就是
文字是 p 標籤（區塊元素）那麼他就會佔領一行
但這題沒有行高（line height) 的單位，所以
24*1.8=43px



> <h3>盒模型?那又是啥?</h3>
> border-box: content-box / border-box

<h4>
：「 誒你前面要加這個啊 」
</h4>


![1720260170887](https://hackmd.io/_uploads/SJHf5X2D0.png)


```
*,
*::before,
*::after {
  box-sizing: border-box;
}
```

<s>
    「那ㄍ... 星星那些是什麼？」
</s>

*：選擇所有元素
*::before,*::after ~~前面後面都要~~ 偽元素也選取起來，避免元素使用了偽元素之後造成樣式不一致的問題

回歸！
**content-box 默認樣式**
box-sizing:content-box; 
計算盒子尺寸（長寬）時要把邊框計算進去，包含內邊距和邊框; 但是外邊距還是別人的。

**border-box是什麼呢？**
border: 邊框
box: 盒子

box-sizing: border-box;
假設容器寬度是 300px，那不管邊框幾px、內邊距幾px 都會啃食那個 300px 整個容器寬度就是 300px 不變。

~~某方面也蠻像啃老（？~~


