Я пытаюсь создать фиксированный верхний колонтитул, фиксированный нижний колонтитул с разделом между ними. Промежуточный раздел получит полосу прокрутки, если содержимое не умещается на экране. После большого разочарования мне удалось правильно отрисовать основной макет без использования таблиц:
.main-container {
width: 50%;
height: 98vh;
flex-direction: column;
display: flex;
}
.main-container .main-view {
width: 100%;
overflow-y: scroll;
flex: 1 1 auto;
}
.main-container .top-bar {
width: 100%;
flex: 0 0 1em;
text-align: center;
}
.main-container .bottom-bar {
width: 100%;
flex: 0 0 1em;
}
.special {
display: inline;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<div class="main-container">
<div class="main-container top-bar">
SOMETHING FIXED HERE
</div>
<div class="main-container main-view">
<span class="special">Lorem</span><span class="special">ipsum</span> dolor sit amet, consectetur adipiscing elit. Pellentesque magna tellus, dictum et luctus ac, laoreet vel justo. Cras at pretium lectus. Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Suspendisse potenti. Maecenas tincidunt efficitur neque, eu elementum purus tincidunt vel. Nunc id dolor bibendum, pharetra erat in, pretium lorem. Donec vitae nulla et lacus porta scelerisque. Praesent blandit, nibh nec vulputate
semper, arcu odio scelerisque velit, at rhoncus lacus dui luctus sapien. Donec venenatis erat libero, vitae lobortis velit finibus ut.
</div>
<div class="main-container bottom-bar" id="bottom-bar">
SOMETHING FIXED HERE
</div>
</div>
</body>
</html>
Однако элементы в средней области правильно отображаются только в том случае, если они не заключены в какой-либо тег. Как только я помещаю их в div или span, браузер (как минимум Chrome) настаивает на том, чтобы каждый тег занимал всю строку. Они не отображаются рядом, как я ожидал.
Я попытался создать «специальный» класс, как указано в приведенном выше примере, который я применил как к div, так и к диапазону. Оба дают одинаковый результат: «Lorem» и «ipsum» появляются в отдельных строках, а не бок о бок. Я пробовал разные вещи из других вопросов о переполнении стека на несколько связанных тем, включая «float: left» и дополнительное вложение с использованием «display: flex».
Я просто хочу применить некоторые стили и, возможно, сделать некоторые элементы интерактивными. Для этого их нужно обернуть чем-то вроде div или span. Кто-нибудь знает, как я могу заставить его отображать их рядом, а не каждый тег в отдельной строке?