Div以容器中的其他元素为中心

时间:2017-07-07 15:03:27

标签: html css css3 flexbox css-position

修改:我最终选择Center and right align flexbox elements Michael_B回答方法#2

所以我有一个容器,其中有两个元素,一个红色和一个绿色框(宽度不固定)。我希望绿色盒子尽可能在容器中居中。当红色方框挡住时,绿色框就在旁边。

我知道如何做的唯一方法是将红色框设置为position: absolute,但问题是当容器变得太小时,绿色框与红色框重叠。

我只支持现代浏览器(没有IE),所以欢迎使用flexboxes和其他新东西。

感谢。

The result



.wrapper {
  width: 600px;
  height: 100px;
  text-align: center;
  position: relative;
  border: 5px solid black;
}

.wrapper+.wrapper {
  margin-top: 20px;
}

.wrapper:nth-child(2) {
  width: 500px;
}

.wrapper:nth-child(3) {
  width: 410px;
}

.align-left {
  display: inline-block;
  position: absolute;
  left: 0;
  background-color: red;
  width: 100px;
  height: 100%;
  z-index: 0;
}

.centered {
  display: inline-block;
  background-color: green;
  width: 300px;
  height: 100%;
  // so the overlap is more visual
  z-index: 1;
  position: relative;
}

<div class="wrapper">
  <div class="align-left"></div>
  <div class="centered">
  </div>
</div>

<div class="wrapper">
  <div class="align-left"></div>
  <div class="centered">
  </div>
</div>

<div class="wrapper">
  <div class="align-left"></div>
  <div class="centered">
  </div>
</div>
&#13;
&#13;
&#13;

https://jsfiddle.net/ft7z9za3/1/

0 个答案:

没有答案