CSS之盒子模型
阿新 • • 發佈:2018-02-05
12px overflow 都是 padding ash ted markdown style 文字
行高
- 瀏覽器默認文字大小:16px
- 行高是==基線與基線==之間的距離
- 行高=文字大小+上下邊距
- 行高的單位
單位 | 文字大小 | 值 |
---|---|---|
px | 20px | 20px |
em | 20px | 40px |
% | 20px | 30px |
2 | 20px | 40px |
總結:單位除了像素以外,行高都是與文字大小乘積。
行高單位 | 父元素文字大小 | 子元素文字大小 | 行高 |
---|---|---|---|
40px | 20px | 30px | 40px |
2em | 20px | 30px | 40px |
%150 | 20px | 30px | 30px |
2 | 20px | 30px | ==60px== |
總結:不帶單位時,行高是和子元素文字大小相乘,em和%都是和父元素文字大小相乘
盒子模型
邊框 (border)
- border-top-style:solid(實線)/dotted(點線)/dashed(虛線)
- border-top-color
- border-top-width
.box{ width: 300px; height: 390px; background-color: red; border-top-style: solid; border-top-color: green; border-top-width: 5px; border-bottom-style: solid; border-bottom-color: yellow; border-bottom-width: 15px; }
邊框屬性連寫
border-top:red solid 5px;
特點:沒有順序要求,線型為必寫項。
四個邊框值相同的寫法
border:12px solid red;
特點:沒有順序要求,線型為必寫項。
邊框合並
border-collapse:collapse;
獲取焦點
內邊距(padding)
padding-left | right | top | bottom
- padding連寫
- padding: 20px; 上右下左內邊距都是20px
- padding: 20px 30px; 上下20px 左右30px
- padding: 20px 30px 40px; 上內邊距為20px 左右內邊距為30px 下內邊距為40
- padding: 20px 30px 40px 50px; 上20px 右30px 下40px 左 50px
內邊距撐大盒子的問題
- 影響盒子寬度的因素
- 內邊距影響盒子的寬度
- 邊框影響盒子的寬度
- 盒子的寬度=定義的寬度+邊框寬度+左右內邊距
繼承的盒子一般不會被撐大
包含(嵌套)的盒子,如果子盒子沒有定義寬度,給子盒子設置左右內邊距,一般不會撐大盒子。
外邊距(margin)
margin-left | right | top | bottom
外邊距連寫
- margin: 20px; 上下左右外邊距20px
- margin: 20px 30px; 上下20px 左右30px
- margin: 20px 30px 40px; 上20px 左右30px 下 40px
- margin: 20px 30px 40px 50px; 上20px 右30px 下40px 左50px
垂直方向外邊距合並
兩個盒子垂直一個設置上外邊距,一個設置下外邊距,取的設置較大的值。
嵌套的盒子外邊距塌陷
- 給父盒子設置邊框
- 給父盒子overflow:hidden; ==bfc 格式化上下文==
行內元素可以定義左右內外邊距,上下的會被忽略掉
CSS之盒子模型