最近以开发自己博客网站为出发点开始决心打牢几个非常重要的前端知识点:

margin,这个在我刚刚接触编程的时候留下的困扰的东西,一开始只想着怎么快速开发自己的网站,别人的终归是别人的,想要挖墙脚,必须锄头好 。知道原理才知道怎么调整啊。我看了一个博客,里面已经写得非常好了。但是自己还是得练手,还是要写点总结的东西,留下demo,留下想法

我自己是参考这位博主学习的  http://www.cnblogs.com/zhuzhenwei918/p/6124263.htm

我这边就不画图什么的,就是单纯的文字总结,是编写代码时顺带写的

参考的博客分了四个步骤(我直接写上结论):

# 基础知识:margin是盒子模型的最外层的距离,盒子模型中border其实默认是没有宽度的,也就是0,要设置之后才占据宽度

同级之间

  (1)水平方向的外边距合并,两个水平方向的盒子相遇,那么最终两者之间的距离为左边盒子的右外边距和右边盒子的左外边距之和

  (2)竖直方向的外边距合并,两个竖直方向的盒子相遇时,其竖直方向的距离等于上方盒子的下外边距和下方盒子的上外边距中较大的一个

  (3)另外一个有趣的例子就是:假设有一个元素同时设置了margin-top和margin-bottom,但是内容为空,那么这两个margin值也会叠加,值为两者最大的一个,它类似与竖直方向上两个盒子margin值的叠加。比如一个div设置了margin-top=100px和margin-bottom=50px,里面没有内容,那么上下的margin为100px

父子之间

  (1)父子之间要考虑父元素的padding,子元素的margin是子元素border到父元素padding内侧的距离

  (2)当父元素没有设置padding值以及border值时,垂直方向的margin“不起作用”,子元素上边框和父元素融为一体,子元素的margin相当于父元素的margin,我们称这个为margin穿透,有几种方式可以解决(或者说正常显示margin的情况):

    方法一:给父元素添加padding-top值。  padding-top=1px      缺点,增加1px误差  

    方法二:给父元素添加border值               border-top:1px solid transparent       缺点同上

    方法三:给父元素添加属性overflow:hidden;             overflow:hidden           基本上完美  

    方法四:给父元素或者子元素声明浮动float                float:left           缺点,float有时候是不必要的   

    方法五:使父元素或子元素声明为绝对定位:position:absolute;          不使用left和top就挺ok的

    方法六:给父元素添加属性 overflow:auto; positon:relative

  (3)

# margin设置百分比(%)的情况  : 同级元素之间在竖直方向上使用margin,当值的单位为%时,它是相对于父元素的宽度

最新文章

  1. MarkdownPad 2 常用快捷键
  2. 小谈Jquery框架
  3. 使用 Productivity Power Tools 2013来帮助你提高 VS2013的工作效率
  4. [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit
  5. php中序列化与反序列化
  6. 测试必备技能系列4:如何用SSH向linux服务器上传下载文件
  7. Javascript 使用小案例
  8. Python3基础 count 返回指定元素在列表中的个数
  9. jQuery中$.post()的使用
  10. JSP重定向传递参数
  11. Python学习笔记——正则表达式
  12. iOS开发中常见的语句@synthesize obj=obj的意义详解
  13. 蜗牛爱课- CGAffineTransformMakeRotation 实现一张图片的自动旋转
  14. Tomcat详细用法学习(四)
  15. USACO Section 1.2 Dual Palindromes 解题报告
  16. GROUP BY语句与HAVING语句的使用
  17. JVM系列第12讲:JVM参数之查看JVM参数
  18. Zookeeper学习笔记2
  19. 9 月份 GitHub 上最火的 JavaScript 开源项目!
  20. 我的博客:C# PHP J2ee Java Android js WP Asp.net mvc Python

热门文章

  1. 以太坊(二)安装Solidity编译器
  2. python实战——文本挖掘+xgboost预测+数据处理+准确度计算整合版
  3. Redis: Redis支持五种数据类型
  4. 6 istio 配置 grafana
  5. Linux Platform devices 平台设备驱动
  6. 简单IOCP例子
  7. eclipse安装使用注意点
  8. String s;和String s=null;和String s="a";有什么区别?
  9. PHP中composer的安装和使用
  10. Java-从堆栈常量池解析equals()与==