Я пытаюсь создать боковую панель, где в нижней части отображается список и список ссылок сверху.Сделать div взять оставшуюся высоту после того, как другой div поднимется ниже его.
- год текст должен находиться в нижней части, а его высота должна быть
auto
не абсолютные значения (например, 30px, 1em, 10% и т.д.) - Верхние ссылки должны оставаться внутри оставшейся высоты (экран высота - высота год текст).
- Когда высота ссылок превышает, должна быть предусмотрена прокрутка.
Я успешно достиг первых 2, но не 3-го. Когда высота ссылок превышает, год скрывается от экрана.
Я использовал table
для достижения того, что я указал. (Я мог бы использовать display: table
, просто лень здесь)
Я хочу, чтобы достичь этого, используя только CSS, без JavaScript.
/* Some styles */
.side-bar table {
\t color: #fff;
}
.side-bar-links {
\t background-color: #48c;
\t padding-top: 15px;
}
.side-bar-links li:nth-child(even) {
\t background-color: rgba(0,0,0,0.1);
}
.side-bar-links a {
\t display: block;
\t color: #fff;
\t padding: 5px 15px;
\t text-decoration: none;
}
.side-bar-links a:hover {
\t background-color: rgba(0,0,0,0.2);
}
.year {
\t background-color: #338;
\t font-size: 36px;
\t font-weight: 700;
\t padding: 5px 15px;
}
/* Positioning */
.side-bar {
\t position: fixed;
\t left: 0;
\t top: 0;
\t bottom: 0;
}
.side-bar table {
\t height: 100%;
\t table-layout: fixed;
}
.side-bar table tr:last-child td {
\t height: 1px;
}
.side-bar table td {
\t vertical-align: baseline;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="side-bar">
<table>
\t <tr>
\t \t <td class="side-bar-links">
\t \t \t <ul class="list-unstyled">
\t \t \t \t \t \t \t \t <li><a href="#">> Link 1</a></li>
\t \t \t \t \t \t \t \t <li><a href="#">> Link 2</a></li>
\t \t \t \t \t \t \t \t <li><a href="#">> Link 3</a></li>
\t \t \t \t \t \t \t \t <li><a href="#">> Link 4</a></li>
\t \t \t \t \t \t \t \t <li><a href="#">> Link 5</a></li>
\t \t \t \t \t \t \t </ul>
\t \t </td>
\t </tr>
\t <tr>
\t \t <td class="year">
\t \t \t <b>2016</b>
\t \t </td>
\t </tr>
</table>
</div>
Это в тысячу раз легче, если вы даете YEAR элемент фиксированную высоту. Затем вы можете сделать '.sidebar-links {height: calc (100% - [элемент высоты года]); переполнение-y: прокрутка; } ' – Dom