【技巧】负margin是什么玩意儿(理论)

以下内容均为个人整理的观点,一个个字码出来的,不喜勿喷

1. 前言

前言我也不知道写什么,是不是写了就感觉自己像一个大神?


biu~biu~biu~

2. margin有什么好说的?

  • 在CSS中,我们都知道使用margin来撑开两个元素之间的距离,当然主要是撑开兄弟元素的距离。
    但是一旦如果有负margin的出现,很多人的心情就变得如此糟糕,有的人特别喜欢使用它,有的人觉得它简直就是一个魔鬼呀~


    请问你是魔鬼么
  • 要不你给我说说四个方向的负margin分别对元素的影响分别是什么样子的?
    或者你想一下什么时候想要去用负margin的?

3. 大概了解一下负margin吧

  • 一个特别特别有效果的CSS设置(W3C文档也有提到)


    W3C关于负margin说明
  • 负margin不会破坏页面流,而会有人提到相对定位(position:relative),相对定位的元素移动但是原有的位置不会发生改变
    而负margin向上移动后,后边的页面流也会紧随其后。


    相对定位

    负margin元素
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <style>
       div{
           width: 100px;height: 100px; margin:10px;
       }
      .box1{
          position: relative;top: -20px;background-color: aqua;
      }
      .box2{
          background-color: red;
      }
      .box3{
          background-color: bisque;margin-top: -30px;
       }
      .box4{
           background-color: coral;
       }
   </style>
</head>
<body>
   <div class="box1">相对定位 </div>
   <div class="box2"> </div>
   <div class="box3">负margin </div>
   <div class="box4"> </div>
</body>
</html>
  • 当然还有兼容性了,IE6也不怕(懂我的意思吧)


    干掉IE6
  • 还要注意的是,我们现在说的是在正常页面流中,而不是对浮动的元素添加负margin


    加油

4.负margin什么效果?

  • 首先是静态元素的负margin


    别看我!看图

    如果设置的是top和bottom,那么元素会向如图所示的方向移动
    如果设置的是right和bottom,元素不会移动,而元素后的内容会随着箭头过来覆盖当前元素

  • 如果是两个浮动的元素呢?


    两个浮动的元素

    如果给第一个元素设置margin-right为负值,那么后边的元素就会与其发生重叠


    对第一个元素设置负margin-right

如果给第一个元素设置margin-right:-100px;也就是元素的宽度的时候,会发生完全重叠


完全重叠
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <style>
       .box1{
           width: 100px;height: 100px;background-color: coral;
           float: left;margin-right: -100px;
       }
       .box2{
           width: 100px;height: 100px;background-color: greenyellow;
           float: left;
       }
   </style>
</head>
<body>
   <div class="box1"></div>
   <div class="box2"></div>
</body>
</html>

当然,以上仅仅是很浅的理解负margin大概是什么。具体的影响还有很多很多,比如对元素大小的影响。有机会在细说~

理解以上的知识以后,我会在后来的文章中总结如何巧妙使用负magrin巧妙的进行样式制作

浅浅之谈,如果有机会,我会再行认真学习进行补充


image.png

睡了 ~ 拜拜 ~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、文档流的概念指什么?有哪些方式可以让元素脱离文档流? 文档里指元素在文档中的位置由元素在html里的位置决定,...
    dengpan阅读 556评论 0 3
  • 一、在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 在CSS当中,相...
    dengpan阅读 603评论 0 0
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,634评论 0 6
  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,714评论 0 8
  • 1.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 概念:在CSS当...
    饥人谷_任磊阅读 712评论 0 3