搜尋
首頁web前端前端問答css盒模型是什麼

css盒模型是什麼

Apr 02, 2021 pm 05:26 PM
css盒模型

CSS3盒子模型是CSS技術所使用的一種思考模型,指在一個網頁文件中,每個元素都被呈現為一個矩形的盒子,描述了元素所佔空間的內容。 css有兩種盒子模型:W3C盒模型(標準盒模型)和IE盒模型(怪異盒模型)。

css盒模型是什麼

本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。

1、什麼是CSS盒模型

#CSS3盒模型就是CSS技術所使用的一種思維模型,指在一個網頁文檔中,每個元素都被呈現為一個矩形的盒子,描述了元素所佔空間的內容。

盒子模型,顧名思義,就是一個盒子。生活中的盒子,有長寬高,盒子本身也有厚度,可以用來裝東西。頁面上的盒子模型我們可以理解為,從盒子頂部俯視所得的一個平面圖,盒子裡裝的東西,相當於盒子模型的內容(content);東西與盒子之間的空隙,理解為盒子模型的內邊距(padding);盒子本身的厚度,就是盒子模型的邊框(border);盒子外與其他盒子之間的間隔,就是盒子的外邊距(margin)。

元素的外邊距(margin)、邊框(border)、內邊距(padding)、內容(content)就構成了CSS盒子模型。

css盒模型是什麼

圖1.盒模型示意圖

#2、IE盒模型與W3C盒子模型

    CSS盒模型分為IE盒模型(圖2)與W3C盒模型(圖3)。其實,IE盒模型是怪異模式(Quirks Mode)下的盒子模型,而W3C盒模型是標準模式(Standards Mode)下的盒子模型。

    IE6及其更高的版本,還有現在所有標準的瀏覽器都遵循的是W3C盒模型,IE6以下版本的瀏覽器遵循的是IE盒模型。

css盒模型是什麼

圖2. IE盒模型

css盒模型是什麼

#圖3.W3C盒子模型 

從上圖直觀的可以看出,IE盒模型的寬度或高度計算方式為:width/height = content padding border,W3C盒模型的寬度或高度計算方式為:width/height = content。

舉一個簡單的例子:一個div的寬度和高度為100px,內邊距為10px,邊框為5px,外邊距為30px。圖4為不同模型下顯示的結果,W3C盒模型下顯示的div所佔的總寬度和總高度(包括外邊距、邊框、內邊距、內容)為100 10 5 30 = 145px,IE盒模型下顯示的div所佔的總寬度和總高度(包括外邊距、邊框、內邊距、內容)為100 30 = 130px。很明顯的區別,如果元素的寬度(width)一定的情況下,W3C盒模型的寬度(width)不包括內邊距和邊框,IE盒模包括。

    程式碼如下:

<style>
  .content {background: #eee; height: auto;border: 1px solid blue;}
  .div {width: 100px;height: 100px;margin: 30px;padding: 10px;border: 5px solid blue;}
  .div-01 {background: orange;}
  .div-02 {background: yellow;box-sizing: border-box;}
</style>
<div>
  <div>div01</div>
  <div>div02</div>
</div>

頁面效果如下:

css盒模型是什麼

圖4. 區別

#3、CSS3屬性box-sizing

    如果計算一個盒子的長寬高,我們通常都是盒子本身的厚度加上盒子裡的空間大小,所在在IE盒模型和W3C盒模型,我們會覺得IE盒模型比較符合邏輯。 (學習影片分享:css影片教學

    不同的人有不同的習慣,所以CSS3新增了一個屬性box-sizing: content-box | border-box | inherit,預設值為content-box。如果值為content-box,那麼元素遵循的是W3C盒模型;如果值為border-box,則元素遵循的是IE盒模型;如果值為inherit,該屬性的值應該從父元素繼承。

4、關於盒子模型的使用

    有沒有人和我一樣,覺得屬性box-sizing真是個好東西,只需設定所有元素的該屬性為content-box或border-box,滿足自己的習慣。

css盒模型是什麼

虽说现在的浏览器都兼容该属性(如上图),还是得以防万一,在属性前最好暂时加-webkit-和-moz-前缀。

* {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}

    在上图,我们看到IE兼容属性box-sizing必须是8或者更高的版本,其他浏览器都可以自动升级,兼容性不担心,那如果是IE7、IE6或者更低的版本,怎么办?还有,如果我们不用该属性,那浏览器该选择哪种盒模型呢?

    其实,浏览器选择哪个盒模型,主要看浏览器处于标准模式(Standards Mode)还是怪异模式(Quirks Mode)。我们都记得声明吧,这是告诉浏览器选择哪个版本的HTML,后面一般有DTD的声明,如果有DTD的声明,浏览器就是处于标准模式;如果没有DTD声明或者HTML4一下的DTD声明,那浏览器按照自己的方式解析代码,处于怪异模式。

    处于标准模式的浏览器(IE浏览器版本必须是6或者6以上),会选择W3C盒模型解析代码;处于怪异模式的浏览器,则会按照自己的方式去解析代码,IE6以下则会是选择IE盒模型,其他现代的浏览器都是采用W3C盒模型。

    因为IE6以下版本的浏览器没有遵循Web标准,不论页面开头有没有DTD声明,它都是按照IE盒模型解析代码的。

更多编程相关知识,请访问:编程视频!!

以上是css盒模型是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
課程和ID選擇器之間的差異是什麼?課程和ID選擇器之間的差異是什麼?May 12, 2025 am 12:13 AM

classSelectorSareVersAtileAndReusable,whileIdSelectorSareEctorAreNiqueAndspecific.1)USECLASSSELECTORS(表示)forStylingmultilemtsswithsharedCharacteristics.2)UseIdSelectors.2)UseIdSelectors(eustotedBy#)

CSS IDS vs類:真正的差異CSS IDS vs類:真正的差異May 12, 2025 am 12:10 AM

IDSareuniqueIdentifiersForsingLelements,而LileclassesstyLemultiplelements.1)useidsforuniquelementsand andjavascripthooks.2)useclassesforporporporblesable,flexiblestylestylestylinglingactossmultiplelements。

CSS:如果我只使用課程怎麼辦?CSS:如果我只使用課程怎麼辦?May 12, 2025 am 12:09 AM

使用僅類選擇器可以提高代碼的重用性和可維護性,但需要管理類名和優先級。 1.提高重用性和靈活性,2.組合多個類創建複雜樣式,3.可能導致冗長類名和優先級問題,4.性能影響微小,5.遵循最佳實踐如簡潔命名和使用約定。

CSS中的ID和類選擇器:初學者指南CSS中的ID和類選擇器:初學者指南May 12, 2025 am 12:06 AM

ID和class選擇器在CSS中分別用於唯一和多元素的樣式設置。 1.ID選擇器(#)適用於單一元素,如特定導航菜單。 2.Class選擇器(.)用於多元素,如統一按鈕樣式。應謹慎使用ID,避免過度特異性,並優先使用class以提高樣式複用性和靈活性。

了解HTML5規範:關鍵目標和利益了解HTML5規範:關鍵目標和利益May 12, 2025 am 12:06 AM

HTML5的關鍵目標和優勢包括:1)增強網頁語義結構,2)改進多媒體支持,3)促進跨平台兼容性。這些目標帶來更好的可訪問性、更豐富的用戶體驗和更高效的開發流程。

HTML5的目標:網絡未來的開發人員指南HTML5的目標:網絡未來的開發人員指南May 11, 2025 am 12:14 AM

HTML5的目標是簡化開發過程、提升用戶體驗和確保網絡的動態性和可訪問性。 1)通過原生支持音視頻元素簡化多媒體內容的開發;2)引入語義元素如、等,提升內容結構和SEO友好性;3)通過應用緩存增強離線功能;4)使用元素提高頁面交互性;5)優化移動兼容性,支持響應式設計;6)改進表單功能,簡化驗證過程;7)提供性能優化工具如async和defer屬性。

HTML5:使用新功能和功能轉換網絡HTML5:使用新功能和功能轉換網絡May 11, 2025 am 12:12 AM

html5transformswebdevelopmentbyIntroducingSemanticlements,多種型,功能強大,功能性和表現性影響力圖。 1)semanticelementslike,,, andenhanceseoandAcccostibility.2)多層次andablawlyementsandablowemediaelementsandallawallawaldawallawaldawallawallawallawallawallawallawallawallallownallownallownallownallownallowembedembbeddingwithingwithingwithoutplugins iff inform

ID與CSS中的課程:全面比較ID與CSS中的課程:全面比較May 11, 2025 am 12:12 AM

TherealdifferencebetweenusinganIDversusaclassinCSSisthatIDsareuniqueandhavehigherspecificity,whileclassesarereusableandbetterforstylingmultipleelements.UseIDsforJavaScripthooksoruniqueelements,anduseclassesforstylingpurposes,especiallywhenapplyingsty

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中