CSS盒模型

前言

? ?CSS盒模型(也被稱為框模型)是網(wǎng)頁(yè)布局的基礎(chǔ)——每個(gè)元素被表示為一個(gè)矩形的盒子盗棵,框的內(nèi)容(content)泽铛、內(nèi)邊距(padding)尚辑、邊框(border)和外邊距(margin)像洋蔥的膜那樣,一層包著一層構(gòu)建起來(lái)盔腔。瀏覽器渲染網(wǎng)頁(yè)布局時(shí)杠茬,他會(huì)算出每個(gè)盒子的內(nèi)容要用什么樣式,周圍的洋蔥層有多大弛随,以及盒相對(duì)于其他盒放在哪里瓢喉。
? ?元素盒的最里面是實(shí)際的內(nèi)容(content),直接包圍內(nèi)容的是內(nèi)邊距(padding)舀透,或者叫做留白(padding)栓票,這個(gè)說(shuō)法是看到一篇文章提到的,我覺(jué)得很形象生動(dòng)盐杂。就像一幅畫(huà)一樣逗载,有主要的風(fēng)景人物,但畫(huà)卷上還有留白的地方链烈,增加了整幅畫(huà)的意境厉斟。既然內(nèi)容和留白都在畫(huà)卷上,那么我們可以想象得到元素盒模型的background屬性自然也應(yīng)用于內(nèi)容(content) + 留白(padding)區(qū)域了强衡。
? ?留白(padding)擦秽,邊框(border)和外邊距(margin)都是可選的,默認(rèn)值是零。但是感挥,不同的瀏覽器對(duì)于元素都有自己的默認(rèn)樣式缩搅。為了統(tǒng)一不同瀏覽器上的頁(yè)面樣式,一般將元素的margin和padding設(shè)置為0來(lái)覆蓋瀏覽器自帶樣式触幼。但是這種辦法比較粗暴和粗糙硼瓣,所以應(yīng)運(yùn)而生了,reset.css方法置谦,解決這個(gè)問(wèn)題堂鲤。其實(shí)本質(zhì)也就是,引入兼容不同瀏覽器的css代碼媒峡。

盒屬性

文檔的每個(gè)元素被構(gòu)造成文檔布局內(nèi)的一個(gè)矩形盒子瘟栖,盒子每層的大小都可以使用一些特定的CSS屬性調(diào)整。


CSS屬性圖解

標(biāo)準(zhǔn)盒模型和怪異盒模型

??標(biāo)準(zhǔn)盒模型很好理解谅阿,那就是業(yè)界統(tǒng)一遵循的一個(gè)規(guī)范化的盒模型半哟,也被稱作W3C標(biāo)準(zhǔn)模型。但是時(shí)代的發(fā)展中總會(huì)有不一樣的聲音签餐,不管其發(fā)聲目的是什么寓涨,他至少給了業(yè)界不一樣的景色。怪異盒模型就出自老大哥——微軟贱田,顧名思義就是不標(biāo)準(zhǔn)的盒模型缅茉,也被稱作IE標(biāo)準(zhǔn)模型或怪異盒模型。他們的區(qū)別就在于對(duì)于widthheight的計(jì)算規(guī)則男摧。

  • 在一個(gè)標(biāo)準(zhǔn)盒模型里蔬墩,盒子總寬度 = width + padding(左右) + border(左右) + margin(左右)
  • 在一個(gè)IE標(biāo)準(zhǔn)盒模型里,盒子總寬度 = width + margin(左右) (即width已經(jīng)包含了padding和border值)

這樣就會(huì)造成一個(gè)問(wèn)題耗拓,對(duì)于一個(gè)給定width的div拇颅,如果是IE盒模型,那么增加/減少padding值乔询,div的內(nèi)容區(qū)域(content)的寬度是會(huì)受到牽連影響的樟插。
??那么如何區(qū)分是哪種盒模型呢?一般來(lái)說(shuō)竿刁,除IE外黄锤,其余的瀏覽器都默認(rèn)是W3C標(biāo)準(zhǔn)盒模型,同時(shí)css里的box-sizing屬性可以顯示的指明盒模型的類型食拜。

box-sizing: content-box || border-box || inherit;

其中conten-box表示是W3C標(biāo)準(zhǔn)盒模型鸵熟,border-box表示是IE標(biāo)準(zhǔn)盒模型。

width和height

? ?widthheight設(shè)置內(nèi)容盒(content box)的寬度和高度负甸。內(nèi)容盒是盒內(nèi)容顯示的區(qū)域——包括盒內(nèi)的文本內(nèi)容流强,以及表示嵌套子元素的其他盒痹届。

注意:還有其它屬性可以更巧妙地處理內(nèi)容地大小——設(shè)置大小約束而不是絕對(duì)地大小。這些屬性包括min-width打月、max-width队腐、min-heightmax-height

padding

? ?padding表示一個(gè)CSS盒子的內(nèi)邊距——這一層位于內(nèi)容盒的外邊緣與邊框的內(nèi)邊緣之間奏篙。padding屬性接受長(zhǎng)度值或百分比值柴淘,但不允許使用負(fù)值。其中百分?jǐn)?shù)值是相對(duì)于父元素的width計(jì)算的报破,要是父元素的width改變悠就,他們也會(huì)改變千绪。該層的大小可以通過(guò)簡(jiǎn)寫(xiě)屬性padding一次設(shè)置所有四個(gè)邊充易,或用padding-toppadding-right荸型、padding-bottompadding-left屬性一次設(shè)置一個(gè)邊盹靴。

border

? ?CSS框的邊框(border)是一個(gè)分隔層,位于內(nèi)邊距的外邊緣以及外邊距的內(nèi)邊緣之間瑞妇。邊界的默認(rèn)大小為0——從而讓他不可見(jiàn)稿静。不過(guò)我們可以設(shè)置邊界的寬度、樣式和顏色讓他出現(xiàn)辕狰。border簡(jiǎn)寫(xiě)屬性可以讓我們一次設(shè)置所有四個(gè)邊改备,例如border:1px solid black; 但這個(gè)簡(jiǎn)寫(xiě)可以被各種普通書(shū)寫(xiě)的更詳細(xì)的屬性所覆蓋:

  • border-top,border-right,border-bottom,border-left:分別設(shè)置某一邊的邊界厚度/風(fēng)格/顏色。
  • border-width蔓倍、border-style悬钳、border-color:分別僅設(shè)置邊界的寬度/顏色/顏色,并應(yīng)用到全部四邊邊界偶翅。
  • 你也可以單獨(dú)設(shè)置某一個(gè)邊的三個(gè)不同屬性默勾,如border-top-widthborder-top-style聚谁,border-top-color母剥,等。
    ? ?這里有一個(gè)css技巧形导,那就是可以通過(guò)border畫(huà)出三角形环疼,當(dāng)我們需要對(duì)話框上的三角形符號(hào)的時(shí)。

margin

外邊距(margin)代表CSS周圍的外部區(qū)域朵耕,稱為外邊距炫隶,他在布局中推開(kāi)其他CSS框爱榔。其表現(xiàn)與padding很相似慨默;簡(jiǎn)寫(xiě)屬性為margin胰柑,單個(gè)屬性分別為margin-top,margin-right,margin-bottom,margin-left

注意:外邊距有一個(gè)特別的行為被稱作外邊距塌陷(margin collapsing):當(dāng)兩個(gè)框彼此接觸時(shí)低缩,他們的間距將取兩個(gè)相鄰?fù)膺吔绲淖畲笾担皇莾烧叩目偤汀?/p>

當(dāng)margin值取auto時(shí)畜挥,表示外邊距的值由瀏覽器計(jì)算男图。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市筹误,隨后出現(xiàn)的幾起案子桐早,更是在濱河造成了極大的恐慌,老刑警劉巖厨剪,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哄酝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡祷膳,警方通過(guò)查閱死者的電腦和手機(jī)陶衅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)直晨,“玉大人搀军,你說(shuō)我怎么就攤上這事∮禄剩” “怎么了罩句?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)敛摘。 經(jīng)常有香客問(wèn)我门烂,道長(zhǎng),這世上最難降的妖魔是什么兄淫? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任屯远,我火速辦了婚禮,結(jié)果婚禮上拖叙,老公的妹妹穿的比我還像新娘氓润。我一直安慰自己,他們只是感情好薯鳍,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布咖气。 她就那樣靜靜地躺著,像睡著了一般挖滤。 火紅的嫁衣襯著肌膚如雪崩溪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天斩松,我揣著相機(jī)與錄音伶唯,去河邊找鬼。 笑死惧盹,一個(gè)胖子當(dāng)著我的面吹牛乳幸,可吹牛的內(nèi)容都是我干的瞪讼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼粹断,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼符欠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起瓶埋,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤希柿,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后养筒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體曾撤,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年晕粪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挤悉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡兵多,死狀恐怖尖啡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剩膘,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布盆顾,位于F島的核電站怠褐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏您宪。R本人自食惡果不足惜奈懒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宪巨。 院中可真熱鬧磷杏,春花似錦、人聲如沸捏卓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)怠晴。三九已至遥金,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蒜田,已是汗流浹背稿械。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冲粤,地道東北人美莫。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓页眯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親厢呵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子餐茵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評(píng)論 1 92
  • 各種純css圖標(biāo) CSS3可以實(shí)現(xiàn)很多漂亮的圖形述吸,我收集了32種圖形忿族,在下面列出。直接用CSS3畫(huà)出這些圖形蝌矛,要比...
    劍殘閱讀 9,506評(píng)論 0 8
  • CSS 框模型 (Box Model) 規(guī)定了元素框處理元素內(nèi)容道批、內(nèi)邊距、邊框和 外邊距的方式入撒。 內(nèi)邊距隆豹、邊框和外...
    五秋木閱讀 326評(píng)論 0 0
  • 1. 前言 前端圈有個(gè)“梗”:在面試時(shí)茅逮,問(wèn)個(gè)css的position屬性能刷掉一半人璃赡,其中不乏工作四五年的同學(xué)。在...
    YjWorld閱讀 4,428評(píng)論 5 15
  • HTML献雅、XML碉考、XHTML 有什么區(qū)別?HTML:超文本標(biāo)記語(yǔ)言挺身,用于創(chuàng)建web的標(biāo)準(zhǔn)語(yǔ)言侯谁。XML :可擴(kuò)展標(biāo)記...
    邵志遠(yuǎn)閱讀 181評(píng)論 0 0