`

box-sizing属性笔录

    博客分类:
  • CSS
CSS 
阅读更多

【引文】 

box-sizing属性是CSS3中引入的,有人解释为它可以指定用width属性与height属性分别指定的宽度值与高度值是否包含元素内部的补白区域,以及边框的宽度与高度

【通俗理解】

它是一种容器高宽的计算方法,通过指定容器的盒子模型类型,达到不同的展示效果

【解析】

先来理解下box-sizing属性border-box,content-box,也就是常说的正常盒模型与异常盒模型

(1)正常盒模型

      正常盒模型,是指块元素box-sizing属性为content-box的盒模型。一般在现代浏览器中使用的都是正常盒模型content-box,它也是标准 w3c 盒子模型

      正常盒模型是指:盒模型的大小包括content,padding,border,并且先做content

      正常盒模型的大小会以内容优先自动扩展,内部子元素超过父元素给定的大小,会将父元素撑大

(2)怪异盒模型

      怪异盒模型,是指块元素box-sizing属性为border-box的盒模型。一般在IE浏览器中默认为这种怪异盒模型,但是由于其自身的特殊性,手机页面中也有使用怪异盒模型

      怪异盒模型是先做盒。然后添加border,padding,最后做content。即保证盒模型优先,先做盒再放内容,不管内容是否放得下,一般手机上用的更多

      更通俗的说,怪异盒模型中,父元素的盒模型确定,子元素是无法撑开父元素的盒模型,只能在盒模型剩余空间展示

【选择】

那应该选择哪中盒子模型呢?

一般是“标准 w3c 盒子模型”

怎么样才算是选择了“标准 w3c 盒子模型”呢?

很简单,就是在网页的顶部加上 doctype 声明。假如不加 doctype 声明,那么各个浏览器会根据自己的行为去理解网页

即 ie 浏览器会采用 ie 盒子模型去解释你的盒子,而 ff 会采用标准 w3c 盒子模型解释你的盒子。所以网页在不同的浏览器中就显示的不一样了。

反之,假如加上了 doctype 声明,那么所有浏览器都会采用标准 w3c 盒子模型去解释你的盒子,网页就能在各个浏览器中显示一致了

 

【案例解析】

例如:当一个容器宽度定义为 width:100%;  之后,如果再增加 padding 或者 border 则会溢出父容器,是向外扩张的

 

 

如果使用该样式,指定为 box-sizing: border-box; 则 padding 和 border 就不会再溢出,而是向内收缩的,这个效果感觉非常实用

 

特别是 input 和 textarea 等 现在设置 100% 再直接增加内边距和边框也不用再进行复杂的计算和适配了

 

 

 

.

分享到:
评论

相关推荐

    详解CSS3中的box-sizing(content-box与border-box)

    CSS3中的box-sizing(content-box与border-box) CSS3中的box-sizing 属性允许以特定的方式来指定盒模型,有两种方式: content-box:标准盒模型,又叫做 W3C盒模型,一般在现代浏览器中使用的都是这个盒模型 border...

    css详解box-sizing.zip

    .url`和`从box-sizing-border-box属性入手,来了解盒模型 -用box-size border-box改变盒模型的结构.url`这两个链接则涉及到了与Box Sizing相关的其他CSS属性,如`text-overflow`,`white-space`和`overflow`,它们...

    CSS3 box-sizing属性详解

    box-sizing属性包括content-box(default),border-box,padding-box。  1、content-box,border和padding不计算入width之内  2、padding-box,padding计算入width内  3、border-box,border和padding计算入...

    关于box-sizing的全面理解

    语法box-sizing: content-box|border-box|inherit; content-box :w3c标准(默认) border-box :IE传统标准 content-box: .test1{ box-sizing:content-box; width:200px; padding:10px; borde

    使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题

    有时我们会给页面的元素(比如div)设置个固定的高度或宽度。但如果给这个div又设置了内边距或者边框的话,那么这个div就会被撑大。... box-sizing: content-box|border-box|inherit;  值 描述 conte

    css3 box-sizing属性使用参考指南

    在这个例子中,`.box_sizing`的子元素`.in`应用了`border-box`,因此元素的宽度100%包含了边框和内边距,不会导致父元素`.box_sizing`的溢出。在不同的浏览器中,由于历史兼容性问题,可能需要使用各种前缀 `-webkit...

    box-sizing.docx

    总结起来,`box-sizing`属性提供了对元素尺寸计算方式的控制,`border-box`模式允许开发者更直观地设定元素尺寸,而`content-box`则遵循传统的CSS布局规则。了解并灵活运用`box-sizing`,可以帮助优化布局,提高代码...

    前端开源库-tachyons-box-sizing

    文件名"tachyons-box-sizing-master"可能表示这是Tachyons-box-sizing项目的主分支或完整版本。通常,"master"分支代表项目的主线开发,包含了最新的稳定代码。下载或克隆这个文件后,开发者可以进一步研究源码,...

    CSS3属性box-sizing使用指南

    box-sizing用于改变CSS盒子模型,从而... padding-box 根据MDN的说法,目前还是一个实验性的属性, width 和 height 包括内容区和内边距,不包括边框和外边据;  border-box 包括内边距与边框,不包括外边距。这是I

    18_盒子模型-box-sizing.html

    18_盒子模型-box-sizing

    Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案

    要解决这个问题,我们需要理解`content-box`和`border-box`两种box-sizing模式的区别。`content-box`是CSS2的标准盒模型,其中元素的总尺寸由内容区域的宽度和高度加上边框和内边距组成。而在`border-box`模式下,...

    浅谈CSS3 box-sizing 属性 有趣的盒模型

    比如,当你需要一个固定宽度的输入框,包括内填充和边框,设置`box-sizing: border-box;`后,你可以直接为输入框设定包括边框在内的总宽度,而无需为内填充和边框单独计算。 在使用像Bootstrap这样的前端框架时,...

    bjgc-liuhuan#bhg-blog#35.从box-sizing属性入手,了解盒子模型1

    背景先声明一下运用的场景,假如项目布局使用的是自适应的布局方式,div给出的宽度是百分比的形式,即占窗口宽度的100%,但边框border和内边距padding

    css3 盒模型以及box-sizing属性全面了解

    在这个例子中,`.con` 使用了默认的 `content-box`,所以它的实际宽度会是 122px(100px的内容宽度 + 2px的左右边框 + 20px的左右内边距),而`.con1` 设置了 `box-sizing: border-box;`,使得它的宽度严格等于100px...

    CSS网页实例 利用box-sizing实现div仿框架结构实现代码

    然而,当box-sizing设置为border-box时,width和height属性则会将内容区域、内边距和边框计算在内。这使得布局更加直观且易于控制。 接下来,我们看如何利用box-sizing属性来仿制框架结构。在给定的内容中,作者...

Global site tag (gtag.js) - Google Analytics