一、盒子模型
- 什么是css盒子模型
css中的盒子模型僅僅是一個形象的比喻,HTML中所有的標(biāo)簽都是盒子
在HTML中所有的標(biāo)簽都可以設(shè)置:
寬度/高度 == 指定可以存放內(nèi)容的區(qū)域
內(nèi)邊距 == 填充物
邊框 == 手機盒子自己
外邊框 == 盒子與盒子之間的間隙
二、盒子模型的寬度和高度
- 內(nèi)容的寬度和高度
- 通過標(biāo)簽的width/height屬性設(shè)置的寬度和高度;
- 元素的寬度和高度
- 寬度= 左邊框 + 左內(nèi)邊距 + width + 右邊內(nèi)距 + 右邊框
- 高度=同理可證
- 元素空間的寬度和高度
- 寬度=左外邊框+左邊框 + 左內(nèi)邊距 + width + 右邊內(nèi)距 + 右邊框+右外邊框
- 高度=同理可證
三、盒子的box-sizing 屬性
- css3中新增了一個box-sizing屬性,這個屬性可以保證我們給盒子新增padding 和border之后,盒子元素的寬度和高度不變。
- box-sizing屬性是如何保證增加padding和border之后,盒子元素的寬度和高度不變?
- 是通過減去一部分內(nèi)容的寬度和高度
- box-sizing的取值:
3.1 content-box:
元素的寬高= 邊框+內(nèi)邊距+內(nèi)容寬高
3.2 border-box:(元素的大小不會改變)
元素的寬高=width/height屬性設(shè)置的數(shù)值
注意點:
- 如果兩個盒子是嵌套關(guān)系,那么設(shè)置了里面的一個盒子的頂部外邊框,外面的盒子也會被頂下來。
2.如果外面的盒子不想被一起頂下來,納悶可以給外面的盒子添加一個邊框?qū)傩浴?/li> - 在企業(yè)開發(fā)中一般情況下如果需要控制嵌套靠關(guān)系盒子之間的距離,應(yīng)該首先考慮padding,其次考慮margin,因為margin本質(zhì)上是用于控制兄弟關(guān)系之間的間隙的。
- 在嵌套關(guān)系的盒子中,我們可以利用margin:0 auto的方式來讓里面盒子在外面的盒子中水平居中。margin:0 auto;只是對水平方向有效,對垂直方向無效。
四、盒子居中和內(nèi)容居中
- text-align:center 和 margin:0 auto 的區(qū)別
- text-align:center: 是讓盒子中的文字/圖片居中顯示
- margin:0 auto :是讓盒子自己居中顯示
五、清除默認邊距(外邊距和內(nèi)邊距)
- 為什么要清空默認邊距
- 在企業(yè)開發(fā)中,為了更好的控制盒子的寬高和計算盒子的寬高等等,所以在企業(yè)開發(fā)中,編寫代碼之前第一件事情就是清空默認的邊距。
- 如何清空默認的邊距?
*{
margin:0;
padding:0;
}
通配符選擇器會遍歷當(dāng)前界面所有的標(biāo)簽,所以性能不好。
企業(yè)開發(fā)中可以從這個網(wǎng)址中拷貝:
http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css
六、行高和字號
- 什么是行高
- 在css中,所有的行,都是有行高的。
- line-height: 2px.:行高。
注意點:
- 行高和元素的高度不一樣。
規(guī)律
- 文字在行高中默認是垂直居中的;
- 在企業(yè)開發(fā)中,我們經(jīng)常將盒子的高度和行高設(shè)置為一樣,那么就可以保證一行文字在盒子的高度中是垂直居中的,簡而言之就是:要想一行文字在盒子中垂直居中,那么只需要設(shè)置這行文字的行高等于盒子的高即可。
- 在企業(yè)中開發(fā)中,如果一個盒子中有多行文字,那么我們就不能使用設(shè)置行高等于盒子高來實現(xiàn)讓文字垂直居中,只能通過設(shè)置padding來讓文字居中。
七 、還原字體和字號
注意點
- 在企業(yè)開發(fā)中,如果一個盒子中存儲的是文字,那么一般情況下,我們會以盒子左邊的內(nèi)邊距為基準(zhǔn),不會以右邊的內(nèi)邊距為基準(zhǔn),因為右邊的內(nèi)邊距有誤差。
- 右邊邊距的誤差從何而來?因為右邊如果放不下一個文字,那么文字就會換行顯示,這樣導(dǎo)致右邊的會有誤差。
- 頂部的內(nèi)邊距并不是邊框到文字頂部的距離,而是邊框到行高頂部的距離。
八、文章界面
1、開始寫網(wǎng)頁的步驟
- 1.1 清空所有的邊距
- 1.2 從外到內(nèi),從上到下的編寫網(wǎng)頁代碼