如何在父容器没有宽度的情况下居中对齐浮动 div?

发布于 2024-12-16 01:24:26 字数 656 浏览 3 评论 0原文

我知道以前曾有人问过类似的问题,但我还没有见过父 div 的宽度未知且有明确答案的问题。

情况是这样的。

<style>
.parent {
   width: 100%;
}

.child {
  width: 300px;
  float: left;
}

</style>

<div class="parent>
  <div class="child></div>
  <div class="child></div>
  <div class="child></div>
  <div class="child></div>
  <div class="child></div>
  <div class="child></div>
  ...
  <div class="child></div>
<div>

基本上,我想在父容器中容纳用户屏幕分辨率可以支持的尽可能多的子 div。

我不想使用 css3 媒体查询,因为我想支持 IE7。

我尝试使用 javascript 指定父级的宽度,但这并不理想,因为内容在加载后会跳转到中心。有什么想法吗?

I know similar questions have been asked before but I haven't seen one where the parent div has an unknown width with a definitive answer.

So here's the situation.

<style>
.parent {
   width: 100%;
}

.child {
  width: 300px;
  float: left;
}

</style>

<div class="parent>
  <div class="child></div>
  <div class="child></div>
  <div class="child></div>
  <div class="child></div>
  <div class="child></div>
  <div class="child></div>
  ...
  <div class="child></div>
<div>

Basically, I want to fit as many child divs in the parent container as the user's screen resolution can support.

I don't want to use css3 media queries because I want to support IE7.

I tried using javascript to specify a width to the parent but it's not ideal as the content jumps to the center after it loads. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

往日情怀 2024-12-23 01:24:26

只需使用 display:inline-block; 而不是 float: left; ,对于 .parent 使用 text-align: center

Just use display:inline-block; instead of float: left; and for .parent use text-align: center.

新雨望断虹 2024-12-23 01:24:26

这是最接近的解决方案,不使用 javascript。
正是 display:inline-block; 使 div 侧边栏同时处于中心位置。我尝试将 .parent 转换为 display:table-cell; 但没有成功。因此需要使用实际的 来实现强大的居中行为。

http://jsfiddle.net/Dgdhr/

已编辑:http://jsfiddle.net/Dgdhr/1 (没有表格:感谢 MartinodF)

<table width="100%">
<tr>
<td align="center">   
          <div class="child">1</div>
          <div class="child">2</div>
          <div class="child">3</div>
          <div class="child">4</div>
          <div class="child">5</div>
          <div class="child">6</div>   
</td>
</tr>
</table>

.child {
    width: 100px;
    height:100px;
    margin:10px;
    display:inline-block;
    background:#e0e0e0;
}

This is the nearest solution without the use of javascript.
It is display:inline-block; that makes divs side bar side and being in center at the same time. I've try turning .parent into display:table-cell; but didn't work. So need to use the actual <table> for the powerful centering behavior.

http://jsfiddle.net/Dgdhr/

Edited: http://jsfiddle.net/Dgdhr/1 (without table: thanks to MartinodF)

<table width="100%">
<tr>
<td align="center">   
          <div class="child">1</div>
          <div class="child">2</div>
          <div class="child">3</div>
          <div class="child">4</div>
          <div class="child">5</div>
          <div class="child">6</div>   
</td>
</tr>
</table>

.child {
    width: 100px;
    height:100px;
    margin:10px;
    display:inline-block;
    background:#e0e0e0;
}
懒猫 2024-12-23 01:24:26

使用罗马答案我以此结束。我的父 div 内的所有 div 都会居中,因此您不需要设置子类。

.parent{
    text-align: center;
}

.parent div{
    display: inline-block;
}

Using Roman answer I ended with this. All div inside my parent div will center, so you dont need to set child class.

.parent{
    text-align: center;
}

.parent div{
    display: inline-block;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文