对齐文本和图像

问题描述:

我遇到了特定部分的问题。期望的目标是,它看起来像this对齐文本和图像

而我得到this

.timeline { 
    text-align: center; 
} 

#about-us { 
    ul { 
     &:before { 
      position: absolute; 
      top: 0; 
      bottom: 0; 
      left: 50%; 
      width: 2px; 
      margin-left: -1.5px; 
      content: ''; 
      background-color: #f1f1f1; 
      z-index: -1; 
     } 
    } 
    img { 
     width: 150px; 
     height: 150px; 
     border-radius: 50%; 

    } 
} 

.timeline-img { 
    border: 7px solid #f1f1f1; 
    border-radius: 50%; 
    text-align: center; 
    display: inline-block; 
} 

.timeline-1, 
.timeline-3 { 
    .timeline-info { 
     float: left; 
     width: 45%; 
     text-align: right; 
    } 
} 

.timeline-2, 
.timeline-4 { 
    .timeline-info { 
     float: right; 
     width: 45%; 
     text-align: left; 
    } 
} 

此外,最后的灰线溢出一点点,我不能使它只要最后一个图像。

+0

你是不是用引导的网格系统呢?我现在正在使用网格系统开发解决方案。 –

可以使用一些引导类的至reverse flow

使用.flex-row设置一个水平方向(浏览器默认值),或.flex-row-reverse开始从相对侧上的水平方向上。

  • HTML可能更新
<ul class="timeline"> 
    <li class="timeline-1 d-flex flex-row-reverse"></li> 
    <li class="timeline-2 d-flex"></li> 
    <li class="timeline-3 d-flex flex-row-reverse"></li> 
    <li class="timeline-4 d-flex"></li> 
    <li class="timeline-5 "></li> 
</ul> 

然后,您可以添加一个伪填补宽度相同的timeline-info一个空的空间:

  • CSS可能的更新
.timeline li:before { 
    content:''; 
    width: 45%; 
} 

https://codepen.io/gc-nomade/pen/gxJvBj

+0

感谢您的解答,我刚刚得到了几个问题: 1.如果'.timeline li:before'的宽度为45%,并且.timeline-info的宽度相同,这意味着剩下10% ,那它去哪了?它是图像div吗?因为我试图给出所提到的元素50%的宽度,并且imgs没有突破到下一行。 2.我注意到图像已经失去了8px左右的宽度。当我将第一个问题中提到的元素的宽度从45%减少到40%时,imgs恢复了全宽,但略偏离中心。 45%是糖果还是其他东西? – KestVir

+1

@KestVir最好将flex:1设置为timeline-info和:before(https://codepen.io/gc-nomade/pen/gxJvBj更新),并且忘记宽度,浏览器将处理它,他们将共享中心图像不会使用的均匀空间。这是典型的flex事物,它是灵活的:)当你设置静态值时,浏览器将尝试调整,元素可以扩展,缩小或溢出 –