利润率最高:自动和利润率最低:自动达到0利润率背后的理由是什么



由于margin-right: automargin-left: auto将元素水平居中,我希望它们的垂直对应部分也能以相同的方式工作。

然而,我知道这并没有发生,根据CSS规范:

10.6.2内联替换元件、正常流程中的块级替换元件、常规流程中的"内联块"替换元件和浮动替换元件

如果"margin-top"或"margin-bottom"为"auto",则使用的值为0。

也适用于区块元素:

10.6.3当"溢流"计算为"可见"时,正常流量中的块级未更换元件

当"溢出"未计算为"可见"但已传播到视口时,本节也适用于正常流中的块级未替换元素。

如果"margin-top"或"margin-bottom"为"auto",则使用的值为0。

现在我想知道的是,这个决定/行为背后的理由。

我所寻求的是理解和信念。我不认为一个含糊的解释就能做到,但任何贡献都是受欢迎的。

如上所述:

啊哈。。。这不是那么晦涩!我看得出来它很有用。谢谢你在jsfiddle上举的例子。

因此,如果一个元素相对于父元素是绝对定位的,同时使用topbottom,但它的height是定义的,并且小于父元素的高度减去topbottom偏移,那么margin属性将用于确定它相对于父元素的垂直对齐,而margin:auto将产生垂直居中的元素。

的确,这听起来很复杂,但在jsfiddle上却很清楚。

例如,这个CSS:

.inner { 
  position:absolute; 
  top:0; bottom: 20px; left:0; right:0px;
  padding:0; border:0;
  margin:auto;
  height:20px; width:50px;
}

和这个HTML:

<div class=外部><div class=内部>文本<div><div>

最新更新