成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

IE6與W3C標(biāo)準(zhǔn)的盒模型差異

開發(fā) 前端
盒子模型(Box Model)是 CSS 的核心,現(xiàn)代 Web 布局設(shè)計(jì)簡單說就是一堆盒子的排列與嵌套,掌握了盒子模型與它們的擺放控制,會(huì)發(fā)現(xiàn)再復(fù)雜的頁面也不過如此,然而,任何美好的事物都有缺憾,盒子模型有兩種不同的詮釋,一種來自 IE6,一種來自 W3C 標(biāo)準(zhǔn)瀏覽器。

盒子模型(Box Model)是 CSS 的核心,現(xiàn)代 Web 布局設(shè)計(jì)簡單說就是一堆盒子的排列與嵌套,掌握了盒子模型與它們的擺放控制,會(huì)發(fā)現(xiàn)再復(fù)雜的頁面也不過如此,然而,任何美好的事物都有缺憾,盒子模型有兩種不同的詮釋,一種來自 IE6,一種來自 W3C 標(biāo)準(zhǔn)瀏覽器。

盒子模型

下圖就是一個(gè)典型的盒子模型示意圖

在內(nèi)容區(qū)外面,依次圍繞著 padding 區(qū),border 區(qū),margin 區(qū),這一模型結(jié)構(gòu)在所有主流瀏覽器都是一致的。通過盒子模型,我們可以為我們的內(nèi)容設(shè)置邊界,留白以及邊距,盒子模型最典型的應(yīng)用是這樣:我們有一段內(nèi)容,可以為這段內(nèi)容設(shè)置一個(gè)邊框,為了讓內(nèi)容不至于緊挨著邊框,可以設(shè)置 padding ,為了讓這個(gè)盒子不至于和別的盒子靠得太緊,可以設(shè)置 margin。

到目前為止,一切都很***,直到當(dāng)我們想為這個(gè)盒子設(shè)置一個(gè)尺寸的時(shí)候。

IE6 和 W3C 標(biāo)準(zhǔn)瀏覽器對(duì)盒子模型的不同詮釋

當(dāng)我們?cè)噲D為一個(gè)盒子設(shè)置尺寸的時(shí)候,問題出現(xiàn)了。IE6 和 W3C 標(biāo)準(zhǔn)瀏覽器對(duì)盒子模型有不同的解釋,這個(gè)不同解釋表現(xiàn)在盒子的尺寸上,下圖是兩種類型的瀏覽器對(duì)盒子尺寸的不同解釋示意圖:

可以看出,IE6 盒子模型中,盒子的尺寸包含了 內(nèi)容區(qū),padding, border 和 margin 這四個(gè)部分,而 W3C 的盒子模型中,盒子的尺寸只包含內(nèi)容區(qū),padding,border 和 margin 被排除在盒子尺寸之外。

為什么IE6 的盒子模型更合理

在現(xiàn)實(shí)世界中,我們描述一個(gè)物理盒子的時(shí)候,如果談到尺寸,是不會(huì)只計(jì)算其盛放的物體的尺寸的,我們還會(huì)算上空隙與盒體本身。拿集裝箱裝箱為例,我們有 100 只花瓶,每只花瓶用1個(gè)紙盒包裝,為了防止花瓶破碎,我們?cè)诨ㄆ恐車吓菽?,這相當(dāng)于 padding,紙盒的外圍紙板相當(dāng)于 border,在裝集裝箱的時(shí)候,為了防止紙盒之間相互碰撞,紙盒之間塞上稻草,這相當(dāng)于 margin,很顯然,我們向貨運(yùn)公司報(bào)告我們貨物尺寸的時(shí)候,是要將整個(gè)紙盒的尺寸,連同紙盒之間需要塞稻草的空隙都告訴他們的,倘若只報(bào)告花瓶的尺寸,貨運(yùn)公司是沒有辦法裝箱的。

再舉一個(gè)例子,假若我們有一面墻,要在上面掛10幅油畫,油畫是用相框裱糊的,相框的邊框相當(dāng)于 border,油畫和邊框之間的距離相當(dāng)于 padding,相框之間的間隔相當(dāng)于 margin,這個(gè)例子和 Web 布局設(shè)計(jì)已經(jīng)很接近了,對(duì)任何人來說,使用 IE6 的盒子模型,將整個(gè)相框,包括油畫當(dāng)做一個(gè)整體更容易布局,當(dāng)你知道了整個(gè)相框的尺寸后,不必再去考慮 padding, border, margin 這個(gè)因素的影響,每個(gè)相框就是一個(gè)整體,至于 padding, border 與 margin,這是瀏覽器自己事,不需要設(shè)計(jì)者去關(guān)心。

在具體的 Web 設(shè)計(jì)中

在具體 Web 設(shè)計(jì)中,尤其牽扯到復(fù)雜網(wǎng)格布局的時(shí)候,IE6 的盒子模型更容易控制,我們不妨看看以下幾個(gè)設(shè)計(jì)場(chǎng)景。

1.  面板式界面設(shè)計(jì)

頁面上包含幾個(gè)面板,比如一個(gè)登錄面板,一個(gè)***新聞面板,一個(gè)投票面板,這類設(shè)計(jì)典型的做法是,用背景圖的方式,首先逐個(gè)設(shè)計(jì)出這些面板的外觀圖,將需要用具體內(nèi)容替換的地方空著,這些面板,無非就是一些使用面板外觀圖片做背景圖的盒子,然后,在這些盒子里面,放上具體的內(nèi)容,使用 padding 控制內(nèi)容的擺放位置,使用 margin 調(diào)整面板本身的擺放位置,由于面板的尺寸是固定的,我們依此確立了盒子的尺寸之后,就無需再關(guān)心尺寸問題,然后,不論你怎樣調(diào)整 padding 和 margin,都不會(huì)影響面板本身的結(jié)構(gòu)。這是 IE6 盒子模型。

而在 W3C 的盒子模型中,調(diào)整 padding 和 margin ,都會(huì)影響盒子的尺寸,你在調(diào)整內(nèi)容擺放位置的同時(shí),極有可能打亂面板本身的結(jié)構(gòu)。

2. 百分比級(jí)尺寸 + 像素級(jí)邊界問題

W3C 盒子模型在設(shè)計(jì)中最讓人頭疼的是,假如你有一個(gè)不確定寬度的容器,想在里面放置兩個(gè)同樣大小的盒子,最合理的的做法當(dāng)時(shí)是設(shè)置每個(gè)盒子的寬度為 50%,這樣,不管你的容器寬度為多大,這兩個(gè)盒子總能自動(dòng)適應(yīng)這個(gè)寬度,然而,前提是你不要設(shè)置任何 padding 或 border,而,現(xiàn)實(shí)中,為了防止兩個(gè)盒子中的內(nèi)容互相挨得太近,你肯定要設(shè)置 padding,一旦設(shè)置了 padding,就會(huì)發(fā)現(xiàn)你的容器被撐破了。

當(dāng)然你會(huì)說,每個(gè)盒子的寬度不要設(shè)為 50%,可以設(shè)為 45%,然后為每個(gè)盒子再加一個(gè) 5% 的 padding,這是一個(gè)解決辦法,但我們?cè)谠O(shè)計(jì)中經(jīng)常有這樣的習(xí)慣,雖然一段內(nèi)容的寬度可能不確定,但我們總喜歡它擁有固定 padding,我們并不希望 padding 自動(dòng)適應(yīng),況且,在很多時(shí)候,我們希望為一個(gè)自適應(yīng)寬度的盒子,設(shè)置一個(gè) 1 像素的 border,在這種情形,W3C 盒子模型將陷入困境。

而遇到這種情形,IE6 盒子模型不需要任何周折,你只管將每個(gè)盒子的寬度設(shè)置為 50%,它們會(huì)自動(dòng)適應(yīng)容器的寬度,然后,不管你你怎樣設(shè)置 padding 和 border,都不會(huì)撐破你的容器。

W3C在盒子模型上迷途知返

雖然 W3C 永遠(yuǎn)都不會(huì)承認(rèn),但他們顯然意識(shí)到了這個(gè)問題,重新定義盒子模型是不可能了,所以,在 CSS3 中,我們看到了下面這個(gè)屬性:

box-sizing

box-sizing 有兩個(gè)可選值,一個(gè)是默認(rèn)的 content-box 一個(gè)是 border-box,選用后者,盒子模型將按 IE6 的方式進(jìn)行處理。

 

原文鏈接:http://blog.csdn.net/ncode/article/details/7428746

【編輯推薦】

  1. 全面兼容IE6/IE7/IE8/FF的CSS HACK寫法
  2. 分享用純CSS實(shí)現(xiàn)三列DIV等高布局的方法
  3. DIV+CSS的好處和意義
  4. 老Web前端設(shè)計(jì)者談對(duì)div絕對(duì)定位的心得
  5. ie6錯(cuò)位的幾種情況分析

 

責(zé)任編輯:林師授 來源: Study的博客
相關(guān)推薦

2021-05-20 15:11:59

鴻蒙HarmonyOS應(yīng)用

2010-09-28 09:38:22

DOM模型

2011-09-07 17:28:15

2021-01-28 15:25:11

W3CIETFWebRTC

2009-03-28 09:51:12

2009-04-03 09:06:00

瀏覽器W3C標(biāo)準(zhǔn)

2011-11-08 11:07:26

2009-03-21 10:19:43

微軟瀏覽器IE8

2016-07-19 17:20:32

W3C

2023-10-22 14:18:20

瀏覽器前端技術(shù)

2010-08-18 10:37:16

IE6IE7IE8

2010-09-15 11:08:48

CSSIE6IE7

2021-01-28 21:40:25

webRTC音視頻Web

2016-08-05 13:29:39

w3c流程css

2009-08-14 09:20:40

抵制IE6

2011-10-24 13:05:50

2010-09-15 16:48:51

IE8CSS hack

2010-05-23 10:11:01

Widget開發(fā)

2010-02-01 08:41:23

GoogleIE6

2025-05-29 09:34:39

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 中文字幕日韩欧美一区二区三区 | 国产一区二区精品在线 | 人人鲁人人莫人人爱精品 | 欧美黄色一区 | 久草资源网站 | 成人高清在线 | 国产成人精品久久二区二区 | 中文字幕在线观看第一页 | 一区二区三区国产 | 国产成人精品一区二 | aacc678成免费人电影网站 | 日韩免费 | 中文字幕一区二区三区精彩视频 | 国产午夜av片 | 91社区在线高清 | 国产精品亚洲第一区在线暖暖韩国 | 欧美中文一区 | 精品久久精品 | 亚洲视频一区 | 欧美成人hd | 亚洲一区二区三区欧美 | 成人性生交a做片 | 九九色综合 | www.国产日本 | 亚洲区一区二 | 成人精品毛片 | 日日操夜夜操天天操 | 男女羞羞的网站 | 日韩一区二区在线视频 | 国产精品久久久久久久久图文区 | 精品毛片| 午夜视频在线观看一区二区 | 特黄视频| 69精品久久久久久 | 国产在线一区二区三区 | 99久久国产免费 | 国产一区二区中文字幕 | 久久国产精品色av免费观看 | 中文字幕电影在线观看 | 在线观看欧美日韩视频 | 久久亚洲欧美日韩精品专区 |