浅谈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 相关文章推荐
CSS教程:CSS3圆角属性
Apr 02 HTML / CSS
CSS3实战第一波 让我们尽情的圆角吧
Aug 27 HTML / CSS
详解CSS3中@media的实际使用
Aug 04 HTML / CSS
CSS3中Transition动画属性用法详解
Jul 04 HTML / CSS
CSS3实现文本垂直排列的方法
Jul 10 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
Aug 26 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
May 28 HTML / CSS
HTML5本地存储之Web Storage应用介绍
Jan 06 HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
Jan 20 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
Apr 10 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
Aug 05 HTML / CSS
CSS中妙用 drop-shadow 实现线条光影效果
Nov 11 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
JS Timing
2007/04/21 Javascript
javascript 面向对象编程基础:封装
2009/08/21 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
把pandas转换int型为str型的方法
2019/01/29 Python
python网络应用开发知识点浅析
2019/05/28 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
用python解压分析jar包实例
2020/01/16 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
党委书记岗位职责
2013/11/24 职场文书
演讲稿格式
2014/04/30 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
家庭经济困难证明
2015/06/23 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
Redis集群的关闭与重启操作
2021/07/07 Redis
python 离散点图画法的实现
2022/04/01 Python
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技