1、Box Model(盒模型)

  CSS中的Box Model分为两种:第一种是W3C的标准模型,另一种是IE的传统模型。它们的相同之处是对元素的width、height、padding、border、margin以及元素实际尺寸的计算关系,而它们的不同之处则是两者的计算方法不一致。

  1)、W3C的标准Box Model:

/*外盒尺寸计算(元素空间尺寸)*/
Element空间高度 = content height + padding + border + margin
Element空间宽度 = content weight + padding + border + margin
/*内盒尺寸计算(元素大小)*/
Element Height = content height + padding + border
Element Weight = content weight + padding + border

  2)、IE传统下的Box Model(IE6以下,不含IE6版本)

    

/*外盒尺寸计算(元素空间尺寸)*/
Element空间高度 = Content Height + margin(Height包含了元素内容高度、边框高度、内边距高度)
Element空间宽度 = Content Weight + margin(Height包含了元素内容宽度、边框宽度、内边距宽度)
/*内盒尺寸计算(元素大小)*/
Element Height = content Height(Height包含了元素内容高度、边框高度、内边框高度)
Element Weight = content Weight(Weight包含了元素内容宽度、边框宽度、内边框宽度)

  目前浏览器大部分元素都是基于W3C标准的Box Model,但对于form中的部分元素还是基于传统的Box Model上,比如:input中的submit、reset、button和select等元素,这样,如果我们给其设置border和padding,它也只会向内延伸。

2、Box-sizing : content-box | border-box | inherit

  1)、content-box:此值为其默认值,其让元素维持W3C标准的Box Model展示,也就是说元素的宽度(weight)和高度(height)等于元素边框(border)加上 元素的内边距(padding) 加上 元素内容的宽度(content width)或高度(content height)

  2)、border-box:此值让元素维持IE传统的Box Model(IE6以下版本)展示,也就是说元素的宽度(weight)和高度(height)等于元素内容的宽度(content weight)和高度(content height)。这里的content width和content height包含了元素的border、padding、content width和content height

  box-sizing现在的浏览器都支持,但IE家庭里只有IE8以上版本才支持,虽然现代的浏览器都支持,但有些浏览器还是需要加上自己的前缀,Mozilla需要加上 -moz-,Webkit内核需要加上-webkit-,Presto内核需要加上-0-,IE8需要加上-ms-,所以box-sizing兼容浏览器时需要加上各自的前缀。

/*Content box*/
Element {
-moz-box-sizing:content-box;
-webkit-box-sizing:content-box;
-o-box-sizing:content-box;
-ms-box-sizing:content-box;
box-sizing:content-box;
}
/*Border box*/
Element {
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
-o-box-sizing:border-box;
-ms-box-sizing:border-box;
box-sizing:border-box;
}

css3 Box model 与 Box-sizing的更多相关文章

  1. CSS Box Model All In One

    CSS Box Model All In One CSS 盒子模型 All In One CSS Box Model CSS Box Model Module Level 3 W3C Working ...

  2. HTML和CSS的盒子模型(Box model)

    本文作为属性篇的最后一篇文章, 将讲述HTML和CSS的关键—盒子模型(Box model). 理解Box model的关键便是margin和padding属性, 而正确理解这两个属性也是学习用css ...

  3. CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  4. CSS3与页面布局学习笔记(二)——盒子模型(Box Model)、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  5. CSS3与页面布局学习总结——Box Model、边距折叠、内联与块标签、CSSReset

    目录 一.盒子模型(Box Model) 1.1.宽度测试 1.2.溢出测试 1.3.box-sizing属性 1.4.利用CSS画图 二.边距折叠 2.1.概要 2.2.垂直方向外边距合并计算 三. ...

  6. Box Model,边距折叠,内联和块标签,CSSReset

    一.盒子模型(Box Model) 1.1.宽度测试 1.2.溢出测试 1.3.box-sizing属性 1.4.利用CSS画图 二.边距折叠 2.1.概要 2.2.垂直方向外边距合并计算 三.内联与 ...

  7. CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins

    前言   盒子模型作为CSS基础中的基础,曾一度以为掌握了IE和W3C标准下的块级盒子模型即可,但近日在学习行级盒子模型时发现原来当初是如此幼稚可笑.本文尝试全面叙述块级.行级盒子模型的特性.作为近日 ...

  8. 重新认识Box Model、IFC、BFC和Collapsing margins

    尊重原创,转载自: http://www.cnblogs.com/fsjohnhuang/p/5259121.html 肥子John^_^ 前言   盒子模型作为CSS基础中的基础,曾一度以为掌握了I ...

  9. 盒子模型(Box Model)

    盒子模型(Box Model) ■ 盒子模型——概念 在网页设计中常用的属性名:内容(content),填充(padding),边框(border),边界(margin),CSS 盒子模式都具备这些属 ...

随机推荐

  1. spring框架学习笔记6:JDBC模板

    JDBC模板:Spring中对数据库的操作. 这一部分对熟悉DBUtils的QueryRunner的开发者来说,非常简单 这是以前我简单写的dbutils的知识: http://www.cnblogs ...

  2. TCP/UDP OSI_layer 4

    这篇文章主要复习OSI模型中的第4层:传输层,主要包含两个协议TCP .UDP. Transport 传输层 多路复用: 一个协议为多个上层协议或者多个上层应用提供一个统一的服务 TCP/UDP 通过 ...

  3. 【xsy2305】喽 计算几何

    UPD:这个做法被hack了 题目大意:给你$n$个红点和$m$个黑点,问你至少需要保留多少个黑点,才能用由黑点组成的凸包包住所有红点. 数据范围:$n≤10^5$,$m≤500$ 首先,我们将红点和 ...

  4. ffmpeg 视频实现各种特效

    直接上命令: //渐入i in.mp4 -vf fade=in:0:90 out.mp4                 //黑白                    i in.mp4 -vf lu ...

  5. 理解 Python 的执行方式,与字节码 bytecode 玩耍 (上)

    这里有个博客讲 Python 内部机制,已经有一些中文翻译. 可能因为我用的Python 3.5,例子跑起来有些不一样. 此外,我又查了其他一些参考资料,总结如下: Python 的执行方式 先看一个 ...

  6. Django -- 部署Django 静态文件不能获取

    # 在部署上下之后无法正常显示后台admin的静态文件 # 因为文件都在django内部,而在nginx中将配置都设置到一个位置: # 措施: 1.在settings.py文件中添加配置; STATI ...

  7. Android 爬坑之路

    java.lang.ClassCastException: android.app.Application cannot be cast to com.example.lbsdemo.TrackApp ...

  8. Android生成二维码--拍照或从相册选取图片

    拍照或从相册选择图片是我们日常开发中经常使用到的,可以说是必须掌握的东西.上一篇我介绍了如何生成自定义二维码<Android生成自定义二维码>,其中logo和代替黑色色块的图片都是写死的, ...

  9. Java并发编程笔记之LinkedBlockingQueue源码探究

    JDK 中基于链表的阻塞队列 LinkedBlockingQueue 原理剖析,LinkedBlockingQueue 内部是如何使用两个独占锁 ReentrantLock 以及对应的条件变量保证多线 ...

  10. ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)

    ProxySQL是灵活强大的MySQL代理层, 是一个能实实在在用在生产环境的MySQL中间件,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行 cache,支持动态加载配 ...