【问题标题】:How to make groups of divs the same width using only CSS?如何仅使用 CSS 使 div 组具有相同的宽度?
【发布时间】:2016-08-04 16:07:27
【问题描述】:

我有一组按钮 (div),我希望逻辑组中所有按钮的长度相同。

我可以简单地为按钮的 CSS 样式做一个min-length,但是有些按钮组很短,而另一些则很长。这使得统一的min-length 对于长组来说不够用,或者在寻找短组时浪费/愚蠢。此外,多个组(短组和长组)可以出现在同一屏幕上。

(这些 div 的样式都是display: inline-block,所以它们没有填满容器的宽度)

我已经想到了一些讨厌的解决方案,但没有一个更可取:

  • 为每个组设置一个特定的min-length
  • 使用 JavaScript 调整按钮大小

我想知道是否有针对上述问题的通用纯 CSS 解决方案,而不是使用其中任何一种方法。感谢您提供的任何帮助。


编辑:这是我目前得到的标记和 CSS。很简单:

HTML:

<div class="wrapper">
    <div class="button">Lorem ipsum</div>
    <div class="button">Lorem ipsum dolar</div>
    <div class="button">Lorem</div>
</div>

CSS:

div.button { display: inline-block; min-width: 50px; }

【问题讨论】:

  • 你能分享你的标记和你正在使用的css吗

标签: html css layout user-experience


【解决方案1】:

将类似按钮包装在具有所需宽度的容器 div 中,并将内部 div 设置为:

box-sizing: border-box;
width: 100%;

这将允许您在一处编辑逻辑分组的宽度。

【讨论】:

  • 为每个组手动指定宽度是我想要避免的事情之一(参见项目符号 #1)。
  • 如果我理解正确,您会希望以相同的方式将它们包装在容器中,而无需在该 div 上定义最小宽度。然后对于内部 div,您仍将它们设置为:box-sizing: border-box; width:100%; 容器 div 将从其子 div 的最大宽度继承其宽度,其余部分将扩展为该继承宽度。
  • 在仔细检查了我的工作后,我发现了我的错误。这个解决方案可以解决问题!谢谢!
【解决方案2】:

将它们都包装在一个容器中。

<div class="group">
    <div class="button">Hi</div>
    <div class="button">Wassup</div>
    <div class="button">Yo</div>
</div>

然后像这样应用 css:

    display:inline-block;
    min-width: 100%;

然后设置 div“组”,将这些 div 分组为您想要的宽度

【讨论】:

  • 这只是将按钮设置为容器的 100% 宽度(它本身是 100%,因为它只是 display: block)。如此短的按钮最终会浪费大量空间并在页面上延伸...
【解决方案3】:

使用最小宽度和最大宽度:

div{/*use the selector what you're using*/
  min-width: 150px;
  max-width: 350px;
  width: auto;
  display: inline-block;
}

如果你想得到一个统一的宽度,那么你必须像这样定义一个类名和样式:

.width1{
  width: 200px;
}

.width2{
  width: 300px;
}

【讨论】:

  • 这对对齐小于最大宽度的按钮没有任何作用...例如:200px & 250px。
  • 只有这样你才能做到。这会对齐较小的 div 而不是较大的 div。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-14
  • 2013-09-18
相关资源
最近更新 更多