前言

改变容器尺寸

margin改变容器尺寸有以下两个限制条件:

  1. 使用于没有设置宽高的普通block元素
    float/absolute/fixed元素 以及 inlines水平 table-cell元素.

  2. 只试用于水平方向

margin百分比

1.普通元素的百分比margin值是相对于容器宽度计算的
2.绝对定位元素的百分比margin值是相对于第一个定位祖先元素的宽度计算

也就是说margin的宽度都是相对于其祖先元素计算的.

margin重叠

1.block水平元素(不包括float和absolute)
2.只发生在垂直方向(如果修改了writting-mode)

父子元素margin重叠条件

  1. 父元素非块状格式化上下文元素

  2. 父元素没有border值;

  3. 父元素没有padding值;

  4. 父元素与第一个子元素之间没有inline父元素分隔

  5. 父元素没有高度限制

我们可以通过设置;(添加overflow:hidden).设置border/padding/添加一个inline元素/添加高度等方法来解决margin重叠的问题;

margin重叠的规则,简而言之就是取两个值的和

margin auto属性

有时候,就算没有给元素设置宽高,他也会自动填满容器,那么如果我们设置宽高以及margin:auto后,就可以有自动margin填充了
图片是默认inlie的,所以不会自动居中,需要修改它的block值;
垂直居中 绝对定位元素在拉伸的情况下,设置一个宽高度,然后margin :auto,那么就可以实现自动居中了,也就是时候margin填充了拉伸后这只宽高留下的空白.

margin 无效的情形

1.inline水平元素垂直margin无效
2.display:table-cell/table-row等声明的margin无效

转载于:https://www.cnblogs.com/heyuqing/p/6185668.html

CSS深入理解之margin相关推荐

  1. 学习笔记之CSS深入理解(慕课网 张鑫旭主讲)

    一.CSS深入理解之border 1. border-width不支持百分比 受语义和使用场景决定的,不会因为设备大而边框变大的 2. border-style属性 border-style:dott ...

  2. CSS: 深入理解BFC和Margin Collapse (margin叠加或者合并外边距)

    BFC的理解与应用 首先我们来看看w3c规范对BFC的解释,其实对于这种概念的学习上,我们总是建议首先寻找官方的定义,因为原则上来说官方的才是最权威和正确的,而且还比较详细,千万不要因为看到英文就畏惧 ...

  3. html css 深入理解float

    html css 深入理解float 首先,我们来看一段权威的关于float的解释: "浮动会让元素脱离文档流,不再影响不浮动的元素.实际上,并不完全如此.如果浮动的元素后面有一个文档流中的 ...

  4. css盒模型中margin很牛逼

    css盒子模型,说简单也简单,用的时候也有不简单的. 其中margin的值可以为负值,并且为了实现margin,忽略父级的padding.border.甚至定位.这在布局上很有用,要注意. ----- ...

  5. [css] css中padding和margin是相对于父元素还是子元素呢?

    [css] css中padding和margin是相对于父元素还是子元素呢? padding就是往自己身体里塞东西(盒子里面),margin就是穿衣服(盒子外面). ==>padding相对于子 ...

  6. [css] 你所理解的css高级技巧有哪些?

    [css] 你所理解的css高级技巧有哪些? 各种动画效果,能用css的都可以不去用js写的,对我来说就很高级 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家 ...

  7. CSS:理解:Before和:After伪元素

    CSS样式表的主要作用是修饰Web页面上的HTML标记,但有时候,为了实现某个效果而往页面里反复添加某个HTML标记很繁琐,或者是显得多余,或者是由于某种原因而做不到.这就是CSS伪元素(Pseudo ...

  8. CSS深入理解之line-height

    以下文字整理自慕课网--张鑫旭的<CSS深入理解之line-height>. 一.line-height的定义 line-height,又称行高,指的是两行文字基线之间的距离,又可以称为这 ...

  9. css margin padding 0,CSS 彻底理解margin与padding

    我们在刚开始接触CSS的时候总是被margin和padding闹的晕头转向,什么时候设置margin,什么时候设置padding,不是太清楚,设置了以后在界面上看到的效果也差不多呀. 如何理解marg ...

最新文章

  1. 6个让比特币现金保持匿名性的最佳方法
  2. 如何生成符合高斯分布的数据集
  3. 手机linux编译器,在linux上交叉编译helloWorld到android手机上去
  4. [python 学习] requests 库的使用
  5. linux中利用脚本编写数组,Linux基础之bash脚本进阶篇-数组(示例代码)
  6. 2018辛苦一年了,程序员这样跟大boss谈2019加薪,谈薪杯具变喜剧
  7. libyuv NV12裁剪
  8. Sketchup2019安装包安装教程
  9. 10家不错的iphone编程资源站
  10. Oracle中的空值问题
  11. Java 十进制转二进制
  12. jmeter压测学习11-模拟浏览器访问web页面
  13. echarts设置label添加下划线
  14. 破解明星网红带货易翻车的方法——企业直播
  15. 深度学习目标检测模型综述
  16. Android Shortcuts使用详解
  17. 大数据时代的信息茧房问题
  18. 计算机基础职中,职业高中计算机基础试卷一
  19. 日暮下的东汉-外戚、宦官与党锢
  20. 【考研】数据结构考点——顺序查找

热门文章

  1. 如何网络推广为你出招解决网站跳出率高问题!
  2. 网络营销助力之下国内可穿戴设备市场进一步打开迎来发展机遇
  3. 对于“网站快照”的认识你停留在哪个阶段?
  4. mysql 5.7 marriadb_CentOS7下安装MySQL
  5. win10系统迁移后系统重装_Win10系统迁移教程
  6. linux打开文件命令occ,Linux系统查看文件内容的命令有哪些?
  7. Tensorflow深度学习之十二:基础图像处理之二
  8. DNS Tunneling及相关实现——总之,你发起攻击都需要一个DNS server,下载一些工具作为client发起数据,server收集数据并响应...
  9. Cassandra 单机入门例子——有索引
  10. 某资深程序员写给后来者的忠告