谈谈对css属性box-sizing的了解


Posted in HTML / CSS onJanuary 04, 2017

在了解box-sizing之前,让我们来稍稍回顾一下盒子模型,模型分为:标准盒模型+IE盒模型。那这有什么区别呢?见图所示:

从上图可以看到标准 w3c 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。

谈谈对css属性box-sizing的了解

从上图可以看到 ie 盒子模型的范围也包括 margin、border、padding、content,和标准 w3c 盒子模型不同的是:ie 盒子模型的 content 部分包含了 border 和 pading。

谈谈对css属性box-sizing的了解

当然前端工程师在写页面布局的时候该采取的是 标准的盒模型(需要在页面html声明处加上doctype 声明),告知浏览器按照标准盒模型的方式进行渲染页面,反之,页面会根据不用的浏览器进行解析,IE会使用IE的盒模型进行渲染,FIREFOX 和 GOOGLE等会按照标准模式惊醒渲染,显然是不合常理的。

所以为了让我们写的网页能兼容各个浏览器,最好使用标准 w3c 盒子模型。

说完了盒子模型,进入到我们这个css属性box-sizing的了解。

box-sizing的三个属性值: content-box在宽度和高度之外绘制元素的内边距和边框|border-box为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制|inherit规定应从父元素继承 box-sizing 属性的值;box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。

ie8+浏览器支持content-box和border-box;

ff则支持全部三个值。

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">  
<html lang="en">  
    <head>  
        <meta charset="utf-8">  
        <title>box-sizing事项</title>  
        <style type="text/css">  
            *{padding: 0;margin: 0;font-family: "微软雅黑";box-sizing:border-box;-moz-box-sizing:border-box; /* Firefox */  
-webkit-box-sizing:border-box; /* Safari */}  
            .content{width: 800px;height: 500px;margin: 30px auto;border: 5px solid #e2e2e2;padding: 10px}  
        </style>  
    </head>  
    <body>  
        <div class="content">  
            这是内容@!  
        </div>  
    </body>  
</html>

在进行box-sizing属性修饰之后盒子得到的宽度是:770px = 800px - 10px -20px;

意思是内填充和边框在已经设定的content盒子800像素里面进行绘制,导致了content盒子的宽度为:770。

在不进行box-sizing属性修饰之后盒子得到的宽度是:800px;

谈谈对css属性box-sizing的了解

谈谈对css属性box-sizing的了解

box-sizing这个属性在我们前端开发过程中,使得页面布局显得十分整齐,简单!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
css3中新增的样式使用示例附效果图
Aug 19 HTML / CSS
支持IE8的纯css3开发的响应式设计动画菜单教程
Nov 05 HTML / CSS
CSS3+Sprite实现僵尸行走动画特效源码
Jan 27 HTML / CSS
自定义html标记替换html5新增元素
Oct 17 HTML / CSS
HTML5中的autofocus(自动聚焦)属性介绍
Apr 23 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
Apr 29 HTML / CSS
html5摇一摇代码优化包括DeviceMotionEvent等等
Sep 01 HTML / CSS
让IE下支持Html5的placeholder属性的插件
Sep 02 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
May 12 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
Jul 11 HTML / CSS
html5 Canvas实现图片旋转的示例
Jan 15 HTML / CSS
html5 input输入实时检测以及延时优化
Jul 18 HTML / CSS
纯CSS3制作的鼠标悬停时边框旋转
Jan 03 #HTML / CSS
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
Dec 30 #HTML / CSS
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
Dec 30 #HTML / CSS
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
Dec 30 #HTML / CSS
CSS3实现瀑布流布局与无限加载图片相册的实例代码
Dec 22 #HTML / CSS
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
Dec 20 #HTML / CSS
详解CSS3浏览器兼容
Dec 14 #HTML / CSS
You might like
PHP中抽象类,接口功能、定义方法示例
2019/02/26 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
用js实现放大镜效果
2020/10/28 Javascript
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
对python中return和print的一些理解
2017/08/18 Python
使用python为mysql实现restful接口
2018/01/05 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
介绍一下EJB的体系结构
2012/08/01 面试题
服装销售人员求职自我评价
2013/09/26 职场文书
室内设计专业个人的自我评价
2013/12/18 职场文书
生物制药自我鉴定
2014/01/25 职场文书
《晏子使楚》教学反思
2014/02/08 职场文书
新品发布会主持词
2014/04/02 职场文书
目标责任书范文
2014/04/14 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
2014年政协工作总结
2014/12/09 职场文书
绵山导游词
2015/02/05 职场文书
2015年百日安全活动总结
2015/03/26 职场文书
2015年外联部工作总结
2015/04/03 职场文书
新郎接新娘保证书
2015/05/08 职场文书
python中validators库的使用方法详解
2022/09/23 Python