В настоящее время я пытаюсь создать вертикальную временную шкалу (как в истории разработчиков stackoverflow).
Требования следующие:
- Временная шкала не должна просто изменять элементы слева и справа и не оставлять пространство на противоположной стороне (не нравится это или this)
- Левый и правый элементы должны заполнить оставшееся пространство, если необходимо (как здесь, к сожалению, порядок элементов не сохраняется после содержимого элемент становится длиннее)
- Порядок элементов должен быть таким же, как и в предоставленной структуре DOM, поэтому пункты, которые должны быть первыми, должны быть первыми на временной шкале
Итак, на первом этапе я просто хотел проверить, как выравнивать элементы соответственно слева или справа.
Это то, что у меня есть:
.timeline {
width: 100%;
}
.timeline-item {
box-sizing: border-box;
width: 50%;
position: relative;
float: left;
clear: left;
padding-left: 20px;
margin: 1px 0 1px;
background: tomato;
}
.timeline-item.inverse {
float: right;
clear: right;
background: grey;
}
/* Just used to show the middle point alignment */
.timeline-item::after {
content: '';
height: 2px;
width: 10px;
background: DarkGrey;
position: absolute;
top: 50%;
right: 0;
}
.timeline-item.inverse::after {
left: 0;
background: DarkRed;
}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript" ></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js" type="text/javascript" ></script>
<div class="timeline">
<div class="timeline-item">
<p>
1 This is some sample text (multiline)
<br>This is some sample text
<br>This is some sample text
<br>This is some sample text
<br>This is some sample text
<br>This is some sample text
<br>This is some sample text
<br>This is some sample text
<br>This is some sample text
</p>
</div>
<div class="timeline-item inverse">
<p>
2 This is some sample text
</p>
</div>
<div class="timeline-item inverse">
<p>
3 This is some sample text
</p>
</div>
<div class="timeline-item">
<p>
4 This is some sample text
</p>
</div>
</div>