CSS 盒模型與box-sizing

一、盒模型

一個web頁面由許多html元素組成,而每一個html元素都可以表示為一個矩形的盒子,CSS盒模型正是描述這些矩形盒子的存在。

MDN的描述:

When laying out a document, the browser's rendering engine represents each element as a rectangular box according to the standard?CSS basic box model. CSS determines the size, position, and properties (color, background, border size, etc.) of these boxes.

Every box is composed of four parts (or?areas), defined by their respective edges: the?content edge,?padding edge,?border edge, and?margin edge.

CSS盒模型有四條邊:外邊距邊、邊框邊、內填充邊、內容邊(Content edge、Padding edge、Border edge和Margin edge),四條邊由內到外把它劃分為四個區域:內容區域、內邊距區域、邊框區域、外邊距區域(Content area、Padding area、Border area和Margin area)。

box_model

  • 內容區域(content area?)是包含元素真實內容的區域。
  • 內邊距區域(padding area)?延伸到包圍padding的邊框。如果content area設置了背景、顏色或者圖片,這些樣式將會延伸到padding上。
  • 邊框區域(border area?)是包含邊框的區域,擴展了內邊距區域。
  • 外邊距區域(margin area)用空白區域擴展邊框區域,以分開相鄰的元素。

通過CSS屬性(width、height、padding、border和margin)來控制它們的尺寸。

二、box-sizing(css3屬性)

1.box-sizing的值

1 /* 關鍵字 值 */
2 box-sizing: content-box;/*默認值*/
3 box-sizing: border-box;
4 
5 /* 全局 值 */
6 box-sizing: inherit;
7 box-sizing: initial;
8 box-sizing: unset;

2.box-sizing的作用

box-sizing的作用就是告訴瀏覽器,使用的盒模型是W3C盒模型,還是IE盒模型。

a.當 box-sizing 的值為 content-box(默認值) 時,其尺寸計算公式為:

width = content-width;
height = content-height;

b.當 box-sizing 的值為 border-box 時,其尺寸計算公式為:

width = content-width   padding-left   padding-right   border-left-width   border-right-width;
height = content-height   padding-top   padding-bottom   border-top-height   border-bottom-height;

無論取何值,盒子尺寸是一樣的,改變的是盒子的容量(盒子內部的width和height的計算方式)。

w3c_and_ie_box_model

補充:IE6、7為W3C盒模型。

3.對于box-sizing屬性值的選擇

在項目里,究竟該使用哪種盒模型?我也不知道啊

在MDN上有這樣一句話:

Some experts recommend that web developers should consider?routinely applying box-sizing: border-box?to all elements.

一些專家甚至建議所有的Web開發者們將所有的元素的 box-sizing 都設為 border-box。

Twitter的開源框架Bootstrap3就全局設置了box-sizing: border-box,由此可見IE盒模型的是比較受歡迎的。

補充:

W3C在CSS3中,加入了 calc() 函數。

CSS函數

calc()
可以用在任何一個需要
<length>
<frequency>
,?
<angle>
<time>
<number>
、或
<integer>
的地方。有了
calc(),
你就可以通過計算來決定一個CSS屬性的值了。

/* property: calc(expression) */
width: calc(100% - 80px);

使用 calc() 函數,我們可以在 content-box 里實現 border-box,相對的,在 border-box 里實現 content-box?也是可以的。

本文轉載于:猿2048?https://www.mk2048.com/blog/blog.php?id=hij20jaa&title=CSS 盒模型與box-sizing

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370224.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370224.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370224.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java課程設計 購物車系統(個人博客) 201521123052 藍錦明

1. 團隊課程設計博客鏈接 課程設計團隊博客 2. 個人負責模塊或任務說明 &#xff08;1&#xff09;制作圖形菜單引導界面 &#xff08;2&#xff09;定義各獲取和輸出類函數 3. 自己的代碼提交記錄截圖 4. 自己負責模塊或任務詳細說明 import java.text.NumberFormat; public c…

7-12(圖) 社交網絡圖中結點的“重要性”計算(30 分)

在社交網絡中&#xff0c;個人或單位&#xff08;結點&#xff09;之間通過某些關系&#xff08;邊&#xff09;聯系起來。他們受到這些關系的影響&#xff0c;這種影響可以理解為網絡中相互連接的結點之間蔓延的一種相互作用&#xff0c;可以增強也可以減弱。而結點根據其所處…

linux系統的安裝程序,Linux系統安裝

為了不影響本機系統&#xff0c;建議在虛擬機上創建并安裝Linux系統&#xff0c;本次安裝centos7 64位的鏡像。詳細步驟如下&#xff1a;1、首先在虛擬機主頁創建新的虛擬機。... 圖1.1 2、選擇自定義安裝&#xff0c;這樣方便我們更好了解虛擬機&#xff0c;然后點擊下一步。.…

REST與Apache Camel

在Camel中公開HTTP終結點的方法有很多&#xff1a;jetty&#xff0c;tomcat&#xff0c;servlet&#xff0c;cxfrs和restlet。 其中的兩個組件– cxfrs和restlet也只需幾行代碼即可支持REST語義。 這個簡單的示例演示了如何使用camel-restlet和camel-jdbc進行CRUD操作。 四個HT…

百米路由器2登陸地址_騰達無線路由器怎么安裝,真的不錯

騰達無線路由器怎么安裝1、WAN口連接寬帶進線(即網絡公司進來的線或貓出來的線&#xff0c;一般顏色不一樣)、LAN口連接局域網內的電腦。2、設置所連接電腦的IP地址。右鍵點擊網上鄰居屬性3、右鍵點擊本地連接屬性4、選擇Internet協議TCP/IP屬性5、點擊選擇自動獲得IP地址和自動…

input點擊鏈接另一個頁面,各種操作。

1.鏈接到某頁<input type"button" name"Submit" value"確 定" class"btn" οnclick"location.hreffilename.html" />2.返回(等同后退)<input name"Submit2" type"button" class"btn"…

80. Remove Duplicates from Sorted Array II

題目描述 Follow up for “Remove Duplicates”: What if duplicates are allowed at most twice? For example, Given sorted array nums [1,1,1,2,2,3], Your function should return length 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn…

JavaFX 2 XYCharts和Java 7功能

我最喜歡的JavaFX 2功能之一是它在javafx.scene.chart包中提供的標準圖表。 該軟件包提供了幾種不同類型的現成圖表。 除了其中之一&#xff08; PieChart &#xff09;以外&#xff0c;所有其他都是“ 2軸圖”&#xff08; XYChart的特定實現&#xff09;。 在本文中&#xff…

前端基礎-HTML的的標簽詳解

閱讀目錄 一、head內常用標簽二、 HTML語義化三、 字符實體四、 h系列標簽五、 p標簽六、 img標簽七、 a標簽八、 列表標簽九、 table標簽十、 form標簽 一、 head內常用標簽 1、meta相關 #1、指定字符集<meta charset"gbk">#2、頁面描述<meta name"…

new失敗跟蹤函數_WinDbg預覽時間線:調試器中的時間線可以允許用戶記錄跟蹤

時間旅行調試(TTD)允許用戶記錄跟蹤&#xff0c;這些跟蹤是對程序執行的記錄。時間線是執行過程中發生的事件的直觀表示&#xff0c;這些事件可以是包括斷點&#xff0c;內存讀/寫&#xff0c;函數調用和返回以及異常。使用時間線窗口可以快速查看重要事件&#xff0c;了解相對…

linux 進程的執行時間,Linux 獲取進程執行時間

Linux 獲取進程執行時間1 前言測試一個程序的執行時間, 時間包括用戶 CPU 時間系統 CPU 時間時鐘時間之前獲取之前時間都是在程序的 main 函數用 time 函數實現, 這個只能粗略的計算程序的執行時間, 不能準確的獲取其他時間在看 APUE 時, 書中有關程序時間測試程序, 非常正規, …

Java環境變量的設置

1.計算機->屬性->高級系統設置->環境變量 2.設置JAVA_HOME和path&#xff0c;1.5之后的JDK可以不設置classpath 3.JAVA_HOME的路徑是JDK的安裝路徑 4.在系統變量里面找到path&#xff0c;然后點擊修改&#xff0c;在最后面添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 5…

merge

merge語句具有按條件獲取要更新或插入到表中的數據行&#xff0c;然后從1個或多個源頭對表進行更新或向表中插入行兩方面的能力。經常用在數據倉庫中移動大量數據。 語法: merge<hint> into<table_name> using<table_view_or_query> on<condition> whe…

可以優化同步嗎?

總覽 有一個常見的誤解&#xff0c;因為JIT很智能&#xff0c;并且可以消除對象的同步&#xff0c;而該對象僅存在于不影響性能的方法中。 比較StringBuffer和StringBuilder的測試 這兩個類基本上做相同的事情&#xff0c;除了一個是同步的&#xff08;StringBuffer&#xff0…

perl exe執行提示缺少文件解決方法

在項目開發中&#xff0c;使用perl語言編譯的exe可執行文件;在項目中使用了XML::LibXML模塊&#xff1b;發現exe在本機電腦執行正常&#xff0c;但在其他同事執行時卻提示缺少libxml2-2.dll等文件。 問題現象&#xff1a; 無法啟動此程序&#xff0c;因為計算機中丟失libxml2-2…

華為搶購助手_華為榮耀20系列手機采用的五項新科技,科普簡介

5月底榮耀20系列在上海發布&#xff0c;榮耀20系列旗艦手機擁有五項榮耀自主研發的新科技&#xff0c;包括LinkTurbo網絡聚合加速、超級NFC、方舟編譯器、人性化YOYO智慧生命體&#xff0c;超級藍牙。下面分別介紹一下這五項新科技。LinkTurbo網絡聚合加速先來科普一下LinkTurb…

Flex彈性布局

1 Flex: 彈性布局 (轉) 任何一個容器都可以指定為 Flex 布局。 1 .box {2  display: flex;3 } 行內元素也可以使用 Flex 布局。 1 .box{2 display: inline-flex;3 } 注意&#xff0c;設為 Flex 布局以后&#xff0c;子元素的 float、 clear 和 vertical-align 屬性將失效…

洛谷P3045 [USACO12FEB]牛券Cow Coupons

P3045 [USACO12FEB]牛券Cow Coupons 71通過248提交題目提供者洛谷OnlineJudge標簽USACO2012云端難度提高/省選-時空限制1s / 128MB提交 討論 題解 最新討論更多討論 86分求救題目描述 Farmer John needs new cows! There are N cows for sale (1 < N < 50,000), and …

python數據挖掘電影評分分析_Pyhon數據分析項目——男女電影評分差異比較

《用Python玩轉數據》數據分析項目一、程序功能基于MovieLens100k數據集中男性女性對電影的評分來判斷男性還是女性電影評分的差異性更大。二、數據來源數據集下載&#xff1a;http://files.grouplens.org/datasets/movielens/ml-100k.zip數據含義&#xff1a;u.data表示100k條…

發掘Apache Camel的力量

最近幾年&#xff0c;ESB軟件越來越受歡迎。 如果大多數人通常知道什么是ESB&#xff0c;那么他們很少會清楚地了解這種體系結構的不同組件的確切作用。 例如&#xff0c;Apache ServiceMix由三個主要組件組成&#xff1a;Apache Karaf&#xff08;OSGI容器&#xff09;&#…