浅谈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 相关文章推荐
css3绘制百度的小度熊
Oct 29 HTML / CSS
CSS3提交意见输入框样式代码
Oct 30 HTML / CSS
CSS3中的Transition过度与Animation动画属性使用要点
May 20 HTML / CSS
CSS3打造百度贴吧的3D翻牌效果示例
Jan 04 HTML / CSS
css3 pointer-events 介绍详解
Sep 18 HTML / CSS
css3实现画半圆弧线的示例代码
Nov 06 HTML / CSS
HTML5的结构和语义(1):前言
Oct 17 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
Mar 25 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
Jul 07 HTML / CSS
HTML5在线预览PDF的示例代码
Sep 14 HTML / CSS
聊聊CSS粘性定位sticky案例解析
Jun 01 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
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
动态为事件添加js代码示例
2009/02/15 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
javascript截取字符串小结
2015/04/28 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
原生JS实现小小的音乐播放器
2017/10/16 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
详解Python的Lambda函数与排序
2016/10/25 Python
python正则实现提取电话功能
2018/02/24 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
python用700行代码实现http客户端
2021/01/14 Python
大学生最常用的自我评价
2013/12/07 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
老兵退伍标语
2014/10/07 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
房地产项目合作意向书
2015/05/08 职场文书
药房管理制度范本
2015/08/06 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫