技術(shù)交流QQ群:1027579432,歡迎你的加入!
歡迎關(guān)注我的微信公眾號(hào):CurryCoder的程序人生
- 頁面布局要學(xué)習(xí)三大核心,盒子模型、浮動(dòng)和定位。學(xué)好盒子模型能非常好的幫助我們布局。
網(wǎng)頁布局.png
1.看透網(wǎng)頁布局的本質(zhì)
-
網(wǎng)頁布局過程:
- 先準(zhǔn)備好相關(guān)的網(wǎng)頁元素,網(wǎng)頁元素基本都是盒子Box;
- 利用CSS設(shè)置好盒子樣式,然后擺放到相應(yīng)的位置;
- 往盒子里面裝內(nèi)容;
- 網(wǎng)頁布局的核心本質(zhì):就是利用CSS擺放盒子?。?!
2.盒子模型(Box Model)組成
- 盒子模型:就是把HTML頁面中的布局元素看成是一個(gè)矩形的盒子,也就是一個(gè)裝著內(nèi)容的容器。
-
CSS盒子模型的本質(zhì)是一個(gè)盒子,封裝周圍的HTML元素,它包括:邊框、外邊距、內(nèi)邊距、實(shí)際的內(nèi)容。
盒子模型組成1.png
盒子模型組成2.png
3.邊框border

邊框.png
- border可以設(shè)置元素的邊框,邊框有三部分組成:邊框?qū)挾?粗細(xì))、邊框樣式、邊框顏色;
- 語法格式:
border: border-width || border-style || border-color

邊框?qū)傩?png
4.邊框的復(fù)合寫法
- CSS邊框?qū)傩栽试S你指定一個(gè)元素邊框的樣式和顏色。
- 邊框的復(fù)合寫法:
border: 1px solid red; /* 三個(gè)參數(shù)是沒有順序的! */ - 邊框分開寫法:
border-top: 1px solid red; /* 只設(shè)定上邊框,其余方向同理 */
5.表格的細(xì)線邊框
- border-collapse屬性控制瀏覽器繪制表格邊框的方式它控制了相鄰兩個(gè)單元格之間的邊框。
- 語法格式:
border-collapse: collapse; - collapse單詞是合并的意思,border-collapse: collapse;表示相鄰的邊框合并在一起。
6.邊框會(huì)影響盒子實(shí)際的大小
- 邊框會(huì)額外增加盒子的實(shí)際大小,因此有兩種方法來解決:
- 測(cè)量盒子大小的時(shí)候,不測(cè)量邊框;
- 如果測(cè)量的時(shí)候包含了邊框,則需要width/height減去邊框?qū)挾?/li>
7.內(nèi)邊距padding
-
padding屬性用于設(shè)置內(nèi)邊距,即邊框與內(nèi)容之間的距離。
內(nèi)邊距屬性.png
8.padding的復(fù)合寫法
-
padding屬性(簡(jiǎn)寫屬性)可以有1到4個(gè)值。
padding簡(jiǎn)寫屬性.png
9.padding會(huì)影響盒子的實(shí)際大小
- 當(dāng)我們給盒子設(shè)置padding值之后,發(fā)生了兩件事情:
- 內(nèi)容和邊距有了距離,添加了內(nèi)邊距;
- padding會(huì)影響盒子實(shí)際的大小;
- 注意:如果盒子已經(jīng)有了寬度和高度,此時(shí)再指定內(nèi)邊距,就會(huì)撐大盒子。解決方法:如果保證了盒子與效果圖大小保持一致,則讓width/height減去多出來的內(nèi)邊距大小即可。
- 如果盒子本身沒有指定width/height屬性,則此時(shí)padding不會(huì)撐開盒子大小。
10.外邊距margin
-
margin屬性用于設(shè)置外邊距,即控制盒子與盒子之間的距離。
外邊距的具體屬性值.png - margin簡(jiǎn)寫方式代表的意義與padding完全一致!
11.外邊距的典型應(yīng)用之塊級(jí)盒子水平居中對(duì)齊
- 外邊距可以讓塊級(jí)盒子水平居中,但是必須滿足兩個(gè)條件:
- 盒子必須指定了寬度width;
- 盒子左右的外邊距都設(shè)置為auto;
- 語法格式:
.header { width: 960px; margin: 0 auto; } - 常見寫法用下面的三種:
- margin-left: auto; margin-right: auto;
- margin: auto;
- margin: 0 auto;
- 注意:上面的方法是讓塊元素水平居中對(duì)齊,如果想讓行內(nèi)元素或行內(nèi)塊元素水平居中,只需要給它的父元素添加text-align: center即可。
12.外邊距合并
-
使用margin定義塊元素的垂直外邊距(即margin-top和margin-bottom)時(shí),可能會(huì)出現(xiàn)外邊距的合并。主要有下面的兩種情況:
- 相鄰元素垂直外邊距的合并;
- 嵌套元素垂直外邊距的塌陷;
1.相鄰塊元素垂直外邊距的合并
- 當(dāng)上下相鄰的兩個(gè)塊元素(兄弟關(guān)系的塊元素)相遇時(shí),如果上面的元素有下外邊距margin-bottom,下面的元素有上外邊距margin-top時(shí),它們之間的垂直間距不是margin-bottom與margin-top之和。取兩個(gè)值中的較大者這種現(xiàn)象被稱為相鄰塊元素垂直外邊距的合并。
相鄰塊元素垂直外邊距的合并.png - 解決方法:盡量只給一個(gè)盒子添加margin值!
2.嵌套元素垂直外邊距的塌陷
-
對(duì)于兩個(gè)嵌套關(guān)系(父子關(guān)系)的塊元素,父元素有上外邊距同時(shí)子元素也有上外邊距,此時(shí)父元素會(huì)塌陷較大的外邊距值。
嵌套元素垂直外邊距的塌陷.png -
解決方法:
- 可以為父元素定義上邊框;
- 可以為父元素定義上內(nèi)邊距;
- 可以為父元素添加overflow: hidden;
13.清除內(nèi)外邊距
- 網(wǎng)頁元素很多都帶有默認(rèn)的內(nèi)外邊距,而且不同的瀏覽器默認(rèn)的值也不一致。因此,我們?cè)诓季智?,首先要清除網(wǎng)頁元素的內(nèi)外邊距。
- 語法格式:
* { padding: 0; /* 清除內(nèi)邊距 */ margin: 0; /* 清除外邊距 */ } - 注意:行內(nèi)元素為了照顧兼容性,盡量只設(shè)置左右內(nèi)外邊距,不要設(shè)置上下內(nèi)外邊距。但是,將它轉(zhuǎn)換為塊級(jí)元素和行內(nèi)塊元素就可以設(shè)置上下內(nèi)外邊距了。
14.PS的基本操作
- 因?yàn)榫W(wǎng)頁美工大部分效果圖都是利用PS軟件來做的,所以以后我們大部分切圖工作都是在PS中完成。
- 具體操作如下:
- 1.文件→打開:打開我們要測(cè)量的圖片;
- 2.Ctrl+R:可以打開標(biāo)尺,或者視圖→標(biāo)尺;
- 3.右擊標(biāo)尺,把里面的單位改成像素;
- 4.Ctrl+加號(hào)(+)可以放大視圖,Ctrl+減號(hào)(-)可以縮小視圖;
- 5.按住空格鍵,鼠標(biāo)箭頭變成小手,拖到PS視圖;
- 6.用選區(qū)拖動(dòng),可以測(cè)量大??;
-
7.Ctrl+D可以取消選區(qū),或者在旁邊空白處點(diǎn)擊一下也可以取消選區(qū);
PS界面介紹.png
15.綜合案例之產(chǎn)品模塊
-
網(wǎng)頁布局分析如下:
網(wǎng)頁布局分析.png - 具體代碼流程:
- box布局
* { margin: 0; padding: 0; } body { background-color: #f5f5f5; } .box { width: 298px; height: 415px; background-color: #ffffff; /* 讓塊級(jí)盒子水平居中對(duì)齊 */ margin: 100px auto; } <div class="box"></div>- 圖片和段落制作
.box img { /* 圖片的寬度和父親一樣寬 */ width: 100%; } .review { height: 70px; font-size: 14px; /* 因?yàn)檫@個(gè)段落標(biāo)簽p沒有width屬性, 所以padding不會(huì)撐開盒子的寬度*/ padding: 0 28px; margin-top: 30px; } <div class="box"> <img src="images/img.jpg"> <p class="review">快遞牛,整體不錯(cuò)藍(lán)牙可以說秒連,紅米給力</p> </div>- 評(píng)價(jià)和詳情制作
.appraise { font-size: 12px; color: #b0b0b0; margin-top: 20px; padding: 0 28px; } .info { font-size: 14px; margin-top: 15px; padding: 0 28px; } .info h4 { display: inline-block; font-weight: 400; } .info span { color: #ff6700; } <div class="appraise">來自89757的評(píng)價(jià)</div> <div class="info"> <h4>Redmi AirDots真無線藍(lán)...</h4> | <span>99.9元</span> </div>- 豎線細(xì)節(jié)制作
a { color: #333; text-decoration: none; } .info em { font-style: normal; color: #ebe4e0; margin: 0 6px 0 15px; } <div class="info"> <h4> <a href="#">Redmi AirDots真無線藍(lán)...</a> </h4> <em>|</em> <span>99.9元</span> </div> - 相關(guān)問題:
-
1.布局為什么用不同的盒子,能否只用div?
- 答:標(biāo)簽都是有語義的,合理的地方用合理的標(biāo)簽。例如:產(chǎn)品的標(biāo)題就用h標(biāo)簽,大量的文字就用p標(biāo)簽。
-
2.為什么用那么多類名?
- 答:類名就是給盒子起了一個(gè)名字,可以更好的找到這個(gè)盒子,選取盒子更容易,后期維護(hù)也更方便。
-
3.到底用padding還是margin?
- 答:大部分情況下兩個(gè)可以混用,兩者各有優(yōu)缺點(diǎn),但是根據(jù)實(shí)際情況,總是有更簡(jiǎn)單的方法實(shí)現(xiàn)。
-
1.布局為什么用不同的盒子,能否只用div?
16.綜合案例之快報(bào)模板
-
網(wǎng)頁布局分析如下:
網(wǎng)頁布局分析.png -
具體代碼流程:
- 快報(bào)模塊頭部制作
* { padding: 0; margin: 0; } .box { width: 248px; height: 163px; border: 1px solid #ccc; margin: 100px auto; } .box h3 { height: 32px; border: 1px dotted #ccc; font-size: 14px; font-weight: 400; line-height: 32px; /* 由于h3標(biāo)簽沒有設(shè)定width屬性,因此padding-left不會(huì)撐開盒子 */ padding-left: 15px; } <div class="box"> <h3>品優(yōu)購快報(bào)</h3> </div> -
去掉li標(biāo)簽前的項(xiàng)目符號(hào)(小圓點(diǎn))!
list-style: none;- 快報(bào)模塊列表制作
li { /* 去掉li前面的小圓點(diǎn) */ list-style: none; } .box ul li a { font-size: 12px; color: #666; text-decoration: none; } .box ul li a:hover { text-decoration: underline; } .box ul li { height: 23px; line-height: 23px; padding-left: 20px; } .box ul { margin-top: 7px; } <ul> <li> <a href="#">【特惠】爆款耳機(jī)5折秒!</a> </li> <li> <a href="#">【特惠】母親節(jié),健康好禮低至5折!</a> </li> <li> <a href="#">【特惠】爆款耳機(jī)5折秒!</a> </li> <li> <a href="#">【特惠】9.9元洗100張照片!</a> </li> <li> <a href="#">【特惠】長虹智能空調(diào)立省1000元</a> </li> </ul>
16.圓角邊框[重點(diǎn)]
- 在CSS3中,新增加了圓角邊框樣式,這樣盒子模型就可以變成圓角了。
-
radius半徑(圓的半徑)原理:橢圓與邊框的交集形成的圓角效果。
圓角邊框原理1.png
圓角邊框原理2.png - 語法格式:
border-radius: 參數(shù)值; - 參數(shù)值可以是具體數(shù)值或百分比的形式;
- 如果是正方形,想要設(shè)置為一個(gè)圓,把數(shù)值修改為高度或?qū)挾鹊囊话?/strong>即可,或者直接寫為50%;
- 如果是矩形,設(shè)置為高度為一半就可以了;
- 該屬性是一個(gè)簡(jiǎn)寫屬性,可以跟四個(gè)值,分別代表左上角、右上角、右下角、左下角;
- 分開寫:border-top-left-radius、border-top-right-radius、border-bottom-right-radius、border-bottom-left-radius;
17.盒子陰影[重點(diǎn)]
- 在CSS3中,新增加了盒子陰影,可以使用box-shadow屬性為盒子增加陰影。
- 語法格式:
box-shadow: h-shadow v-shadow blur spread color inset;

盒子陰影屬性值.png
- 默認(rèn)的是外陰影outset,但是不可以寫這個(gè)單詞,否則會(huì)導(dǎo)致陰影無效;
- 盒子陰影不占用空間,不會(huì)影響其他盒子排列;
18.文字陰影
- 在CSS3中,我們可以使用text-shadow屬性將陰影應(yīng)用于文本。
- 語法格式:
text-shadow: h-shadow v-shadow blur color;

文字陰影.png












