美文网首页
深入理解css中的margin负值!

深入理解css中的margin负值!

作者: 做个大树吧 | 来源:发表于2018-07-11 22:35 被阅读0次

    margin属性在实际中非常常用,也是平时踩坑较多的地方。margin折叠部分相信不少人都因为这样那样的原因中过招。margin负值也是很常用的功能,很多特殊的布局方法都依赖于它。它看似简单,实际上却蛮复杂,本文就margin负值作详细介绍和梳理。

    一、表现

    虽然margin可以应用到所有元素,但display属性不同时,表现也不同。

    1.block元素可以使用四个方向的margin值。

    2.inline元素使用上下方向的margin值无效。

    3.inline-block使用上下方向的margin负值看上去无效(重点)

    二、重叠

    margin负值并不总是后面元素覆盖前面元素,它与元素display属性有关系。

    1.两个block元素重叠时,后面元素可以覆盖前面元素的背景,但无法覆盖其内容

    2.当两个inline元素,或两个line-block元素,或inline与inline-block元素重叠时,后面元素可以覆盖前面元素的背景和内容。

    3.当inline元素(或inline-block元素)与block元素重叠时,inline元素(或inline-block元素)覆盖block元素的背景,而内容的话, 后面的元素覆盖前面的元素。

    三、浮动

    1.block元素与浮动元素重叠时,其边框和背景在该浮动元素之下显示,而内容在浮动元素之上显示。

    2.inline或inline-block元素与浮动元素重叠时,其边框、背景和内容都在该浮动元素之上显示。

    四、应用

    水平垂直居中

    如果要居中的元素的宽/高是不变的或者说是确定的,假设width/height=100px,那么设置absolute的top/left=50%,然后margin-left/margin-top=-50px即可,也可以将margin后边的上右下左简写,方向为上右下左顺时针方向。

    如果要居中的元素的宽/高是不确定的,这时margin负值就不能使用具体的px了,可以使用百分比。但由于margin的百分比都是相对于包含块的宽度,所以这里限制了只能设置宽高相同的居中元素。包含块的宽度如何获得呢?利用absolute的包裹性,在需要居中的元素外面套一个空的

    元素即可。

    相关文章

      网友评论

          本文标题:深入理解css中的margin负值!

          本文链接:https://www.haomeiwen.com/subject/nwvkpftx.html