【发布时间】:2020-03-26 23:47:23
【问题描述】:
我想制作这样的布局,如果可能的话,使用 CSS Grid,但对其他可能性持开放态度:
基本上,我想要一个包含 3 个元素(输入、btn1、btn2)的容器.grid。首先,btn1 和 btn2 的宽度应该相同,并且取决于哪个元素需要更多空间(即更长的内容)。在那之后,剩下的元素(输入)应该把剩下的全部拿走。我想出了这个 sn-p 但肯定它不能工作。
.grid {
display: grid;
grid-template-columns: auto 1fr 1fr;
}
<div class="grid">
<input />
<button>Foo</button>
<button>Bar Bar Bar</button>
</div>
什么是仅使用 CSS 实现此目的的好方法?
【问题讨论】:
-
我对可能的答案很感兴趣,但如果不将两个按钮嵌套在一个共享的祖先中,我个人无法看到这是如何实现的(演示:jsfiddle.net/davidThomas/ph7ub2nk)。
-
@DavidsaysreinstateMonica 这确实是我认为答案会使用的,但我仍然希望看到没有它的聪明解决方案。
-
javascript 需要检查按钮的宽度才能开始,平均的 CSS 折衷可能是:
grid-template-columns: minmax(auto,3fr) 1 fr 1fr;这是 CSS 会在这里做的最多的事情。 -
@DavidsaysreinstateMonica 那个演示很聪明,即使有嵌套!
-
js 想法:codepen.io/gc-nomade/pen/XWbyEZm 如果结构保持不变;)(这里没有javascript标签,所以只是评论)