等宽的垂直按钮

Posted

技术标签:

【中文标题】等宽的垂直按钮【英文标题】:Vertical buttons with equal width 【发布时间】:2017-06-01 06:50:55 【问题描述】:

这是两个垂直排列的按钮。我需要它们的宽度相等。 我不知道:

包装的尺寸是多少; 按钮上会出现什么文字(因此我不能使用像素宽度); 按钮的宽度是多少。

按钮必须在左边。按钮上的文本必须居中对齐。我不能使用 100% 的宽度,因为它不美观 :)

我不能使用 flexbox 并指定按钮的宽度。并且将是纯 CSS 的一个很酷的解决方案。

IE8+

.wrap
    width: 100%;
    border: 1px solid red;


.btn
    height 40px;
    background-color: tomato;
    margin-bottom: 10px;
    display: block;
<div class="wrap">
  <button class="btn">small button</button>
  <button class="btn">super long button</button>
</div>

【问题讨论】:

您能解释一下“不能使用 100% 宽度,因为它不会美观”吗?谢谢 如果换行为 1000 像素,则 100% 宽度的按钮也将是 1000 像素。这不是美容设计 啊-您的意思是从设计的角度来看它看起来不太好,公平的评论:) @Pete 回答是否解决了您的问题?如果是这样,请使用投票箭头下方的勾号接受他的回答 【参考方案1】:

只需将容器内嵌块,然后将按钮设置为 100% 宽度,这样它们将采用最大按钮的宽度:

.wrap
    display: inline-block;
    border: 1px solid red;


.btn
    height 40px;
    background-color: tomato;
    margin-bottom: 10px;
    display: block;
    width:100%;
<div class="wrap">
  <button class="btn">small button</button>
  <button class="btn">super long button</button>
</div>

【讨论】:

display inline-block 占据了它里面最大元素的宽度,因此,给内部元素一个 100% 的宽度意味着它们都将是容器内最大元素的宽度跨度> 【参考方案2】:

使用inline-block 作为您的容器 div!

【讨论】:

这不是一个真正的答案,在目前的状态下,作为评论可能会更好。请添加更多详细信息和代码示例。

以上是关于等宽的垂直按钮的主要内容,如果未能解决你的问题,请参考以下文章

ElegantSnap 一个优雅的,易用的iOS/tvOS/macOS自动布局框架, 超级详细的使用教程,多视图水平等宽/垂直等高排列

垂直分布两个水平按钮行

如何在 StackView 中设置等宽或等高?

iOS 7后退按钮箭头垂直对齐

按钮文本没有在按钮中垂直居中

React中的垂直切换按钮组?