Расположение полосок гистограммы CSS внизу элемента div

Я пытаюсь создать виджет гистограммы с помощью CSS для таблицы показателей, которую я создаю.

В приведенном ниже коде столбцы гистограммы созданы правильно, они имеют правильную высоту, но, несмотря на то, что я указал вертикальное выравнивание: снизу, столбцы выравниваются по нижней части самого длинного столбца.

Если я создам полосу со значением 100 %, все будет хорошо выровнено, но у меня не всегда будет значение 100 %.

Я пробовал несколько вещей, в том числе абсолютное позиционирование... Я продолжаю что-то путать, и это почти все, что мне удалось отобразить правильно.

Кто-нибудь знает, как выровнять планки внизу контейнера? Вот код ниже (я включил как гистограмму с высотой 100%, которая отображается правильно, так и гистограмму с высотой только 45%, которая выравнивается только по нижней части полосы 45%:

<style>
    .metrics-table {
        margin-bottom: 20px;
        white-space: nowrap;
    }
    .metrics-row {
        display: inline-block;
        margin-right: 10px;
        vertical-align: top;
    }
    .text-metric, .text-value {
        display: inline-block;
        padding: 5px;
    }
    .text-metric {
        background-color: lightskyblue;
        color: black;
        border-radius: 5px;
    }
    .histogram {
        width: auto;
        height: 28px; /* Adjust height as needed */
        background-color: lightblue;
        border: 1px solid blue;
        border-radius: 5px;
        overflow: hidden;
        display: inline-block;
        vertical-align: bottom;
        line-height: 0; /* Remove extra space below */
    }
    .histogram-bar {
        width: 10px;
        background-color: blue;
        border-radius: 5px;
        display: inline-block;
        margin-left: 0px;
        vertical-align: bottom; /* Align bars to the bottom */
    }
</style>

<div class = "metrics-table">
    <div class = "metrics-row">
        <div class = "text-metric">Histogram</div>
        <div class = "histogram">
            <div class = "histogram-bar" style = "height: 5%;"></div>
            <div class = "histogram-bar" style = "height: 15%;"></div>
            <div class = "histogram-bar" style = "height: 25%;"></div>
            <div class = "histogram-bar" style = "height: 35%;"></div>
            <div class = "histogram-bar" style = "height: 45%;"></div>
            <div class = "histogram-bar" style = "height: 100%;"></div>
        </div>
    </div>
</div>
<div class = "metrics-table">
    <div class = "metrics-row">
        <div class = "text-metric">Histogram</div>
        <div class = "histogram">
            <div class = "histogram-bar" style = "height: 5%;"></div>
            <div class = "histogram-bar" style = "height: 15%;"></div>
            <div class = "histogram-bar" style = "height: 25%;"></div>
            <div class = "histogram-bar" style = "height: 35%;"></div>
            <div class = "histogram-bar" style = "height: 45%;"></div>
        </div>
    </div>
</div>

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Одним из простых вариантов было бы добавить это:

.histogram {
    display: inline-flex;
    align-items: end;
}

.metrics-table {
    margin-bottom: 20px;
    white-space: nowrap;
}
.metrics-row {
    display: inline-block;
    margin-right: 10px;
    vertical-align: top;
}
.text-metric, .text-value {
    display: inline-block;
    padding: 5px;
}
.text-metric {
    background-color: lightskyblue;
    color: black;
    border-radius: 5px;
}
.histogram {
    width: auto;
    height: 28px; /* Adjust height as needed */
    background-color: lightblue;
    border: 1px solid blue;
    border-radius: 5px;
    overflow: hidden;
    vertical-align: bottom;
    line-height: 0; /* Remove extra space below */
    display: inline-flex;
    align-items: end;
}
.histogram-bar {
    width: 10px;
    background-color: blue;
    border-radius: 5px;
    display: inline-block;
    margin-left: 0px;
    vertical-align: bottom; /* Align bars to the bottom */
}
<div class = "metrics-table">
    <div class = "metrics-row">
        <div class = "text-metric">Histogram</div>
        <div class = "histogram">
            <div class = "histogram-bar" style = "height: 5%;"></div>
            <div class = "histogram-bar" style = "height: 15%;"></div>
            <div class = "histogram-bar" style = "height: 25%;"></div>
            <div class = "histogram-bar" style = "height: 35%;"></div>
            <div class = "histogram-bar" style = "height: 45%;"></div>
            <div class = "histogram-bar" style = "height: 100%;"></div>
        </div>
    </div>
</div>
<div class = "metrics-table">
    <div class = "metrics-row">
        <div class = "text-metric">Histogram</div>
        <div class = "histogram">
            <div class = "histogram-bar" style = "height: 5%;"></div>
            <div class = "histogram-bar" style = "height: 15%;"></div>
            <div class = "histogram-bar" style = "height: 25%;"></div>
            <div class = "histogram-bar" style = "height: 35%;"></div>
            <div class = "histogram-bar" style = "height: 45%;"></div>
        </div>
    </div>
</div>

Спасибо, именно то, что я искал. Я пробовал flex, но не так. Отлично сработало, спасибо большое

Youn Elan 07.05.2024 04:46

Другие вопросы по теме