HTML - 使行内 block 元素看起来很小,但看起来很大

标签 html css layout

我有一组行内 block 元素(其中 4 个),全部排成一排。重新调整窗口大小时,元素换行到第二行,依此类推。在浏览器达到最宽的最小宽度之前,它们不会在底部引起滚动条。

这是我正在寻找的“小 Action ”部分。

至于“看起来很大”,我希望元素看起来在它们的行上占据尽可能多的空间。

我要寻找的最终结果是,当所有四个都位于垂直行中时,它们的宽度都相同 - 即最宽元素的宽度。当一行中有 X 个元素,另一行中有 Y(也许第三行中有 Z?我希望能够随着时间的推移添加更多元素。),每行中的元素应该展开,以便它们的行与最宽的行。

在我尝试实现此目的时,我注意到一旦开始包装,用于包含它们的收缩包装 div 就会占据其最大宽度。

希望这可以在适度无黑客攻击的情况下实现,但我愿意接受任何建议。

我真的很想避免使用 javascript,但如果需要的话,请不要犹豫。

A Fiddle.

fiddle 中的代码

<style>
.centerParent {
  text-align: center;
  background-color: white;
  border: 1px solid black;
}

.shrinkwrap {
  display: inline-block;
  margin: 0px 12px;
  border: 1px solid blue;
}

span {
  display: inline-block;
  padding: 4px 12px;
  margin: 6px;
  border: 1px solid black;
}
</style>
<!--Master div for centering children-->
<div class="centerParent">
  <p>
    other content
  </p>
  <!-- ShrinkWrap Container -->
  <div class="shrinkwrap">
    <span>MotherDuck</span>
    <span>Duckling The First</span>
    <span>Duck2</span>
    <span>JackInTheBox</span>
  </div>
  <p>
    -- resize left right --
  </p>
</div>

非常感谢大家!

最佳答案

除了@Error404 的回答之外,如果您希望每个元素根据其各自的内容调整大小和增长/扩展,请使用 flex: 1 0 auto;

.centerParent {
  text-align: center;
  background-color: white;
  border: 1px solid black;
}
.shrinkwrap {
  display: flex;
  flex-wrap: wrap;
  margin: 0px 12px;
  border: 1px solid blue;
}
span {
  flex: 1 0 auto;
  padding: 4px 12px;
  margin: 6px;
  border: 1px solid black;
}
<!--Master div for centering children-->
<div class="centerParent">
  <p>
    other content
  </p>
  <!-- ShrinkWrap Container -->
  <div class="shrinkwrap">
    <span>MotherDuck</span>
    <span>Duckling The First</span>
    <span>Duck2</span>
    <span>JackInTheBox</span>
  </div>
  <p>
    -- resize left right --
  </p>
</div>

关于HTML - 使行内 block 元素看起来很小,但看起来很大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37301387/

相关文章:

javascript - 在网页上截取 Adob​​e flash 播放器的屏幕截图

css - 使用 div 和 css 的背景图像透明度问题

html - 删除背景并放置新背景

html - 导航栏一直隐藏它下面的内容

javascript - 通过a标签中的jquery函数设置点击时某些div的高度

jquery - 如何使用 jQuery 比较两个值?

javascript - 如何使用JS创建并行Bootstrap列?

css - 折纸效果

Android:实现联系人应用程序布局

html - 如何仅使用 css 在 html 中为低罗马有序列表样式着色?