2019-05-29盒子模型,邊框,內(nèi)邊距,外邊距,外邊距的重疊,瀏覽器的默認(rèn)樣式,內(nèi)聯(lián)元素的盒模型,_display和visbility.html,_overflow.html,文檔流,浮動(dòng),...

盒子模型

使用width來(lái)設(shè)置盒子內(nèi)容區(qū)的寬度

使用height來(lái)設(shè)置盒子內(nèi)容區(qū)的高度

width和height只是設(shè)置的盒子內(nèi)容區(qū)的大小,而不是盒子的整個(gè)大小,盒子可見(jiàn)框的大小由內(nèi)容區(qū),內(nèi)邊距和邊框共同決定

要為一個(gè)元素設(shè)置邊框必須指定三個(gè)樣式

border-width:邊框的寬度

border-color:邊框顏色

border-style:邊框的樣式

使用border-width可以分別指定四個(gè)邊框的寬度

如果在border-width指定了四個(gè)值

則四個(gè)值會(huì)分別設(shè)置給上、右、下、左,按照順時(shí)針的方向設(shè)置的

如果指定三個(gè)值

則三個(gè)值會(huì)分別設(shè)置給上、左右、下

如果指定兩個(gè)值

則兩個(gè)值會(huì)分別設(shè)置給上下、左右

如果指定一個(gè)值,則四邊全都是該值

除了border-width,CSS中還提供了四個(gè)border-xxx-width

xxx的值可能是top right bottom left

專門用來(lái)設(shè)置指定邊的寬度

設(shè)置邊框的樣式

* 可選值:

* none,默認(rèn)值,沒(méi)有邊框

* solid 實(shí)線

* dotted 點(diǎn)狀邊框

* dashed 虛線

* double 雙線

style也可以分別指定四個(gè)邊的邊框樣式,規(guī)則和width一致,同時(shí)它也提供border-xxx-style四個(gè)樣式,來(lái)分別設(shè)置四個(gè)邊

border-style: double;

border-style: solid dotted dashed double;

邊框

設(shè)置邊框

大部分的瀏覽器中,邊框的寬度和顏色都是有默認(rèn)值,而邊框的樣式默認(rèn)值都是none

border

- 邊框的簡(jiǎn)寫樣式,通過(guò)它可以同時(shí)設(shè)置四個(gè)邊框的樣式,寬度,顏色

- 而且沒(méi)有任何的順序要求

- border一指定就是同時(shí)指定四個(gè)邊不能分別指定

border-top border-right border-bottom border-left

可以單獨(dú)設(shè)置四個(gè)邊的樣式,規(guī)則和border一樣,只不過(guò)它只對(duì)一個(gè)邊生效

內(nèi)邊距

內(nèi)邊距(padding),指的是盒子的內(nèi)容區(qū)與盒子邊框之間的距離,一共有四個(gè)方向:

padding-top

padding-right

padding-bottom

padding-left

內(nèi)邊距會(huì)影響盒子的可見(jiàn)框的大小,元素的背景會(huì)延伸到內(nèi)邊距

盒子的大小由內(nèi)容區(qū)、內(nèi)邊距和邊框共同決定

盒子可見(jiàn)框的寬度 = border-left-width + padding-left + width + padding-right + border-right-width

盒子可見(jiàn)框的高度 = border-top-width + padding-top + height + padding-bottom + border-bottom-width

使用padding可以同時(shí)設(shè)置四個(gè)邊框的樣式,規(guī)則和border-width一致

外邊距

外邊距指的是當(dāng)前盒子與其他盒子之間的距離,他不會(huì)影響可見(jiàn)框的大小,而是會(huì)影響到盒子的位置

盒子有四個(gè)方向的外邊距:

margin-top

margin-right

margin-bottom

margin-left

由于頁(yè)面中的元素都是靠左靠上擺放的,所以注意當(dāng)我們?cè)O(shè)置上和左外邊距時(shí),會(huì)導(dǎo)致盒子自身的位置發(fā)生改變,而如果是設(shè)置右和下外邊距會(huì)改變其他盒子的位置

/*設(shè)置上外邊距,即盒子的上邊框與其他盒子的距離*/

/*margin-top: 100px;*/

/*左外邊距*/

/*margin-left: 100px;*/

/*設(shè)置右和下外邊距*/

/*margin-right: 100px;

margin-bottom: 100px;*/

外邊距也可以指定為一個(gè)負(fù)值,如果外邊距設(shè)置的是負(fù)值,則元素會(huì)向反方向移動(dòng)

/*margin-left: -100px;

margin-top: -100px;

margin-bottom: -100px;*/

/*margin-bottom: -100px;*/

margin還可以設(shè)置為auto,auto一般只設(shè)置給水平方向的margin

如果只指定,左外邊距或右外邊距的margin為auto則會(huì)將外邊距設(shè)置為最大值

垂直方向外邊距如果設(shè)置為auto,則外邊距默認(rèn)就是0

如果將left和right同時(shí)設(shè)置為auto,則會(huì)將兩側(cè)的外邊距設(shè)置為相同的值,就可以使元素自動(dòng)在父元素中居中

所以我們經(jīng)常將左右外邊距設(shè)置為auto,以使子元素在父元素中水平居中

margin-left: auto;

margin-right: auto;

margin-top: auto;

外邊距同樣可以使用簡(jiǎn)寫屬性 margin,可以同時(shí)設(shè)置四個(gè)方向的外邊距,規(guī)則和padding一樣

外邊距的重疊

垂直外邊距的重疊

在網(wǎng)頁(yè)中相鄰的垂直方向的外邊距會(huì)發(fā)生外邊距的重疊

所謂的外邊距重疊指兄弟元素之間的相鄰?fù)膺吘鄷?huì)取最大值而不是取和

如果父子元素的垂直外邊距相鄰了,則子元素的外邊距會(huì)設(shè)置給父元素

瀏覽器的默認(rèn)樣式

瀏覽器為了在頁(yè)面中沒(méi)有樣式時(shí),也可以有一個(gè)比較好的顯示效果,所以為很多的元素都設(shè)置了一些默認(rèn)的margin和padding,而它的這些默認(rèn)樣式,正常情況下我們是不需要使用的。

所以我們往往在編寫樣式之前需要將瀏覽器中的默認(rèn)的margin和padding統(tǒng)統(tǒng)的去掉

*{

margin: 0;

padding: 0;

}

內(nèi)聯(lián)元素的盒模型

/*盒模型分成內(nèi)容區(qū)、內(nèi)邊距 、邊框 、外邊距四個(gè)部分*/

/*內(nèi)聯(lián)元素不能設(shè)置width和height*/

/*設(shè)置水平內(nèi)邊距,內(nèi)聯(lián)元素可以設(shè)置水平方向的內(nèi)邊距*/

padding-left: 100px;

padding-right: 100px;

/*垂直方向內(nèi)邊距,內(nèi)聯(lián)元素可以設(shè)置垂直方向內(nèi)邊距,但是不會(huì)影響頁(yè)面的布局*/

/*padding-top: 50px;

padding-bottom: 50px;*/

/*為元素設(shè)置邊框,內(nèi)聯(lián)元素可以設(shè)置邊框,但是垂直的邊框不會(huì)影響到頁(yè)面的布局*/

border: 1px blue solid;

/*水平外邊距,內(nèi)聯(lián)元素支持水平方向的外邊距*/

margin-left:100px;

margin-right: 100px;

display和visibility.html

將一個(gè)內(nèi)聯(lián)元素變成塊元素

通過(guò)display樣式可以修改元素的類型

可選值:

inline:可以將一個(gè)元素作為內(nèi)聯(lián)元素顯示

block: 可以將一個(gè)元素設(shè)置塊元素顯示

inline-block:將一個(gè)元素轉(zhuǎn)換為行內(nèi)塊元素

- 可以使一個(gè)元素既有行內(nèi)元素的特點(diǎn)又有塊元素的特點(diǎn),既可以設(shè)置寬高,又不會(huì)獨(dú)占一行

none: 不顯示元素,并且元素不會(huì)在頁(yè)面中繼續(xù)占有位置

display: none;

使用該方式隱藏的元素,不會(huì)在頁(yè)面中顯示,并且不再占據(jù)頁(yè)面的位置

visibility

* - 可以用來(lái)設(shè)置元素的隱藏和顯示的狀態(tài)

* - 可選值:

* visible 默認(rèn)值,元素默認(rèn)會(huì)在頁(yè)面顯示

* hidden 元素會(huì)隱藏不顯示

*

* 使用 visibility:hidden;隱藏的元素雖然不會(huì)在頁(yè)面中顯示,

* 但是它的位置會(huì)依然保持

visibility: hidden;

overliow.html

子元素默認(rèn)是存在于父元素的內(nèi)容區(qū)中,理論上講子元素的最大可以等于父元素內(nèi)容區(qū)大小

如果子元素的大小超過(guò)了父元素的內(nèi)容區(qū),則超過(guò)的大小會(huì)在父元素以外的位置顯示

超出父元素的內(nèi)容,我們稱為溢出的內(nèi)容

父元素默認(rèn)是將溢出內(nèi)容,在父元素外邊顯示

通過(guò)overflow可以設(shè)置父元素如何處理溢出內(nèi)容:

可選值:

- visible,默認(rèn)值,不會(huì)對(duì)溢出內(nèi)容做處理,元素會(huì)在父元素以外的位置顯示

- hidden, 溢出的內(nèi)容,會(huì)被修剪,不會(huì)顯示

- scroll, 會(huì)為父元素添加滾動(dòng)條,通過(guò)拖動(dòng)滾動(dòng)條來(lái)查看完整內(nèi)容

- 該屬性不論內(nèi)容是否溢出,都會(huì)添加水平和垂直雙方向的滾動(dòng)條

- auto,會(huì)根據(jù)需求自動(dòng)添加滾動(dòng)條,需要水平就添加水平,需要垂直就添加垂直,都不需要就都不加

文檔流

文檔流

文檔流處在網(wǎng)頁(yè)的最底層,它表示的是一個(gè)頁(yè)面中的位置,我們所創(chuàng)建的元素默認(rèn)都處在文檔流中

元素在文檔流中的特點(diǎn)

塊元素

1.塊元素在文檔流中會(huì)獨(dú)占一行,塊元素會(huì)自上向下排列

2.塊元素在文檔流中默認(rèn)寬度是父元素的100%

3.塊元素在文檔流中的高度默認(rèn)被內(nèi)容撐開(kāi)

內(nèi)聯(lián)元素

1.內(nèi)聯(lián)元素在文檔流中只占自身的大小,會(huì)默認(rèn)從左向右排列,如果一行中不足以容納所有的內(nèi)聯(lián)元素,則換到下一行,繼續(xù)自左向右。

2.在文檔流中,內(nèi)聯(lián)元素的寬度和高度默認(rèn)都被內(nèi)容撐開(kāi)

當(dāng)元素的寬度的值為auto時(shí),此時(shí)指定內(nèi)邊距不會(huì)影響可見(jiàn)框的大小,而是會(huì)自動(dòng)修改寬度,以適應(yīng)內(nèi)邊距

浮動(dòng)

塊元素在文檔流中默認(rèn)垂直排列,所以這個(gè)三個(gè)div自上至下依次排開(kāi)

如果希望塊元素在頁(yè)面中水平排列,可以使塊元素脫離文檔流

使用float來(lái)使元素浮動(dòng),從而脫離文檔流

可選值:

none,默認(rèn)值,元素默認(rèn)在文檔流中排列

left,元素會(huì)立即脫離文檔流,向頁(yè)面的左側(cè)浮動(dòng)

right,元素會(huì)立即脫離文檔流,向頁(yè)面的右側(cè)浮動(dòng)

當(dāng)為一個(gè)元素設(shè)置浮動(dòng)以后(float屬性是一個(gè)非none的值),元素會(huì)立即脫離文檔流,元素脫離文檔流以后,它下邊的元素會(huì)立即向上移動(dòng)

元素浮動(dòng)以后,會(huì)盡量向頁(yè)面的左上或這是右上漂浮,直到遇到父元素的邊框或者其他的浮動(dòng)元素

如果浮動(dòng)元素上邊是一個(gè)沒(méi)有浮動(dòng)的塊元素,則浮動(dòng)元素不會(huì)超過(guò)塊元素

float: left;

文字繞圖

浮動(dòng)的元素不會(huì)蓋住文字,文字會(huì)自動(dòng)環(huán)繞在浮動(dòng)元素的周圍,所以我們可以通過(guò)浮動(dòng)來(lái)設(shè)置文字環(huán)繞圖片的效果

*/

float: left;

內(nèi)聯(lián)元素的浮動(dòng)

在文檔流中,子元素的寬度默認(rèn)占父元素的全部

當(dāng)元素設(shè)置浮動(dòng)以后,會(huì)完全脫離文檔流.

塊元素脫離文檔流以后,高度和寬度都被內(nèi)容撐開(kāi)

開(kāi)啟span的浮動(dòng)

內(nèi)聯(lián)元素脫離文檔流以后會(huì)變成塊元素

簡(jiǎn)單布局

/*清除默認(rèn)樣式*/

*{

margin: 0;

padding: 0;

}

設(shè)置格式一樣以此圖為例


/*設(shè)置主體內(nèi)部*/

.content{

/*設(shè)置居中*/

margin: 10px auto;

}

/*設(shè)置content中小div的樣式*/

.left{

/*向左浮動(dòng)*/

float: left;

}

.center{

/*向左浮動(dòng)*/

float: left;

/*設(shè)置水平外邊距0*/

margin: 0 10px;

}

.right{

/*向左浮動(dòng)*/

float: left;

}

/*設(shè)置頁(yè)腳*/

.footer{

/*設(shè)置居中*/

margin: 0 auto;

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容