深入理解css中的margin负值!

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的包裹性,在需要居中的元素外面套一个空的

元素即可。


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,302评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,994评论 5 15
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,491评论 2 66
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 1,616评论 0 5
  • 天空 拜托春雨 给大地送一份 倾盆的思念 而我 在橘子树下 盛满一瓶 洗涤过的空气 摇摇 晃晃 便有了你的模样 可...
    一口好吃的嫩绿阅读 240评论 0 0

友情链接更多精彩内容