【问题标题】:css center floating divs horizontallycss中心浮动div水平
【发布时间】:2015-07-17 15:14:42
【问题描述】:

无论页面宽度和每行的 div 数量如何,我都希望我的页面居中浮动 div。

如果页面适合每行三个 div,并且我有四个 div,我希望第四个 div 在第一个 div 之下。如果用户使窗口更宽,则第四个 div 向上移动到第一行:

[ [div1]  [div2]  [div3]  [div4] ]


[ [div1]  [div2]  [div3] ]
[ [div4]                 ]


[  [div1]  [div2]  ]
[  [div3]  [div4]  ]

我尝试制作容器 div text-align:center 和 content divs inline-block 但这会使最后一行中的 div 像这样居中:

[ [div1]  [div2]  [div3] ]
[         [div4]         ]

这是我的代码:https://jsfiddle.net/g8L1ovj0/

【问题讨论】:

  • 你有你已经尝试过的示例代码吗?
  • 您的浮动 div 有固定宽度吗?只需从容器 div 中删除 text-align: center ,浮动 div 将按照您的需要排列。此外,您可以将 clearfix 用于您的 concainer 和 float: left 用于您的 div,或使用 flexbox
  • @Aaron 我添加了 jsfiddle 示例。
  • @dajnz 如果我删除 text-aligne: center div 将不会在页面上居中,但都会向左对齐。

标签: html css


【解决方案1】:

flexbox 可以做到这一点

.container {
  width: 80%;
  border: 1px solid grey;
  margin: 25px auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.box {
  height: 150px;
  width: 150px;
  background: #000;
  flex: 0 0 auto;
  margin: 1px;
}
<div class="container">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>

Codepen Demo

【讨论】:

  • 谢谢,这个 flexbox 对我来说是新的。看起来浏览器支持也是最近才出现的。这是css3标准还是单独的?我会再测试一些,看看它是否会破坏其他东西。
  • 这是一个不错的解决方案,但有一个问题。如果第一行有 3 个 div,第二行有 2 个 div,则第二行的第二个 div 将对齐最右边,而不是在第一行的第二个 div 下方。尝试重新调整浏览器的大小,以便在上排有 2 个以上的框,在下排有 2 个框(或更少的框)。 jsfiddle.net/abdfahim/yyr1w5kq/2
猜你喜欢
  • 1970-01-01
  • 2012-02-03
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-15
  • 2011-07-11
相关资源
最近更新 更多