html – 将项目堆叠在彼此之上

前端之家收集整理的这篇文章主要介绍了html – 将项目堆叠在彼此之上前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正试图抓住flex,并努力创造我追求的东西.

我想做什么

>全屏容器
>两个div元素,一个右对齐,宽度为640px,另一个左对齐,占用剩余空间

发生了什么

我的元素在屏幕的中心彼​​此叠加显示.

  1. div.flex {
  2. display: flex;
  3. flex-direction: row;
  4. flex-wrap: nowrap;
  5. justify-content: space-around;
  6. align-items: stretch;
  7. height: 100vh;
  8. }
  9. div.hero {
  10. background-size: cover;
  11. background-position: center bottom;
  12. position: relative;
  13. height: 100vh;
  14. width: 100%;
  15. margin: auto;
  16. }
  17. div.timeline {
  18. width: 640px;
  19. margin: auto;
  20. }
  21. div.header {
  22. position: absolute;
  23. top: 50%;
  24. text-align: center;
  25. width: 100%;
  26. /* color: #fff; */
  27. -ms-transform: translate(0,-50%);
  28. /* IE 9 */
  29. -webkit-transform: translate(0,-50%);
  30. /* Safari */
  31. transform: translate(0,-50%);
  32. -ms-transform: translate(0,calc(-50% - 66px));
  33. /* IE 9 */
  34. -webkit-transform: translate(0,calc(-50% - 66px));
  35. /* Safari */
  36. transform: translate(0,calc(-50% - 66px));
  37. }
  1. <div class="flex">
  2.  
  3. <div class="hero">
  4.  
  5. <!-- Header -->
  6. <div class="header">
  7. <h1>Title</h1>
  8. <h2 class="subtitle">Subtitle</h2>
  9. </div>
  10. <!-- End header -->
  11.  
  12. <!-- Timeline -->
  13. <div class="timeline">
  14. <ul class="timeline-both-side">
  15. <li>
  16. <div class="border-line"></div>
  17. <div class="timeline-description">
  18. <p>Quisque ac laoreet purus,eu dapibus ligula. Mauris nec tincidunt mi,eget finibus sem. Morbi viverra malesuada lobortis. Suspendisse sed augue luctus ex molestie convallis.</p>
  19. </div>
  20. </li>
  21. <li class="opposite-side">
  22. <div class="border-line"></div>
  23. <div class="timeline-description">
  24. <p>Lorem ipsum dolor sit amet,consectetur adipiscing elit. Sed sed erat consectetur,tempor odio sit amet,euismod sapien.</p>
  25. </div>
  26. </li>
  27. <li>
  28. <div class="border-line"></div>
  29. <div class="timeline-description">
  30. <p>Lorem ipsum dolor sit amet,euismod sapien.</p>
  31. </div>
  32. </li>
  33. <li class="opposite-side">
  34. <div class="border-line"></div>
  35. <div class="timeline-description">
  36. <p>Quisque ac laoreet purus,eget finibus sem. Morbi viverra malesuada lobortis. Suspendisse sed augue luctus ex molestie convallis.</p>
  37. </div>
  38. </li>
  39. <li>
  40. <div class="border-line"></div>
  41. <div class="timeline-description">
  42. <p>Quisque ac laoreet purus,eget finibus sem. Morbi viverra malesuada lobortis. Suspendisse sed augue luctus ex molestie convallis.</p>
  43. </div>
  44. </li>
  45. </ul>
  46. </div>
  47. <!-- End timeline -->
  48.  
  49. </div>
  50.  
  51. </div>

我如何使用flex将这两个元素(100vh)连续排在下面?

  1. +------------------------------------------+
  2. |.flex |
  3. |+-------------------------+ +------------+|
  4. ||.hero | |.timeline ||
  5. || | | ||
  6. || | | ||
  7. |+-------------------------+ +------------+|
  8. +------------------------------------------+

解决方法

简单本身.
  1. body {
  2. margin: 0;
  3. }
  4. .parent {
  5. height: 100vh;
  6. display: flex;
  7. }
  8. .hero {
  9. flex: 1;
  10. background: red;
  11. }
  12. .timeline {
  13. flex: 0 0 640px;
  14. background: green;
  15. }
  1. <div class="parent">
  2. <div class="hero"></div>
  3. <div class="timeline"></div>
  4. </div>

Codepen Demo

猜你在找的HTML相关文章