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


Posted in HTML / CSS onApril 02, 2019

盒模型的组成大家肯定都懂,由里向外content,padding,border,margin.

盒模型是有两种标准的,一个是标准模型,一个是IE模型。

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

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

从上面两图不难看出在标准模型中,盒模型的宽高只是内容(content)的宽高,

而在IE模型中盒模型的宽高是内容(content)+填充(padding)+边框(border)的总宽高。

css如何设置两种模型

这里用到了CSS3 的属性 box-sizing(默认值:content-box)

/* 标准模型 */ 
 box-sizing:content-box;
  /*IE模型*/
 box-sizing:border-box;

content-box: 这是CSS2.1指定的宽度和高度的行为。指定元素的宽度和高度(最小/最大属性)适用于box的宽度和高度。元素的填充和边框布局和绘制指定宽度和高度除外

border-box: 指定宽度和高度(最小/最大属性)确定元素边框box。也就是说,对元素指定宽度和高度包括padding和border的指定。内容的宽度和高度减去各自双方该边框和填充的宽度从指定的"宽度"和"高度"属性计算

测试参考案例

理想中的效果和代码如下图:

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

.input { width: 146px; height: 36px; line-height: 36px; background: transparent; border: 2px solid #0D349A; color: #bdbdbd; padding-left: 10px; padding-right: 30px; font-size: 14px;
box-sizing:content-box;(默认的可不写)}

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

应用在有用 bootstrap框架 的项目中发现bootstrap.min.css 样式里默认box-sizing: border-box; 会干扰搜索框的宽高

* { -webkit-box-sizing: border-box; 
-moz-box-sizing: border-box;
 box-sizing: border-box;}

这个属性导致页面出现的样子:

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

.input { width: 146px; height:
 36px;
 line-height: 36px; 
background: transparent; 
border: 2px solid #0D349A;
 color: #bdbdbd; padding-left: 10px;
 padding-right: 30px; 
font-size: 14px; box-sizing:border-box;}

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

这个时候想要实现理想中的效果必须把样式调整成:

.input { width: 190px;
 height: 40px; line-height: 
40px; background: transparent; 
border: 2px solid #0D349A;
 color: #bdbdbd; padding-left: 10px; 
padding-right: 30px;
 font-size: 14px; 
box-sizing:border-box;}

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

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

总结

以上所述是小编给大家介绍的浅谈CSS3 box-sizing 属性 有趣的盒模型 ,希望对大家有所帮助,如果大家有任何iwen欢迎给我留言,小编会及时回复大家的!

HTML / CSS 相关文章推荐
让IE支持CSS3的不完全兼容方案
Sep 19 HTML / CSS
基于CSS3实现图片模糊过滤效果
Nov 19 HTML / CSS
纯CSS3单页切换导航菜单界面设计的简单实现
Aug 16 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
Oct 29 HTML / CSS
HTML5的革新 结构之美
Jun 20 HTML / CSS
通过Canvas及File API缩放并上传图片完整示例
Aug 08 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
Apr 29 HTML / CSS
使用phonegap获取位置信息的实现方法
Mar 31 HTML / CSS
canvas 实现 github404动态效果的示例代码
Nov 15 HTML / CSS
利用三角函数在canvas上画虚线的方法
Jan 11 HTML / CSS
html2canvas生成清晰的图片实现打印的示例代码
Sep 30 HTML / CSS
canvas绘制图片drawImage使用方法
Sep 15 HTML / CSS
CSS3 3D酷炫立方体变换动画的实现
Mar 26 #HTML / CSS
CSS3之2D与3D变换的实现方法
Jan 28 #HTML / CSS
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
Jan 23 #HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
Jan 17 #HTML / CSS
简单几步用纯CSS3实现3D翻转效果
Jan 17 #HTML / CSS
css3实现3D文本悬停改变效果的示例代码
Jan 16 #HTML / CSS
css3实现元素环绕中心点布局的方法示例
Jan 15 #HTML / CSS
You might like
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
Python学习笔记之常用函数及说明
2014/05/23 Python
python设置检查点简单实现代码
2014/07/01 Python
简单谈谈python的反射机制
2016/06/28 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
材料成型专业个人求职信范文
2013/09/25 职场文书
应届生船舶驾驶求职信
2013/10/19 职场文书
生产主管岗位职责
2013/11/10 职场文书
网站设计师的岗位职责
2013/11/21 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
会计的岗位职责
2014/03/15 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
九九重阳节标语
2014/10/07 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
法人代表资格证明书
2015/06/18 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL