margin的解析逻辑

在 margin 中 top、right、bottom、left 的参考线并不一致为一类,而是分为了两类参考线,top 和 left 的参考线属于一类,right 和bottom 的参考线属于另一类。

那他们到底各以什么为参考线呢?top 以 containing block 的 content 上边或者垂直上方相连元素 margin 的下边为参考线垂直向下位移;

left 以 containing block 的 content 左边或者水平左方相连元素 margin 的右边为参考线水平向右位移。

right 以元素本身的 border 右边为参考线水平向右位移;

bottom 以元素本身的border 下边为参考线垂直向下位移。

从上我们可以看到 top 和 left 都是以外元素为参考,而 right 和 bottom 以本元素为参考。

上面的位移方向是指 margin 数值为正值时候的情形,如果是负值则位移方向相反。

物理大小指的是除去 margin,也就是包含 border 以内的 box 大小,而逻辑大小,则是 box 通过 margin 解析规则解析后得到的大小(这或许可以解释为什么IE5会错误解析盒模型)。

结论:(当元素设置宽度之后)

box 最后的显示大小等于 box 的 border 及 border 内的大小加上正的 margin 值。

而负的 margin 值不会影响 box 的实际大小,如果是负的 top 或 left 值会引起 box 的向上或向左位置移动,

如果是 bottom 或 right 只会影响下面 box 的显示的参考线。

 如果元素没有设置宽度,则margin负值会改变box的宽度

来自:

http://www.planabc.net/2007/03/18/css_attribute_margin/

http://www.51xuediannao.com/html+css/htmlcssjq/css-margin.html

最新文章

  1. C++小项目:directx11图形程序(九):总结
  2. LINUX 命令定期执行可执行文件
  3. javascript 代码可读性
  4. Codeforces Round #231 (Div. 2) E.Lightbulb for Minister
  5. C++ 创建和遍历二叉树
  6. ASP.NET MVC 4源码分析之如何定位控制器
  7. kettle 数据库连接中断重置
  8. libwebsocket manual
  9. python获取实时股票信息
  10. Specified key was too long max key length is 1000 bytes
  11. (Beta)团队贡献分
  12. [转帖]关于CP936
  13. [ZJOI2006]超级麻将(可行性dp)
  14. Java高级面试题解析(一)
  15. PHP实现 手机号码归属地查询
  16. 如何关闭wps热点,如何关闭wpscenter,如何关闭我的wps
  17. liuyan
  18. Web 安全 之 OpenSSL
  19. php使用pthreads v3多线程的抓取新浪新闻信息
  20. 基于卷积神经网络的手写数字识别分类(Tensorflow)

热门文章

  1. Codeforces 518 D Ilya and Escalator
  2. 成长笔记 - mysql-5.5.25-winx64安装步骤(及密码修改问题)
  3. sql 添加自定义排序
  4. ios Crash Log 分析汇总
  5. Cocos2d-x 3.0 简捷的物理引擎
  6. 走入asp.net mvc不归路:[6]linq常见用法
  7. ADO.NET EF 4.2 中的查询缓存(避免查询缓存)
  8. homebrew -v 或homebrew -doctor报错请检查 .bash_profile是否有误
  9. VS2005断点失效的问题
  10. asp对中文编码及解码,Decode和Encode中文网址处理