深入margin

1.margin与可视化尺寸

适用于没有设定固定的width和height普通block元素,

float,absolute,/fixed inline元素,table cell元素则不可以
经过设置margin值可以改变div的大小
宽度大小


这里写图片描述


应用

实现图片文字并排列的时候文字对齐

这里写图片描述


**同理当父元素容器没有设置width和height,利用图片的margin
可以改变容器的大小,用来元素的留白!其他元素则看似不行不会撑开元素其实是margin与父元素进行了重叠**如果父元素设置了宽高,则无法撑开元素,margin过大的话就会溢出!


margin的百分比

普通元素的margin百分比都是通过容器的margin来计算的与父容器的width无关!
这里写图片描述

绝对定位的margin百分比

这里写图片描述

margin重叠

这里写图片描述

这里写图片描述

解决方法

这里写图片描述

加入inline元素可以是空格&nbsp

这里写图片描述

这里写图片描述

一一对应来看:
非块状格式化:设置overflow:hidden
设置padding
设置border
设置inline元素在中间比如空元素  
设置height(干掉margin-bottom)

            1.外层padding

        2.透明边框border:1pxsolidtransparent;

        3.绝对定位postion:absolute根据定义他们不产生margin重叠:

        4.外层DIVoverflow:hidden;

        5.内层DIV 加float:left;display:inline;

        6.外层DIV有时会用到zoom:1;



margin重叠的计算方式

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

margin auto

这里写图片描述

margin实现垂直居中

这里写图片描述

此时宽度不会自动填充,水平方向不会居中

这里写图片描述

margin 失效问题

  • 1.内联元素(不包括img等替换元素)水平方向有效垂直方向无效
  • 2.margin重叠导致无效
  • 3.display:table-cell 和 table-row时无效果
  • 但是例外的是替换元素比如img,即使设置了table-cell也有效果
  • button为inline-block模式
  • 4.相邻元素为float时margin无效,那是因为margin不够大;
  • 5.当有内联元素和img(等替换元素在一起)img要和文本(内联元素)对齐所以有所限制!

文中图片来自:http://www.imooc.com/learn/680

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值