的底部我有具有以下HTML结构的产品列表:对准一些HTML元素到其父
<div class="parent">
<img src="myimg.jpg" />
<div class="title">My Title</div>
<div class="buttons"></div>
</div>
有许多家长彼此相邻。首先,我有一个问题,他们往往会是不同的高度(由于标题的长度不同)。我使用display: flex;
修正了这个问题,所以现在他们都是一样的高度。不过,我需要buttons
div坚持parent
的底部,而标题和图片应该保持在原来的位置。所以我宁愿在按钮和之前的parent
的孩子之间留有空白区域,而不是在按钮下方的底部留有空白区域。
我试图找到一个解决方案,但所有的结果导致这个CSS:
.parent { position: relative; }
.buttons { position: absolute; bottom: 0; }
这种解决方案并没有为我工作,因为那时按钮可以重叠的称号。所以,我能想到的迄今为止最好的解决办法是使用底部填充是等于按钮的高度:
.parent { display: flex; position: relative; padding-bottom: 100px; }
.buttons { position: absolute; bottom: 0; height: 100px; }
但我不知道这是否是最佳的解决方案,因为按钮的高度可能会改变或甚至是动态的。有更好的解决方案吗?
编辑:
下面是一个演示问题的代码片段。第一个父母有2个按钮,而第二个父母只有一个,这是为了 - 有些产品可能有不同数量的按钮,这就是我无法使用padding-bottom
解决方案的原因之一。
#wrap { display: flex; }
.parent { display: inline-block; position: relative; padding-bottom: 100px; width: 100px; border: 1px solid black; padding: 10px 20px 20px; margin: 0 5px 10px; }
.buttons { position: absolute; bottom: 0; height: 100px; }
.button-one { background: green; }
.button-two { background: red; }
.button-one, .button-two { margin: 15px 0 0; }
<div id="wrap">
<div class="parent">
<img src="myimg.jpg" />
<div class="title">My Title</div>
<div class="buttons">
<div class="button-one">Button one</div>
<div class="button-two">Button two</div>
</div>
</div>
<div class="parent">
<img src="myimg.jpg" />
<div class="title">My TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy TitleMy Title</div>
<div class="buttons">
<div class="button-one">Button one</div>
</div>
</div>
</div>
这是一个farily没关系的解决方案 - 它并不难修改两处值。但是,您不应该使用'px'作为单位,因为网页上的任何内容都是如此。有几个例外,但按钮不是其中之一。使用'em'或'%'。 – junkfoodjunkie
提供一个有效的例子(jsfiddle/codepen/snippet)你可以做什么 – Dekel
? – 2016-11-04 01:22:33