гистограмма с CSS, как получить его заполнение снизу вверх, а не сверху вниз? - PullRequest
0 голосов
/ 25 января 2012

У меня есть гистограмма, использующая html и css, я использую высоту, чтобы показать сумму, которую заполняет бар. Сейчас это работает, но работает в обратном порядке, чем я хочу.При высоте: 0% планка заполнена на 100%.Я попытался изменить CSS на «bottom» вместо «top», но это ничего не дало.Как я могу изменить это так, чтобы "height: 100%" сделал его заполненным на 100%?

html:

        <div class="bars">
            <div><span style="height:0%;"></span></div>
            <div><span style="height:10%;"></span></div>
            <div><span style="height:20%;"></span></div>
            <div><span style="height:30%;"></span></div>
            <div><span style="height:40%;"></span></div>
            <div><span style="height:50%;"></span></div>
            <div><span style="height:60%;"></span></div>
            <div><span style="height:70%;"></span></div>
            <div><span style="height:80%;"></span></div>
            <div><span style="height:90%;"></span></div>
            <div><span style="height:100%;"></span></div>
            <div><span style="height:100%;"></span></div>
            <div><span style="height:90%;"></span></div>
            <div><span style="height:80%;"></span></div>
            <div><span style="height:70%;"></span></div>
            <div><span style="height:60%;"></span></div>
            <div><span style="height:50%;"></span></div>
            <div><span style="height:40%;"></span></div>
            <div><span style="height:30%;"></span></div>
            <div><span style="height:20%;"></span></div>
            <div><span style="height:10%;"></span></div>
            <div><span style="height:0%;"></span></div>
        </div>

CSS:

.bars{
    height: 48px;
    display: block;
    overflow: hidden;
    margin: 0 3px;
}

.bars div{
    background: rgb(12,88,160); /* Old browsers */
    background: -moz-linear-gradient(top,  rgba(12,88,160,1) 0%, rgba(10,52,91,1) 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(12,88,160,1)), color-stop(100%,rgba(10,52,91,1))); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top,  rgba(12,88,160,1) 0%,rgba(10,52,91,1) 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top,  rgba(12,88,160,1) 0%,rgba(10,52,91,1) 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top,  rgba(12,88,160,1) 0%,rgba(10,52,91,1) 100%); /* IE10+ */
    background: linear-gradient(top,  rgba(12,88,160,1) 0%,rgba(10,52,91,1) 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0c58a0', endColorstr='#0a345b',GradientType=0 ); /* IE6-9 */
    float: left;
    height: 100%;
    width: 8px;
    margin-right: 2px;
}

.bars div span {
    background: #233243;
    height: 0%;
    width: 100%;
    display: block;
    position: relative;
    top: 0;
}

Ответы [ 2 ]

1 голос
/ 25 января 2012

Просто укажите класс .bars div "position: absolute;"и измените CSS. div div span на «position: относительный; bottom: 0px;».

Пример здесь .

<div class="bars">
        <div><span style="height:0%;"></span></div>
        <div><span style="height:10%;"></span></div>
        <div><span style="height:20%;"></span></div>
        <div><span style="height:30%;"></span></div>
        <div><span style="height:40%;"></span></div>
        <div><span style="height:50%;"></span></div>
        <div><span style="height:60%;"></span></div>
        <div><span style="height:70%;"></span></div>
        <div><span style="height:80%;"></span></div>
        <div><span style="height:90%;"></span></div>
        <div><span style="height:100%;"></span></div>
        <div><span style="height:100%;"></span></div>
        <div><span style="height:90%;"></span></div>
        <div><span style="height:80%;"></span></div>
        <div><span style="height:70%;"></span></div>
        <div><span style="height:60%;"></span></div>
        <div><span style="height:50%;"></span></div>
        <div><span style="height:40%;"></span></div>
        <div><span style="height:30%;"></span></div>
        <div><span style="height:20%;"></span></div>
        <div><span style="height:10%;"></span></div>
        <div><span style="height:0%;"></span></div>
    </div>

CSS:

.bars{
height: 100px;
display: block;
overflow: hidden;
margin: 0 3px;
vertical-align:bottom;
}

.bars div{
background: rgb(12,88,160); /* Old browsers */
background: -moz-linear-gradient(top,  rgba(12,88,160,1) 0%, rgba(10,52,91,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(12,88,160,1)), color-stop(100%,rgba(10,52,91,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  rgba(12,88,160,1) 0%,rgba(10,52,91,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  rgba(12,88,160,1) 0%,rgba(10,52,91,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  rgba(12,88,160,1) 0%,rgba(10,52,91,1) 100%); /* IE10+ */
background: linear-gradient(top,  rgba(12,88,160,1) 0%,rgba(10,52,91,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0c58a0', endColorstr='#0a345b',GradientType=0 ); /* IE6-9 */
float: left;
height: 100%;
width: 8px;
margin-right: 2px;
position:relative
}

.bars div span {
background: #233243;
height: 0%;
width: 100%;
display: block;
position: absolute;
bottom: 0;
}
0 голосов
/ 25 января 2012

Быстрое исправление, о котором я мог подумать, - вместо того, чтобы указывать высоту в ваших пролетах, указать отрицательную верхнюю позицию

<div class="bars">
        <div><span style="top:-0%;"></span></div>
        <div><span style="top:-10%;"></span></div>
        <div><span style="top:-20%;"></span></div>
        <div><span style="top:-30%;"></span></div>
        <div><span style="top:-40%;"></span></div>
        <div><span style="top:-50%;"></span></div>
        <div><span style="top:-60%;"></span></div>
        <div><span style="top:-70%;"></span></div>
        <div><span style="top:-80%;"></span></div>
        <div><span style="top:-90%;"></span></div>
        <div><span style="top:-100%;"></span></div>
        <div><span style="top:-100%;"></span></div>
        <div><span style="top:-90%;"></span></div>
        <div><span style="top:-80%;"></span></div>
        <div><span style="top:-70%;"></span></div>
        <div><span style="top:-60%;"></span></div>
        <div><span style="top:-50%;"></span></div>
        <div><span style="top:-40%;"></span></div>
        <div><span style="top:-30%;"></span></div>
        <div><span style="top:-20%;"></span></div>
        <div><span style="top:-10%;"></span></div>
        <div><span style="top:-0%;"></span></div>
    </div>

и установить высоту CSS для всех пролетов равной 100%.

.bars div span {
    background: #233243;
    height: 100%;
    width: 100%;
    display: block;
    position: relative;
    top: 0;
}

Результат можно увидеть здесь

...