CSS 盒模型

盒模型的定义:

盒模型是页面设计和布局时用到一种思维模型。 盒模型由,Margin (外边距), Border (边框) ,Padding(内边距/填充) 和Content(内容)组成。其中外边距margin是透明的,不会遮挡周边的其他元素。

标准盒模型里,用CSS对元素设置width 和 height 属性时, 设置的其实是content 部分的宽和高,元素实际占位空间,还需要加上Padding ,border ,和Margin 。但是在IE 5.x 和 IE6 在怪异模式下,会使用非标准的盒模型,该盒模型下,对元素设置width 和 height 属性时,设置的其实是包括 border , padding 和content部分的宽高。在这种非标准模型下,元素实际占用的空间只需要再加上 Margin。 对于这种非标准的盒模型的解决方案,就是在HTML 文档头部指定文档的DocType,让浏览器采用严格模式解析。

box-sizing属性:

在CSS3 中,新增的一个用户界面属性box-sizing 可以用来指定元素的盒模型计算方法。 box-sizing 有三种值:

box-sizing: content-box; 这是CSS2.1 中提出的标准盒模型的计算方式,即width和height属性指content部分的宽高;

box-sizing: border-box; 这就是IE怪异模式下的非标准盒模型的计算方式,即width和height属性指 border,padding,content 3部分的宽高;

box-sizing: inherit;从父元素继承;

Margin 的合并:

外边距的合并是指对于普通文档流中的块状元素,两个垂直相遇的外边距合并成一个外边距,合并后的外边距高度取两个合并外边距中的较大者。 

有三种情况会出现外边距垂直相遇:

1) 上下关系的块状元素;

这是最常见也是最容易理解的合并情况,上下两个段落之间就会存在外边距合并现象;

 

2) 父子关系的块状元素;

当父容器没有padding和border时,父容器的上下外边距就会直接遇上子元素的上下外边距,两个外边距就会发生合并。

要阻止父子外边距合并,需在父子外边距间设置隔离。隔离方法有,给父元素设置 border,设padding,加前置内容生成(即增加伪元素),等。 加前置内容生成不会产生额外的影响,推荐使用:

.parent:before {
    content: '';
    display: table; // table会产生一些匿名盒子, 形成BFC
}table会产生一些匿名盒子, 形成BFC
}

3)元素自身上下margin

当元素没有content,padding和border时,上下margin 会相遇,发生合并. 这种情况如果在浏览器端试验,抓取到的空元素的高仍然是上下margin之和,而不是合并后的margin值。但是当有相邻块元素存在时,从相邻元素的位置就能看出效果。

margin 的合并还有很多规则,但整体有如下原则:常规文档流,块级元素,同一个BFC环境。关于BFC,后续。。

 

 

 

图片来自W3School

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值