在auto
做什么margin:0 auto;
?
我似乎无法理解是什么auto
。我知道有时有时会使对象居中。谢谢。
在auto
做什么margin:0 auto;
?
我似乎无法理解是什么auto
。我知道有时有时会使对象居中。谢谢。
Answers:
在要width
应用的对象上指定a 时margin: 0 auto
,该对象将位于其父容器的中央。
指定auto
为第二个参数基本上会告诉浏览器自动确定左右边距本身,方法是将它们均等设置。它保证左右边距将设置为相同的大小。第一个参数0表示顶部和底部边距都将设置为0。
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
因此,给你一个例子,如果家长100px的和孩子是50像素,那么auto
属性将确定有之间的自由空间,以每股50像素margin-left
和margin-right
:
var freeSpace = 100 - 50;
var equalShare = freeSpace / 2;
这将给:
margin-left:25;
margin-right:25;
看看这个jsFiddle。您不必指定父对象的宽度,而只需指定子对象的宽度。
%
?我的意思是css中还有其他任何属性都可以像左,右得到相同的结果auto
margin:auto 0
情况如何?
从CSS规范中计算正常流程中块级不可替换元素的宽度和边距:
如果“ margin-left”和“ margin-right”均为“ auto”,则它们的使用值相等。这使元素相对于包含块的边缘水平居中。
通过对这两个值如何工作的一些解释将变得更加清晰。
margin属性是以下内容的简写:
margin-top
margin-right
margin-bottom
margin-left
那么,为什么只有两个值呢?
好吧,您可以使用以下四个值来表示边距:
margin: 10px, 20px, 15px, 5px;
表示顶部10像素,右侧20像素,底部15像素,左侧5像素
同样,您也可以使用两个值来表示:
margin: 20px 10px;
这样您可以在顶部和底部分别留出20px的空白,在左侧和右侧留出10px的空白。
如果您设置:
margin: 20px auto;
然后,这意味着20px的上下边距和auto的左右边距。而auto表示根据容器自动设置左右边距。如果您的元素是块类型元素,则意味着它是一个盒子并且占据了视图的整个宽度,然后自动将左右边距设置为相同,从而使元素居中。
body
,我们总是给width
和margin:0 auto
以#wrapper