2017-03-03 70 views
1

我如何对齐底部的多个div,一个在另一个上。就像下面的图片一样。在右下角对齐div div

enter image description here

+0

你尝试过使用aboslute /相对定位?另一种方法是在上面的大DIV,然后设置浮动:为您的小divs正确。 –

+0

我已经尝试绝对定位,但divs在底部重叠。我需要在另一个上设置他们 – Arman

回答

1

您可以使用Flexbox做到这一点

  1. 设置flex-direction: column到位置的div在另一个
  2. align-items: flex-end顶一个的div移动到父
  3. 的右侧
  4. justify-content: flex-end移动divs到父母的底部。

.parent { 
 
    height: 300px; 
 
    width: 200px; 
 
    border: 1px solid black; 
 
    display: flex; 
 
    flex-direction: column; 
 
    align-items: flex-end; 
 
    justify-content: flex-end; 
 

 
} 
 
.box { 
 
    width: 100px; 
 
    height: 50px; 
 
    margin: 5px; 
 
    border: 1px solid black; 
 
}
<div class="parent"> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
    <div class="box"></div> 
 
</div>

更新:要反转的div的顺序,你可以使用flex-direction: column-reversejustify-content: flex-start

.parent { 
 
    height: 300px; 
 
    width: 200px; 
 
    border: 1px solid black; 
 
    display: flex; 
 
    flex-direction: column-reverse; 
 
    align-items: flex-end; 
 
    justify-content: flex-start; 
 

 
} 
 
.box { 
 
    width: 100px; 
 
    height: 50px; 
 
    margin: 5px; 
 
    border: 1px solid black; 
 
}
<div class="parent"> 
 
    <div class="box">1</div> 
 
    <div class="box">2</div> 
 
    <div class="box">3</div> 
 
</div>

+0

谢谢!这正是我想要的! – Arman

+0

但是,这些项目的排列顺序与问题中指出的顺序相反(请参阅我的回答,查看颠倒的顺序,如问题中所示) – Johannes

+0

没有注意到,如果OP想要颠倒顺序,则可以更改为'column-reverse '和'justify-content:flex-start' https://jsfiddle.net/Lg0wyt9u/1626/ –

0

您可以使用Flexbox的使用Flex - 方向:column-reverse;flex-wrap: wrap-reverse;

.x { 
 
    width: 500px; 
 
    height: 500px; 
 
    display: flex; 
 
    flex-direction: column-reverse; 
 
    flex-wrap: wrap-reverse; 
 
    border: 1px solid red; 
 
    flex-grow: 0; 
 
    flex-basis: 0%; 
 
    } 
 
    .y { 
 
    width: 80px; 
 
    height: 80px; 
 
    border: 1px solid green; 
 
    margin: 3px; 
 
    }
<div class="x"> 
 
    <div class="y">1</div> 
 
    <div class="y">2</div> 
 
    <div class="y">3</div> 
 
    <div class="y">4</div> 
 
    <div class="y">5</div> 
 
</div>

+0

感谢您的帮助! – Arman