我正在使用带有XY网格的ZURB Foundation 6并且遇到了一个小问题,很可能是我做错了 .
我希望将元素垂直居中,以便我使用
<div class="flex-container">
<div class="grid-x grid-padding-x align-middle">
<div class="small-6 cell">Vertically Centered Left Column</div>
<div class="small-6 cell">Vertically Centered Left Column</div>
</div>
</div>
并使用jQuery我使用 windowHeight = $(window).innerHeight();
设置flex-container的高度
这些物品是垂直对齐的......但是有两个问题出现了:
small-6 cell
的宽度为50%,未被遵守,缩小到文本的大约 .
与grid-container
不同的flex-container
没有宽度或填充 .
为了解决这个问题,我添加了一些CSS,如下所示:
.flex-container .align-middle {
max-width: 62.5rem;
margin: 0 auto;
width: 100%;
}
所以当我修补这个问题时,我不禁想到必须有一种更简单的方法,一种只使用类的正确方法 . 似乎很奇怪,网格容器设置为这样做但flex-container不是 .
1 回答
这里的主要问题是,对于
flex-container
,grid-x
元素将作为自己的弹性容器,也将成为弹性行项目,具有默认的flex
项目值0 1 auto
.这意味着
grid-x
不会比其内容增长更宽,因此width: 50%
将不会对其子项(small-6
)起作用,因为它们的父级没有设置宽度 .通过添加例如
flex-child-grow
或cell
到grid-x
元素,它将填充其父级的宽度,内部的flex项目将按预期开始运行 .注1:对于
grid-container
,这不是必需的,因为它不是一个弹性容器,其中grid-x
是一个普通的div
,显示为flex
,它与block
元素一样,默认采用其父级的全宽 .注意2:
flex-container
和grid-container
的默认宽度都是100%,当它是一个弹性项目时,它是grid-x
,导致问题默认情况下没有取其父级的宽度 .堆栈代码段