Css 盒子模型

1.那什么是盒模型呢?

简单的理解为,你可以把每个html标签当成一个小方块,然后这个小方块又包着几个小方块,如同盒子一层一层包着,这就是所谓的盒模型。

盒模型分为IE盒模型和W3C标准盒模型。

IE盒模型和W3C标准盒模型有什么区别呢?

1.W3C标准盒模型

属性width,height只包含内容content,不包含border和padding

width = 内容的宽度

height = 内容的高度

2.IE盒模型

属性width,height包含border和padding,指的是content+padding+border.

width = border + padding + 内容的宽度

height = border + padding + 内容的高度

我们来通过代码对其进行理解更直观,如下:

.item{

    width: 200px; 

    height: 200px;

    background-color: cornflowerblue;

}

.item{

    width: 200px; 

    height: 200px;

    background-color: cornflowerblue;

    padding:20px

}

那么此时,你可以看到下面的宽高都比上图多40px,也就说设置了padding以后,盒子的大小等于content+padding,接下来再看看border。

.item{

    width: 200px; 

    height: 200px;

    background-color: cornflowerblue;

    padding:20px;

  border: lavender 10px solid;

}

此时可以发现此时的宽高比上面的一幅图多20px,那么也就是说在设置了border以后,盒子的大小等于content + padding + border.那么margin呢, margin和宽高有关系嘛?

.item{

    width: 200px; 

    height: 200px;

    background-color: cornflowerblue;

    padding:20px;

    border: lavender 10px solid;

    margin-bottom:20px;

}

如图所示,盒子的长宽还是260*260,也就是说大小没有变化,但是盒子底部与下面的方块产生了20px的空白间隙,所以可以得出对于IE盒模型来说,盒子的大小等于content + padding + border决定的,margin是不会改变盒子的大小,所以说margin代表的是盒子所占据的位置。

刚刚我们说的是在IE盒模型的情况下盒子大小的计算,那么此时我们把box-size属性设置成border-box,会发现什么呢?

你会发现盒子的padding、border仍在,但是盒子的大小却变成了200*200,然后你会发现无论我们怎么设置padding、border,盒子的大小始终不会变。这个时候我们要介绍下box-size这个属性了。

box-size: border-box | content-box | inherit

content-box(默认):在宽度和高度之外绘制元素的内边距以及边框

border-box:在已设定好的宽度和高度内绘制元素的内边距以及边框

inherit:继承父元素box-sizing属性的值

根据不同的属性值进行不同的绘制,现在都明白了嘛?

我们在编写页面代码的时候尽量使用标准的W3C盒模型(需在页面中声明DOCTYPE模型),这样可以避免多个浏览器对同一界面的不兼容。

注意,这里若不声明DOCTYPE类型,IE浏览器会将盒子模型解释为IE盒模型,FireFox等将会解释为W3C盒模型;若在页面中声明了DOCTYPE类型,所有的浏览器都会把盒模型解释为W3C盒模型。

具体的使用哪种模式视使用场景决定。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,690评论 1 92
  • 前言 总括: 对于盒子模型,BFC,IFC和外边距合并等概念和问题的总结 原文地址:从CSS盒子模型说起 知乎专栏...
    秦至阅读 4,145评论 0 3
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,168评论 5 15
  • 读的什么书:《父母效能训练》 阅读有效时间:40分钟 阅读中遇到了什么困难:暂无 阅读有什么收获: 当父母拥有问题...
    夜的第七章4G阅读 1,603评论 0 0
  • 再见 青春 再见 美丽的姑娘 再见 青春 永恒的迷惘
    过悲阅读 2,890评论 0 0

友情链接更多精彩内容