我遇到了一个关于Flexbox的问题。
我有一个最大宽度为920px的div。我希望内容框从左到右填满div的最大可能宽度,所有内容都具有相等的边距。当屏幕大小下降到每行一个框时,我希望该框在屏幕上居中。
以下是网站的运行情况:http://javinladish.com/code/index.html
如果我用途:
justify-content: center;
字符串
那么盒子就不会填满最大宽度。
如果我用途:
justify-content: space-between;
型
那么当我减少到每行一个框时,框就不会保持居中。
如何在两者之间取得平衡?即填满容器的最大宽度,并保持所有内容居中?
6条答案
按热度按时间euoag5mw1#
最好的解决方案是在flex项目的水平边距上使用
margin: auto
,如下所示:个字符
唯一的问题可能是,如果最后一行包含多个项目,但不足以填满整行,则最后一行项目之间将存在大量空间。
00jrzges2#
你好像同时在追求两种行为。我已经成功地在容器上使用了
justify-content: center
和flex-wrap: wrap
,并在子元素上设置了适当的左右边距。然后在容器上应用与负边距相同的量,子元素的边缘将与容器对齐。字符串
8fsztsew3#
justify-content: space-between;
将始终将每一行的项推开到容器的边缘。另一行上的任何元素都不会居中。我已经成功地使用了负利润率,但这意味着您需要显式地设置这些利润率:
JS Fiddle example
超文本标记语言
字符串
SCSS
型
还有一个通过
align-self
定位特定元素的选项,但我发现这在工作示例中没有用。参见this link。rxztt3cl4#
另一种方法是有一个
flex
父元素,它将所有查尔兹元素居中,然后使用margins将它们分开。如果你想让每个元素都有独立的边距,只需为每个元素创建一个特定的类。
个字符
bnl4lu3b5#
字符串
资源:https://tproger.ru/translations/how-css-flexbox-works/
c7rzv4ha6#
解决方案是在每个项目上设置相同的宽度,以便它们占据相同的空间,然后它们将按您的意愿居中。