Я пытаюсь использовать элементы html5 <details>
и <summary>
для представления разборного / расширяемого списка в стиле структуры, но не могу понять, как правильно отформатировать текст элемента <summary>
.
Я хочу, чтобы текст был выровнен по правому краю, а отметка времени и блок ссылок были выровнены по правому краю.Я попытался сделать это, используя flexbox для линии и делая макет внутри flexbox.Это прекрасно работает для текста в <details>
части.
Однако в итоговой строке все, что я пробовал, приводит либо к правильному форматированию текста (например, к тексту с подробностями), но и к строке нижетреугольник, или на той же линии, что и треугольник, но с выравниванием по левому краю.
Ниже приведен фрагмент, отображающий текст резюме, отформатированный правильно, но в новой строке.
.outline { background-color: #e0e0ff; margin: 30px; }
/* Styling on <details> and <summary> below provides
indentation for nested details blocks. */
details > *:not(summary) { margin-left: 1em; }
summary { display: list-item; }
.title { display: flex; }
.bsect { display: flex; }
.ttext, .ts, .actions, .btext { border: 1px solid green; }
.ttext, .btext { flex: 1; }
.ts, .actions { flex: 0; white-space:nowrap; }
pre { white-space: pre-wrap; margin: 0; font-size: 12pt }
A short title
2018-07-05 12:00
L1
L2
<!-- Following the summary are zero or more intermixed
bsect and detail blocks -->
<!--flex container-->
Some multi-line
body text.
2018-07-05 12:00
L1 L2 Изменение .title { display: flex; }
на .title { display: inline-flex; }
показывает другой результат (текст в той же строке, что и треугольник, но все выровнено по левому краю; can получаеттот же результат, используя <spans>
с вместо <div>
с):
.outline { background-color: #e0e0ff; margin: 30px; }
/* Styling on <details> and <summary> below provides
indentation for nested details blocks. */
details > *:not(summary) { margin-left: 1em; }
summary { display: list-item; }
.title { display: inline-flex; }
.bsect { display: flex; }
.ttext, .ts, .actions, .btext { border: 1px solid green; }
.ttext, .btext { flex: 1; }
.ts, .actions { flex: 0; white-space:nowrap; }
pre { white-space: pre-wrap; margin: 0; font-size: 12pt }
A short title
2018-07-05 12:00
L1
L2
<!-- Following the summary are zero or more intermixed
bsect and detail blocks -->
<!--flex container-->
Some multi-line
body text.
2018-07-05 12:00
L1 L2 Какая магия необходима, чтобы получить правильно отформатированный текст в той же строке, что и треугольник?Я бы предпочел простое решение, которое по-прежнему использует flexbox, если это возможно, но если какой-то другой подход к достижению желаемых результатов лучше, это тоже хорошо.