CSS进阶--负margin技术


负margin技术

当margin取值为负数时,margin对普通文档流元素和对浮动元素的影响是不一样的。其中,margin对普通文档流元素的影响,可以分为以下两种情况:

  • 当元素的margin-top或者margin-left为负数时,“当前元素”会被拉向指定方向。
  • 当元素的margin-bottom或者margin-right为负数时,“后续元素”会被拉向指定方向。

对于浮动元素,我们只需要比普通文档流元素多考虑一点,那就是浮动元素的“流动方向”。

负margin技巧

图片与文本对齐

当图片与文本放到一起的时候,它们在底部水平方向上往往都是不对齐的。这是因为在默认情况下,图片与周围的文本是基线对齐,也就是vertical-align:baseline。如果想让它们在底部水平方向上对齐,有两种方法:一种是使用vertical-align:text-bottom;另一种是使用负margin技术。

默认情况下,图片与文字在底部水平方向上是不对齐的。我们在CSS中添加:

img{
	margin:0 3px -3px 0;
    }

自适应两列布局

自适应两列布局,指的是在两列布局中,其中一列的宽度是固定的,而另外一列宽度自适应。如果使用浮动来做的话,只能实现固定的左右两列布局,并不能实现其中一列为自适应的布局。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title></title>
    <style type="text/css">
        #main,#sidebar
        {
            float: left;
            color: white;
        }
        #main
        {
            width: 100%;
            background-color: red;
            margin-right: -200px;
        }
        #sidebar
        {
            width: 200px;
            background-color: blue;
           
        }
        /* 防止浏览器可视区域宽度不足时发生文本重叠 */
        #main p {margin-right: 210px;}
    </style>
    <script>
       
    </script>
</head>

<body>
   <div id="main"><p>这是主体部分,自适应宽度</p></div>
   <div id="sidebar"><p>这是侧边栏部分,固定宽度</p></div>
</body>

</html>

元素垂直居中

想要实现块元素的垂直居中,一般来说比较麻烦,不过有一个经典的方法就是使用position结合负margin来实现:首先,给父元素写上position:relative,这样做是为了给子元素添加position:absolute的时候不会定位到外太空去;然后给子元素添加如下属性:

父元素{
        position: relative;
      }
子元素{
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: “height值一半的负值”;
        margin-left: “width值一般的负值”;
      }

tab选项卡

具体技巧就是使用margin-top:-1px消除tab选项卡的下边框。


文章作者: QT-7274
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 QT-7274 !
评论
  目录