zoukankan      html  css  js  c++  java
  • 用margin还是用padding?(3)—— 负margin实战

    看过一篇文章是关于我知道你不知道的负Margin,里面对margin做了总结:

    当margin四个值都为正数值的话,那么margin按照正常逻辑同周围元素产生边距。当元素margin的top和left是负值时会引起元素的向上或向左位置移动。而当元素margin的bottom和right是负值时会影响右边和下边相邻元素的参考线。

    接下来就讲在实际开发中用到的几个比较常用的负margin实例:

    1、bootstrap框架的栅格系统是一个亮点,它就用了负margin来完美的解决了container 和 row 之间的外边距问题,具体实现如下

    其中,container设置了水平方向上的padding,使其内部内容不会接触到浏览器的边界,大小为15px,就是图片中粉红色的部分;特别注意里面嵌套的row有一个特殊的地方,就是左右各有-15px的margin,就是图片中的蓝色部分,这样就抵消了container的水平方向的15px的padding,千万记住要把row放到container的内部,这样才能保证正常。

    2、多列等高布局——使用正padding和负margin对冲实现多列布局方法

    这个方法就是,在所有列中使用正的上下padding,和负的上下margin,并在所有列外面加上一个容器,并设置overflow:hidden把溢出背景切掉。

     1 <html>
     2 <head>
     3 <meta charset="utf-8">
     4 <style type="text/css">
     5 * {
     6   margin:0;
     7   padding:0;
     8   border:0;
     9 }
    10 
    11 #container {
    12 margin: 0 auto;
    13  overflow: hidden;
    14  width: 960px;
    15  }
    16 
    17  .column {
    18  background: #ccc;
    19  float: left;
    20  width: 200px;
    21 margin-right: 5px;
    22 margin-bottom: -99999px;
    23  padding-bottom: 99999px;
    24  }
    25 
    26  #content {
    27  background: #eee;
    28  }
    29 
    30  #right {
    31  float: right;
    32 margin-right: 0;
    33  }
    34 
    35 </style>
    36 </head>
    37 
    38 <body>
    39 
    40 <div id="container" >
    41   <div id="left" class="column aside" >
    42   <p>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br>Sidebar<br></p>
    43   </div>
    44   <div id="content" class="column section" >
    45   <p>Main content </p>
    46   </div>
    47   <div id="right" class="column aside" >
    48   <p>Sidebar</p>
    49   </div> 
    50 </div>
    51 
    52 </body>
    53 </html>
    View Code
  • 相关阅读:
    Docker+Nginx 部署Vue+Element前端项目
    MySql取字段逗号分隔的第一个
    Mysql数据库中从表字段中存储了主表以逗号隔开的主键ID,现需求查询从表数据以及以逗号隔开的字段改为主表名称隔开(group_count() find_in_set())
    IIS 错误500.21解决方法
    IIS 出现500.19 错误处理解决方式
    Linux中vim的三种模式
    Centos7 .Net Core 使用Supervisor守护进程,进行后台运行
    Nginx反代理ASP.NET Core项目
    C# vb .net实现圆角矩形特效滤镜
    C# vb .net实现旋转特效滤镜
  • 原文地址:https://www.cnblogs.com/olivianate/p/5330365.html
Copyright © 2011-2022 走看看