博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8 Box model
阅读量:5048 次
发布时间:2019-06-12

本文共 1095 字,大约阅读时间需要 3 分钟。

分享一个网站,知识库里面有对盒模型、视觉格式化比较详细的说明。另外有很多兼容性的问题的问题列表和解决方案。微笑

1、盒尺寸

每个盒都包含一个内容区和及其周围可选的padding,border,margin,如下图:

Image illustrating the relationship between content, padding, borders, and margins.(摘自w3c)

如上,有4个区域,分别是content,padding,border,margin。每个区域有一个边界,因此一个盒中就会有4个边界。

1、内容边界或内缘:在标准盒模型中,内容边界包含了由widht和height给定的矩形,一般取决于元素的内要渲染的内容。这4个内容边界(上右下左)定义了内容盒

2、内边距边界:它从紧挨着边框的内侧开始,如果内边距宽度为0,那么内边距边界和内容边界是一样的。由内边距围绕而成的盒叫做内边距盒。

3、边框边界:从紧挨着边框的外侧的地方开始,边框区域是会显示元素背景的,如果边框为虚线的话。如果边框宽度为0,那么边框边界和内边距边界是一样的。由边框边界围绕而成的盒叫做边框盒。

4、外边距边界或外缘:外边距所构成的区域是透明的,也就是说元素的背景不会应用到margin区域,如果外边距的宽度为0,那么外边距边界和边框边界是一样的。由外边距边界围绕而成的盒叫外边距盒。

每个边界都可以拆分成top,right,bottom,left这4个边界。

一个盒的内容区域的尺寸——内容区域的宽度和高度——由以下几个因素决定:产生盒的元素是否设置了width或者height属性;盒内部是否包含了内容或者其他的盒子,盒子本事是否是一个table等等。这些在中会提到。

2、margin

margin适用于所有元素,但是对非替换的行内元素,垂直方向上的margin无效。

2.1、margin折叠

相邻的两个或多个盒子(未必是兄弟元素)的margin会合并成一个单独的margin。

其中所说的 margin 毗邻,可以归结为以下两点:

●这两个或多个外边距没有被非空内容、padding、border 或 clear 分隔开

  • ●这些 margin 都处于普通流中(in-flow,即非浮动,非绝对定位元素)
  • 需要注意的地方:
    浮动元素、inline-block 元素、绝对定位元素的 margin 不会和垂直方向上其他元素的 margin 折叠
    创建了块级格式化上下文的元素,不和它的子元素发生 margin 折叠
    元素自身的 margin-bottom 和 margin-top 相邻时也会折叠

转载于:https://www.cnblogs.com/meekcrocodile/archive/2012/05/06/2486446.html

你可能感兴趣的文章
Ubuntu 编译出现 ISO C++ 2011 不支持的解决办法
查看>>
1.jstl c 标签实现判断功能
查看>>
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
查看>>
超详细的Guava RateLimiter限流原理解析
查看>>
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>
Halcon一日一练:图像拼接技术
查看>>
Swift - RotateView
查看>>
iOS设计模式 - 中介者
查看>>
centos jdk 下载
查看>>
HDU 1028 Ignatius and the Princess III(母函数)
查看>>
(转)面向对象最核心的机制——动态绑定(多态)
查看>>
token简单的使用流程。
查看>>
django创建项目流程
查看>>
UIActionSheet 修改字体颜色
查看>>
Vue 框架-01- 入门篇 图文教程
查看>>
Spring注解之@Lazy注解,源码分析和总结
查看>>
多变量微积分笔记24——空间线积分
查看>>
Magento CE使用Redis的配置过程
查看>>
poi操作oracle数据库导出excel文件
查看>>
(转)Intent的基本使用方法总结
查看>>