我试图实现flexbox,但不能让它工作。我错过了什么?我有所有的flexbox供应商前缀到位。
.main-navigation ul {
width:100%;
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6, BB7 */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex; /* NEW - Safari 6.1+. iOS 7.1+, BB10 */
display: flex; /* NEW, Spec - Firefox, Chrome, Opera */
}
.main-navigation ul li {
justify-content:space-between;
width:100px;
background:#666;
display:block;
}
我们的目标是让最左边的li
与ul容器的左边齐平,最右边的li
与ul容器的右边齐平。
3条答案
按热度按时间2admgd591#
还有一件事要记住,除了需要将
justify-content:space-between
添加到flex容器而不是元素本身之外;确保容器中没有空元素(如空的div
或:after
)。在我的例子中,结果是一个JS添加了一个空的div作为“clearfix”,这是在flex之前的日子里发生的,当时的事情是浮动元素。
justify-content:space-between
将调整容器中的所有元素,甚至是那些没有内容的元素,这可能会打乱对齐和 Package 。wydwbb8l2#
问题是您应该在具有
display: flex
属性的元素上设置justify-content: space-between;
,或者更好地说,在'parent'上设置justify-content: space-between;
,这样'child'元素将彼此之间以空格对齐。bweufnob3#
Flex特性分为两类:* 弹性容器 * 和 * 弹性项目 *。
某些属性仅应用于容器,其他属性仅应用于项。
justify-content
属性仅适用于Flex容器。在您的代码中,
justify-content
应用于这些项,因此没有任何效果。将其重新分配给容器。
当然,一个元素可以同时是flex容器和item,在这种情况下所有属性都适用,但这里不是这样,
li
元素只是flex item,将忽略容器属性。有关按容器和项目划分的Flex属性列表,请参见:A Complete Guide to Flexbox