css3 Box model 與 Box-sizing

来源:http://www.cnblogs.com/wangchunlin/archive/2017/04/28/6776413.html
-Advertisement-
Play Games

1、Box Model(盒模型) CSS中的Box Model分為兩種:第一種是W3C的標準模型,另一種是IE的傳統模型。它們的相同之處是對元素的width、height、padding、border、margin以及元素實際尺寸的計算關係,而它們的不同之處則是兩者的計算方法不一致。 1)、W3C的 ...


1、Box Model(盒模型)

  CSS中的Box Model分為兩種:第一種是W3C的標準模型,另一種是IE的傳統模型。它們的相同之處是對元素的width、height、padding、border、margin以及元素實際尺寸的計算關係,而它們的不同之處則是兩者的計算方法不一致。

  1)、W3C的標準Box Model:

/*外盒尺寸計算(元素空間尺寸)*/
Element空間高度 = content height + padding + border + margin
Element空間寬度 = content weight + padding + border + margin
/*內盒尺寸計算(元素大小)*/
Element Height = content height + padding + border
Element Weight = content weight + padding + border

  2)、IE傳統下的Box Model(IE6以下,不含IE6版本)

    

/*外盒尺寸計算(元素空間尺寸)*/
Element空間高度 = Content Height + margin(Height包含了元素內容高度、邊框高度、內邊距高度)
Element空間寬度 = Content Weight + margin(Height包含了元素內容寬度、邊框寬度、內邊距寬度)
/*內盒尺寸計算(元素大小)*/
Element Height = content Height(Height包含了元素內容高度、邊框高度、內邊框高度)
Element Weight = content Weight(Weight包含了元素內容寬度、邊框寬度、內邊框寬度)

  目前瀏覽器大部分元素都是基於W3C標準的Box Model,但對於form中的部分元素還是基於傳統的Box Model上,比如:input中的submit、reset、button和select等元素,這樣,如果我們給其設置border和padding,它也只會向內延伸。

2、Box-sizing : content-box | border-box | inherit

  1)、content-box:此值為其預設值,其讓元素維持W3C標準的Box Model展示,也就是說元素的寬度(weight)和高度(height)等於元素邊框(border)加上 元素的內邊距(padding) 加上 元素內容的寬度(content width)或高度(content height)

  2)、border-box:此值讓元素維持IE傳統的Box Model(IE6以下版本)展示,也就是說元素的寬度(weight)和高度(height)等於元素內容的寬度(content weight)和高度(content height)。這裡的content width和content height包含了元素的border、padding、content width和content height

  box-sizing現在的瀏覽器都支持,但IE家庭里只有IE8以上版本才支持,雖然現代的瀏覽器都支持,但有些瀏覽器還是需要加上自己的首碼,Mozilla需要加上 -moz-,Webkit內核需要加上-webkit-,Presto內核需要加上-0-,IE8需要加上-ms-,所以box-sizing相容瀏覽器時需要加上各自的首碼。

/*Content box*/
Element {
  -moz-box-sizing:content-box;
  -webkit-box-sizing:content-box;
  -o-box-sizing:content-box;
  -ms-box-sizing:content-box;
  box-sizing:content-box;          
}
/*Border box*/
Element {
 -moz-box-sizing:border-box;
 -webkit-box-sizing:border-box;
 -o-box-sizing:border-box;
 -ms-box-sizing:border-box;
 box-sizing:border-box;                  
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 收錄待用,修改轉載已取得 "騰訊雲" 授權 作者 | 殷源 編輯 | 迷鹿 殷源,專註移動客戶端開發,微軟Imagine Cup中國區特等獎獲得者,現就職於騰訊。 JavaScript越來越多地出現在我們客戶端開發的視野中,從ReactNative到JSpatch,JavaScript與客戶端相結合 ...
  • Bootstrap是HTML、CSS 和 JS 框架,用於開發響應式佈局、移動設備優先的 WEB 項目。 可以自動適配任何設備,解決了響應式實現的繁瑣問題,可以修改其中的各種樣式,同樣,其內部功能的強大包含了整個HTML,CSS,JS的各個方面。 通過Bootstrap製作的網站,極大地節省了代碼, ...
  • 函數是JavaScript 中最有趣的部分之一。它們本質上是十分簡單和過程化的,但也可以是非常複雜和動態的。一些額外的功能可以通過使用閉包來實現。此外,由於所有的函數都是對象,所以使用函數指針非常簡單。這些令JavaScript 函數不僅有趣而且強大。以下幾節描繪了幾種在JavaScript 中使用 ...
  • 看了下,距離上次發帖都是去年10月份的事,忙於工作的我很少跑博客園裡面來玩了。 做這個小網站的初衷是 https://tinypng.com/ 這個網站有時候訪問很慢,然後自己去研究了下圖片壓縮。 網上有看到 https://tinypng.com/ 中使用的 pngquant , 我去下載了png ...
  • NodeJs版本:4.4.4 fs 文件系統模塊是一個封裝了標準的 POSIX 文件 I/O 操作的集合。Node.js 文件系統(fs 模塊)模塊中的方法均有非同步和同步版本。 圖片的複製與粘貼 創建一個可讀流與一個寫入流。通過管道 。 讀文件(fs.readFile) 定義:fs.readFile ...
  • 任務四:定位和居中問題 任務目標 實踐HTML/CSS佈局方式 深入瞭解position等CSS屬性 任務描述 實現如 示例圖(點擊打開) 的效果 灰色元素水平垂直居中,有兩個四分之一圓位於其左上角和右下角。 任務註意事項 思考不同情況下(如灰色高度是根據內容動態變化的)水平垂直居中的解決方案。 動 ...
  • 前段時間遇到一個問題,前端想實現圖片上傳預覽(不經過後端PHP或JAVA處理),用戶點擊file按鈕上傳文件,點擊確定馬上就能看到預覽的效果,但在實現的時候無論怎樣都取不到file上圖片的真實路徑,得到的反而是C:\fakepath\a.jpg,這個路徑是錯誤的。百度之後得到說瀏覽器基於保護用戶的相 ...
  • String 類 Attribute and methodanchor() 創建一個<a>標簽的實例,將其name屬性設置為被傳遞給此方法的字元串big() 將字元串轉換為<big>標簽的一個實例blink() 將字元串轉換為<blink>標簽的一個實例bold() 將字元串轉換為<bold>標簽的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...