【问题标题】:Equal height columns with absolutely positioned elements具有绝对定位元素的等高列
【发布时间】:2013-07-04 01:59:06
【问题描述】:

我有一个包含一些内容和一个按钮的无序列表。列(LI)并不总是相同的高度,但我希望按钮始终位于底部。我正在使用 display: table / display: table-cell 技巧来保持 LI 的高度相同,但是我无法让按钮正确对齐。我想要底部的按钮,但我也希望它的行为像内容一样。这意味着我希望它居中并在调整浏览器大小时更改它的宽度。

这是一个演示问题的小提琴。

http://jsfiddle.net/mattymess/BBuqY/

这是一段代码,展示了我是如何做到等高的......

.rewards .rewards-chooser {
  margin: 0;
  border-top: 2px solid #f4f4f4;
  border-bottom: 2px solid #f4f4f4;
  display: table;
  width: 100%;
  position: relative;
}
.rewards .reward {
  width: 25%;
  border-left: 2px solid #f4f4f4;
  list-style: none;
  display: table-cell;
}

【问题讨论】:

  • 不会将magin-left:-25%; 更改为margin-left:-50%; for .rewards .reward .redeem 为您执行此操作吗?除非我误解了..

标签: html css


【解决方案1】:

.rewards .reward .redeem 类中将position: absolute; 更改为position: relative;,如下所示:

.rewards .reward .redeem {
    position: relative;
    bottom: 0;
    box-sizing: border-box;
}

仅供参考:您的按钮是相对于某物(您的容器)而言的,而不是绝对的。

要将按钮设置在同一行,您应该为容器范围定义一个高度。像这样的:

.reward-description {
    height: 200px;
}

我为你做了一个干净的例子。要查看,click here (jsFiddle)

【讨论】:

  • 这个解决方案的问题是每个块可能不总是相同的高度,因为内容不同。当它只有 2 行副本时,我不想强​​制块为 400px 高。基本上,我希望所有块都与最高块一样高,这将由其中的内容量定义。这就是我使用display: table-cell 的原因
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-20
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多