这个网站上有很多“填充可用空间”的问题,但我的问题有点特殊,因为我已经找到了解决方案,但它不适用于按钮。我想了解为什么这对按钮不起作用,以及如何使它起作用。我想这只是我需要覆盖的按钮元素的一些浏览器样式。
我在一个(固定宽度,如果重要的话)包装div中有两个浮动元素。右边的元素有固定的宽度,左边的元素应该占据剩下的任何宽度。
我可以通过将右侧元素设置为具有固定宽度和float: right
,并让左侧元素不使用任何特殊样式来实现这一点。这非常适合 div。它也适用于跨度,但前提是我设置display: block
它们。对于按钮,我根本无法让它工作。我尝试了 block、inline-block 以及width
我在 MDN 上可以找到的每个晦涩的值。
我不知道为什么我没有想到早点将按钮包装在 div 中。这是我想出的:
这涉及到overflow: hidden
盒子格式化上下文技巧(我怀疑它会在这里出现,但不太清楚该放在哪里)。强调:
- 这两个按钮被包裹在带有类 buttonWrapper 的 div 中。
- 这些 div 是根据我在上面第三段中概述的技巧进行格式化的。右 div 具有 float: right 和固定宽度,左 div 没有特殊样式。
- 我们现在应用盒子格式化上下文技巧。左边的 div 被赋予溢出:隐藏,这会导致它为右边浮动的 div 腾出空间。
- 我们现在可以对右边的 div 应用左边距,并改变它的宽度,左边的 div 将永远是正确的大小。
- div 为我们创建了所需的“填充可用宽度”效果,现在我们只需将按钮放在 div 内并给它们 100% 的高度和宽度。
- 如果它是您想要具有固定宽度的左按钮,则基本上重复上述步骤,左右交换。