html – 将弹性项目固定到容器的底部

前端之家收集整理的这篇文章主要介绍了html – 将弹性项目固定到容器的底部前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有4个块,标题,描述和按钮.

我希望将标题和描述保持在顶部,并且无论描述或标题有多长,按钮都要在底部对齐.

我还需要保持相同的HTML结构.

我实际需要的示例图片

有人可以弄清楚吗?到目前为止,我还没有在互联网上找到解决办法.

  1. /* FLEXBox RELATED */
  2. .grid {
  3. display: flex;
  4. justify-content: space-between;
  5. flex-flow: row wrap;
  6. }
  7. .block {
  8. flex: 0 24%;
  9. display: flex;
  10. }
  11. .container {
  12. display: flex;
  13. flex-flow: row wrap;
  14. align-items: flex-start;
  15. }
  16. .title {
  17. flex: 0 100%;
  18. }
  19. .desc {
  20. flex: 0 100%;
  21. }
  22. .button {
  23. flex: 0 100%;
  24. align-self: flex-end;
  25. }
  26.  
  27.  
  28. /* NO FLEXBox RELATED */
  29. .block {
  30. background-color: #ccc;
  31. }
  32. .title {
  33. font-size: 2rem;
  34. font-weight: bold;
  35. padding: 0.5rem;
  36. text-align: center;
  37. }
  38. .desc {
  39. background-color: grey;
  40. padding: 0.5rem;
  41. }
  42. .button {
  43. padding: 0.5rem;
  44. color: blue;
  45. text-align: center;
  46. font-weight: bold;
  47. }
  1. <div class="grid">
  2. <div class="block">
  3. <div class="container">
  4. <div class="title">Title 1</div>
  5. <div class="desc">Description Description Description Description Description Description Description Description Description Description</div>
  6. <div class="button">Button</div>
  7. </div>
  8. </div>
  9. <div class="block">
  10. <div class="container">
  11. <div class="title">Title 2</div>
  12. <div class="desc">Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description</div>
  13. <div class="button">Button</div>
  14. </div>
  15. </div>
  16. <div class="block">
  17. <div class="container">
  18. <div class="title">Title 3</div>
  19. <div class="desc">Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description</div>
  20. <div class="button">Button</div>
  21. </div>
  22. </div>
  23. <div class="block">
  24. <div class="container">
  25. <div class="title">Title 4</div>
  26. <div class="desc">Description Description Description Description Description Description Description Description Description Description</div>
  27. <div class="button">Button</div>
  28. </div>
  29. </div>
  30. </div>

The codepen code is here

解决方法

由于您正在使用行方向Flex容器,因此无法将最后一项固定到底部.你正在处理横轴空间分布,这意味着柔性线被拉伸或打包,并且没有办法将两个项目固定到顶部和一个到底部(除非你超越flexBox并使用绝对定位).

这是一个完整的解释.

> How does flex-wrap work with align-self,align-items and align-content?

使布局工作的一种简单有效的方法是列方向容器,在最后一项上具有弹性自动边距.通过在主轴上对齐项目,您可以将各个项目分开.

以下是flex auto margin的解释:

> In CSS Flexbox,why are there no “justify-items” and “justify-self” properties?

  1. /* FLEXBox RELATED */
  2. .grid {
  3. display: flex;
  4. justify-content: space-between;
  5. flex-flow: row wrap;
  6. }
  7. .block {
  8. flex: 0 24%;
  9. display: flex;
  10. }
  11. .container {
  12. display: flex;
  13. flex-direction: column; /* new */
  14. /* flex-flow: row wrap; */
  15. /* align-items: flex-start; */
  16. }
  17. .title {
  18. /* flex: 0 100%; */
  19. }
  20. .desc {
  21. /* flex: 0 100%; */
  22. }
  23. .button {
  24. margin-top: auto; /* new */
  25. /* flex: 0 100%; */
  26. /* align-self: flex-end; */
  27. }
  28.  
  29.  
  30. /* NO FLEXBox RELATED */
  31. .block {
  32. background-color: #ccc;
  33. }
  34. .title {
  35. font-size: 2rem;
  36. font-weight: bold;
  37. padding: 0.5rem;
  38. text-align: center;
  39. }
  40. .desc {
  41. background-color: grey;
  42. padding: 0.5rem;
  43. }
  44. .button {
  45. padding: 0.5rem;
  46. color: blue;
  47. text-align: center;
  48. font-weight: bold;
  49. }
  1. <div class="grid">
  2. <div class="block">
  3. <div class="container">
  4. <div class="title">Title 1</div>
  5. <div class="desc">Description Description Description Description Description Description Description Description Description Description</div>
  6. <div class="button">Button</div>
  7. </div>
  8. </div>
  9. <div class="block">
  10. <div class="container">
  11. <div class="title">Title 2</div>
  12. <div class="desc">Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description</div>
  13. <div class="button">Button</div>
  14. </div>
  15. </div>
  16. <div class="block">
  17. <div class="container">
  18. <div class="title">Title 3</div>
  19. <div class="desc">Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description</div>
  20. <div class="button">Button</div>
  21. </div>
  22. </div>
  23. <div class="block">
  24. <div class="container">
  25. <div class="title">Title 4</div>
  26. <div class="desc">Description Description Description Description Description Description Description Description Description Description</div>
  27. <div class="button">Button</div>
  28. </div>
  29. </div>
  30. </div>

revised codepen

猜你在找的HTML相关文章