今天写程序做布局的时候,遇到关于css中盒式模型的问题,百度了下这属性的解释,脑大啊,文字太绕看不懂。怎么办,于是自己动动手写了段程序测试,嗯,不错,一看效果就恍然大明白了。这里简单说明下,也可能说得比较粗浅。不过希望可以帮到一些前端的朋友。
首先说下box-sizing的取值问题,box-sizing的可选值有三个,inheirt,content-box(标准盒式模型)和border-box(ie6等非标准浏览器的怪异盒式模型);
首先说第一个取值content-box,content-box是box-sizing的默认值。意思是:元素实际占用的空间宽度=我们设置的宽度(width)+边框+内间距。假设我们设置一个div的宽度为100px,如果再给这个div设置边框和间距内的话,边框和间距是向外扩展的。导致实际div的实际宽度大于100px。上代码和图一目了然。
首先定义一个宽和高为100px的div,设置box-sizing为content-box,背景为红色。为了突出显示我们把它放在一张蓝色背景上;
<div id="bx1" style="width:300px;height:300px;background:blue;"> <div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;box-sizing:content-box;"></div></div>
显示如下:
为了便于比较我们添加一个新的div,与上一个div的唯一区别就是增加了10px的黄色边框;
<div id="bx1" style="width:300px;height:300px;background:blue;"> <div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;box-sizing:content-box;"></div> <div id="bx3" style="width:100px;height:100px;background:red;margin:10px auto; box-sizing:content-box;border:10px solid yellow"></div></div>
结果如图:border是在div的外面扩展的。
我们在为新增加的div添加一个10像素的内边距,结果如图内边距也是向外扩展,为什么说内边距是向外扩展的,可以注意“hello”的位置。
#bx3{padding:10px;}
好吧,讲完一个属性了,现在开始另一个属性,border-box。修改原来的div的box-sizing为border-box。
border-box是向内扩展的。 如果设置box-sizing成了border-box,元素实际占用的空间的宽度就等于我们设置的宽度,如果设置边框和间距,边框和间距就向内扩展。原先的例子再走一遍吧。(请原谅我是强迫症患者而且我还追求完美)
<div id="bx1" style="width:300px;height:300px;background:blue;"> <div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;color:white;box-sizing:border-box;">hello</div></div>
没有边框和间距的初始图:
现在新增一个div用于对比,与原来的div的唯一区别就是多了10px宽的黄色的边框;
<div id="bx1" style="width:300px;height:300px;background:blue;"> <div id="bx2" style="width:100px;height:100px;background:red;margin:0px auto;color:white;box-sizing:border-box;">hello</div> <div id="bx3" style="width:100px;height:100px;background:red;margin:0px auto;color:white;box-sizing:border-box;border:10px solid yellow">hello</div></div>
结果如图:边框向内扩展
接着我们在为div添加10px的内边距;
#bx3{padding:10px;}
结果如图:内边距向内扩展,注意“hello”的位置。
我想到这里对这两个属性大家都和清楚了吧。
现在总结下,box-sizing取值有三个context-box,border-box和inherit,content-box是box-sizing的默认值,意思是元素实际占用的空间宽度=我们设置的宽度(width)+边框+内间距,我们设置div的宽度后,再加边框和间距,边框和间距是向外扩展的。border-box元素实际占用的空间的宽度就等于我们设置的宽度,如果设置边框和间距,边框和间距就向内扩展。至于inherit属性,应该大家都知道,它爹是什么属性,它就继承什么。
本来一件很小的事情,竟然?嗦这么久,最后请求这个世界原来完美主义者和强迫症患者,我们是无辜的

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

HTML適合初學者學習,因為它簡單易學且能快速看到成果。 1)HTML的學習曲線平緩,易於上手。 2)只需掌握基本標籤即可開始創建網頁。 3)靈活性高,可與CSS和JavaScript結合使用。 4)豐富的學習資源和現代工具支持學習過程。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

如何設計菜單中的虛線分割效果?在設計菜單時,菜名和價格的左右對齊通常不難實現,但中間的虛線或點如何...

網頁代碼編輯器中的HTML元素分析許多在線代碼編輯器允許用戶輸入HTML、CSS和JavaScript代碼。最近,有人提出了一...


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

Atom編輯器mac版下載
最受歡迎的的開源編輯器