前端教程Web前端之路前端开发那些事

小Tip:margin负值详解

2017-02-27  本文已影响289人  不二很纯洁
MARGIN

先看看 margin

margin: CSS外补白,外边距,是从自身边框到另一个容器边框之间的距离。

四个方向:
简写:

<br />

margin负边距

margin为 正值 时,元素在 文档中所占位置 是从border之外向四周 扩展 的,而为 负值 时,则是向内 收缩 的(图2)。

  1. 正值的时候,元素所占的位置向周围扩散了20px

    图1
  2. 这是负值,可以看到,第二个元素实际 所占的位置 已经少了20px,反映在页面就是,元素2向左偏移了20px

    图2
  3. 当偏移大于自身宽度的时候,自身将不再 占有位置 ,后续的元素会无视他(就当没有你这个兄弟!)(图3左负值,图4右负值)

    图3
    图4
  4. 但是,当元素没有固定宽度的时候(或者 width:auto;),负值会增加自身宽度!看图,两边露出来了!这是要逆天啊,有木有!

    图5
  5. 仔细看就会发现,margin只是对元素在 文档中所占的位置 产生影响,正值扩大负值缩小,记住这点,咱们就可以做很多有意思的东西。

<br />

实例

  <style type="text/css">
    .box{
        width:600px;
        height:600px;
        margin:20px;
        border:1px solid #000;
        position:relative;
    }
    .con{
        width:200px;
        height:200px;
        background-color:red;
        position:absolute;
        left:50%;
        top:50%;
        margin:-100px 0 0 -100px;
    }
  </style>
  <body>
      <div class="box">
          <div class="con"></div>
      </div>
  </body>


图8
 这个利用负值介绍中的第四条(当元素没有固定宽度的时候(或者 **width:auto;**),负值会增加自身宽度),会特别简单,看代码

    <style type="text/css">
    .box{
        width:800px;
        margin:20px;
        border:1px solid #000;
        overflow:hidden;
    }
    .box ul{
        overflow:hidden;
        margin-right:-20px;
    }
    .box ul li{
        float:left;
        width:185px;
        height:240px;
        text-align:center;
        line-height:240px;
        color:#fff;
        margin:0 20px 20px 0;
        background-color:red;
    }
    </style>
    <body>
      <div class="box">
          <ul>
              <li>1</li>
              <li>2</li>
              <li>3</li>
              <li>4</li>
              <li>5</li>
              <li>6</li>
              <li>7</li>
              <li>8</li>
              <li>9</li>
              <li>10</li>
              <li>11</li>
              <li>12</li>
          </ul>
      </div>
    </body>



先这么多,待续...

有不明白的可以留言☺

上一篇 下一篇

猜你喜欢

热点阅读