摘要:前言前端頁面的構(gòu)建過程中,盒模型相關(guān)的概念會一直如影隨形,因此需要深刻地理解好盒模型。本文將從盒模型描述標(biāo)準(zhǔn)盒模型傳統(tǒng)盒模型屬性,常見問題。
【前言】前端頁面的構(gòu)建過程中,盒模型相關(guān)的概念會一直如影隨形,因此需要深刻地理解好盒模型。本文會先簡單描述一下盒模型,然后描述一些平常會遇到的注意點(diǎn)。
本文將從1、盒模型描述;2、W3C標(biāo)準(zhǔn)盒模型/IE傳統(tǒng)盒模型 ;3.box-sizing屬性;4,常見問題。
之前跟朋友一起打羽毛球的時候看到羽毛球場地,我X,這不就是傳說中的盒模型么,因此我還被他們調(diào)侃代碼中毒太深。首先,po一張圖。
眾所周知,羽毛球運(yùn)動中,雙打的安全區(qū)域是標(biāo)注的紅色線框內(nèi),單打的安全區(qū)域是標(biāo)注的黃色線框內(nèi),單雙打重疊的區(qū)域就是上面標(biāo)注的藍(lán)色框框了,一個羽毛球廠的邊界線就是最外層的白色框框,且各個羽毛球場中間總會留一些間隙,就是外層白色框框與邊界的距離。
將這些對比盒模型的話:
1.藍(lán)色框框就是我們?nèi)粘Kf的內(nèi)容框content,內(nèi)容只會在這個區(qū)域展示; 2.最外層的那個邊界線就是我們所說的border, 3.content和border中間的距離就是內(nèi)邊距padding 4.最外層的邊界線與旁邊的白邊的間距就是外邊距margin。
回歸到盒模型就如下圖所示:
1.W3C標(biāo)準(zhǔn)盒模型 如下圖如果設(shè)置
添加下面的css屬性,則在chrome下的預(yù)覽效果及l(fā)ayout是.box{
background-color: lightpink; width: 255px; height: 300px; border: 20px solid #f00; padding: 20px; margin: 20px; }
從上方可以看出來
內(nèi)盒尺寸(大?。?= width + padding + border 外盒尺寸(空間尺寸)= width + pading + border + margin 經(jīng)過計(jì)算可以得出: div的內(nèi)盒寬度 = width+ (padding + border )*2 = 335,內(nèi)盒外盒高度= height+ (padding + border)*2=380 div的外盒寬度 = width+ (padding + border +margin)*2 = 375,外盒外盒高度= height+ (padding + border + margin*2 =420 內(nèi)容區(qū)域content的寬度 = width = 255,content的高度= height=300
2.IE傳統(tǒng)盒模型 如果在ie下預(yù)覽及l(fā)ayout則是下面的效果
從上方可以看出來
內(nèi)盒尺寸(大?。?= width 外盒尺寸(空間尺寸)= winth + margin div的內(nèi)盒寬度 = width= 255,內(nèi)盒外盒高度= height= 300 div的內(nèi)盒高度 = height + margin= 255+ 20*2=295,內(nèi)盒外盒高度= 300+ margin= 300+ 20*2=340 內(nèi)容content的寬度 = 內(nèi)盒寬度- padding -border = 255- (20 + 20)*2 = 175,content的高度= 內(nèi)盒高度- padding -border =300- (40 + 10)*2 =220
【總結(jié)】
W3C標(biāo)準(zhǔn)盒模型: 內(nèi)盒尺寸(大?。?= width + padding + border 外盒尺寸(空間尺寸)= width + pading + border + margin IE傳統(tǒng)(IE6)盒模型 內(nèi)盒尺寸(大小) = width 外盒尺寸(空間尺寸)= winth + margin三、box-sizing屬性
【基礎(chǔ)概念】:以特定方式定義匹配某個區(qū)域的特定個元素【兼容性IE8+】
【屬性值】
content-box:寬度和高度分別用到元素的內(nèi)容框,即上方所示的W3C標(biāo)準(zhǔn)盒模型【默認(rèn)值】 border-box:寬度和高度分別用到元素的內(nèi)容框、內(nèi)邊距,邊框,即上方所示的IE傳統(tǒng)盒模型 inherit:繼承父元素的box-sizing屬性
【tpis】移動端,建議添加box-sizing:border-box值,因?yàn)槲覀冺撁婢植炕旧鲜前磪^(qū)域已經(jīng)布局好了,但是有的時候改變一個元素的邊距值,可能會導(dǎo)致鈣元素的大小變大直接元素下移,頁面錯亂。但是添加了box-sizing:border-box可以保證頁面整理布局不會亂。
四、常見問題1.margin重疊問題
塊級元素水平方向不會重疊,垂直方向可能會重疊(若重疊,邊距取較大的值;出現(xiàn)負(fù)值則取兩者差值的絕對值)
如下圖所示,若上面的元素設(shè)置margin:20px;下面的元素設(shè)置margin:10px。則兩個元素在垂直方向的margin會重疊且取相對大的值。
這里情況比較復(fù)雜,這里先簡單說下,會在一篇寫margin相關(guān)的文章詳細(xì)闡述下。
2.margin不生效
最多出現(xiàn)在firefox,或者受浮動及定位影響,可以考慮用padding代替。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/112410.html
摘要:作者將原素材文章進(jìn)行了新內(nèi)容的添加和重新排列,但是因?yàn)槲恼掳俣惹岸思夹g(shù)學(xué)院面向大學(xué)生的前端技術(shù)學(xué)習(xí)平臺前端掘金由百度創(chuàng)辦的免費(fèi)前端技術(shù)學(xué)習(xí)實(shí)踐交流分享平臺。簡直是前端黑科技巧使你的更加專業(yè)前端掘金一個幫你提升技巧的收藏集。 神器!解放你的雙手——UI 設(shè)計(jì)稿全自動切圖和標(biāo)注的一些工具推薦 - 前端 - 掘金原文收錄在我的 GitHub博客 (https://github.com/jaw...
摘要:比如表示上下左右都是像素塊元素居中的樣式,表示上下表示左右而表示上,左右,下。瀏覽器對塊元素的默認(rèn)樣式問題如下塊元素的盒模型樣式復(fù)合屬性寫法如果我們想給添加樣式,可以這樣寫為了精簡代碼,也可以采用如下的復(fù)合屬性寫法 學(xué)習(xí) HTML 和 CSS 將近一個月,我以為:層級(嵌套)關(guān)系和盒模型(Box Model)是理解和學(xué)習(xí)這兩門語言的基石,正如圖層概念是 Photoshop 的基礎(chǔ)。因此...
摘要:深入布局盒模型元素分類在知識體系中,除了選擇器,樣式屬性等基礎(chǔ)知識外,布局相關(guān)的知識才是比較核心和重要的點(diǎn)。從元素的布局特性來分,主要可以分為三類元素塊級元素,行內(nèi)元素,行內(nèi)塊級元素。行內(nèi)級元素屬性取的元素。? 深入css布局(1)—— 盒模型 & 元素分類 ? ? ? 在css知識體系中,除了css選擇器,樣式屬性等基礎(chǔ)知識外,css布局相關(guān)的知識才是css比較核心和重要的點(diǎn)。今天我們...
閱讀 1709·2023-04-25 18:27
閱讀 1474·2021-10-19 11:44
閱讀 641·2021-10-14 09:42
閱讀 2209·2021-10-11 10:59
閱讀 2846·2021-09-24 09:47
閱讀 1796·2019-08-30 14:20
閱讀 1222·2019-08-30 14:08
閱讀 795·2019-08-29 15:15