CSS box-sizing
box-sizing屬性規定元素應用何種盒模型規則。
盒模型型別的不同決定了計算元素實際尺寸的規則。
很久之前就存在兩種盒模型規則:
(1).符合W3C標準的盒模型。
(2).怪異模式盒模型。
當前上述兩種盒模型都符合W3C標準,可以通過box-sizing屬性切換。
語法結構:
[CSS] 純文字檢視 複製程式碼box-sizing :content-box || border-box || inherit
下面通過程式碼例項詳細分析一下各個屬性值的功能。
一.content-box:
此屬性值規定採用標準盒模型,也是此屬性的預設值。
圖示如下:
下面結合上述圖示分析如下:
(1).此屬性值規定採用標準盒模型,也是box-sizing屬性的預設值。
(2).此時,width與height屬性值僅包括內容的寬與高,不包括內邊距和邊框。
二.border-box:
此屬性值規定採用怪異模式盒模型。
圖示如下:
下面結合上述圖示分析如下:
(1).此屬性值規定採用怪異盒模型。
(2).此時,width與height屬性值不僅包括內容的寬與高,而且還包括內邊距和邊框。
三.程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #ant{ box-sizing:content-box; width:50px; height:50px; padding:5px; border:10px solid red; text-align:center; } </style> <script> window.onload = () => { let odiv=document.getElementById("ant"); odiv.innerHTML=odiv.offsetWidth; } </script> </head> <body> <div id="ant"></div> </body> </html>
程式碼執行效果截圖如下:
程式碼分析如下:
(1).offsetWidth屬性可以返回元素的實際寬度(不包括margin)。
(2).box-sizing屬性值設定為content-box,也就是採用標準盒模型。
(3).width屬性值僅包括內容區域,所以實際寬度=width+padding+border。
關於offsetWidth可以參閱JavaScript offsetWidth一章節。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #ant{ box-sizing:border-box; width:150px; height:50px; padding:5px; border:10px solid green; text-align:center; } </style> <script> window.onload = () => { let odiv=document.getElementById("ant"); odiv.innerHTML=odiv.offsetWidth; } </script> </head> <body> <div id="ant"></div> </body> </html>
程式碼執行效果截圖如下:
程式碼分析如下:
(1).兩端程式碼唯一的不同之處在於box-sizing屬性值的不同。
(2).所以,width屬性值150px,涵蓋邊框、內邊距和content內容區域的寬度,height也是如此。
(3).那麼這個150px就是元素的實際寬度。
相關文章
- CSS3 box-sizingCSSS3
- CSS3乾貨21:box-sizingCSSS3
- css box-sizing屬性值詳解(MDN)CSS
- 強大的CSS: box-sizing與background-clip,解決背景顯示範圍的問題CSS
- 舉例說明如何從html元素繼承box-sizing?HTML繼承
- box-sizing常用的屬性有哪些?分別有什麼作用?
- css 命名:BEM, scoped css, css modules 與 css-in-jsCSSJS
- 【CSS】CSS常用技巧CSS
- CSS速刷 - CSS效果CSS
- css43 CSS SpecificityCSS
- css15 CSS MarginsCSS
- css16 CSS PaddingCSSpadding
- CSS——CSS基礎(1)CSS
- CSS——CSS 值和單位CSS
- CSS速刷 - CSS動畫CSS動畫
- css34 CSS Opacity / TransparencyCSSS3
- css38 CSS Image SpritesCSSS3
- css44 CSS The !important RuleCSSImport
- css45 CSS Math FunctionsCSSFunction
- css23 CSS Links, CursorsCSS
- css11 CSS RGB ColorsCSS
- css12 CSS HEX ColorsCSS
- css17 CSS Height, WidthCSS
- css18 CSS Box ModelCSS
- 【CSS】CSS簡介,CSS基礎選擇器詳解CSS
- CSSCSS
- CSS中的“大白”——CSS 動畫CSS動畫
- CSS——CSS 結構和層疊CSS
- css26 CSS Layout - The display PropertyCSS
- WebRTC與CSS濾鏡(CSS filter)WebCSSFilter
- CSS系列 (03):CSS三大特性CSS
- Css規範整理:2、css盒模型CSS模型
- CSS基礎:CSS變數簡介CSS變數
- CSS flexCSSFlex
- CSS E:not()CSS
- CSS !importantCSSImport
- CSS @importCSSImport
- CSS calc()CSS