关于margin: auto及margin: 0 auto的一些见解

您所在的位置:网站首页 上下左右的含义 关于margin: auto及margin: 0 auto的一些见解

关于margin: auto及margin: 0 auto的一些见解

#关于margin: auto及margin: 0 auto的一些见解| 来源: 网络整理| 查看: 265

在写css时margin:auto;使用频率非常高,常用于div的居中。

何为margin?

margin是指块级元素的外边距,如下图所示,XXXXX是div中的内容,通过设置margin的值,可控制div与其他块级元素的距离

  margin设置不同数量的值时的含义

我们常看到

margin:auto;

margin: 0px auto;

margin: 10px 20px 30px 40px;

相关的语句,当margin有不同数量的值时,其含义分别是什么?

首先margin最多有4个值,按顺序为顺时针:上,右,下,左

当给margin提供4个值时,分别设置上(margin-top),右(margin-right),下(margin-bottom),左(margin-left)的值;

当给margin提供3个值时,第1个为上,第2个为左右,第3个为下;

当给margin提供2个值时,第1个为上下,第2个为左右;

当给margin提供1个值时,此值代表上下左右四个方向。

 

margin的值为auto的具体含义是什么?

auto意为自动填充。以margin:0,auto;为例,程序会自动计算剩余左右两部分的空白长度,把其等分再作为div左右的外边距。所以我们可以使用此行代码使得div居中。

 

为什么使用margin:auto;可以使div左右居中,却不能垂直居中?

我们设置两个盒子,都在里面添加margin:auto;所有代码如图所示:

div .div1 { background-color: gray; /* 背景色 */ height: 500px; /* 盒子的长宽 */ width: 600px; margin: auto; /* 居中 */ } .div2 { background-color: red; height: 200px; width: 200px; margin: auto; }

实现效果:

可看到盒子已经成功地左右居中,但并没有垂直居中。我查看了相关文档,在这里写一下个人的见解。首先理解块级元素的概念,块级元素在默认情况下会占据整行空间,即使元素宽度不是百分百占据浏览器,浏览器也会给它空出整行的空间,这也对应了外边距的设立。如果不做任何处理,下一个块级元素会另起一行。那么当写上margin:auto;时,可理解为左右尚有空缺,所以可以看到居中效果,但上下已经没有空缺了(在浏览器眼里),即margin-top和margin-bottom都自动设置为0。

在下一篇博客中会写一篇如何水平、垂直居中div的博文



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3