(Если вы просто хотите сделать это, диаграммы Google будут намного быстрее и проще - но если вы хотите учиться, это звучит как довольно крутой маленький проект.)
Похоже, у вас в основном проблемы с HTML / CSS.
Я бы выбрал <div>
для этого, так как <table>
имеет больше багажа с браузерами для настройки ширины, границ и т. Д. <div>
в значительной степени чистый лист. Я бы проигнорировал все лишние строки в вашем примере изображения (сначала, во всяком случае) и сосредоточился бы на создании столбцов разной ширины с линиями для макс и мин.
HTML:
<div class="row">
<div class="value">5873</div>
<div class="min">3049</div>
<div class="max">6039</div>
</div>
CSS:
div {
height: 20px; /* You'll want all of the heights to match */
}
div.value {
position: absolute; /* All of the inner divs are positioned absolute so they overlap eachother */
-moz-box-shadow: inset 0 0 10px #aaa; /* basic inset shadow for some dimension - you could make it look however u like with some work */
-webkit-box-shadow: inset 0 0 10px #aaa;
box-shadow: inset 0 0 10px #aaa;
}
div.min,
div.max {
position: absolute;
text-indent: -999em;
border-right: 2px solid #000; /* This becomes the indicator for the min/max */
}
В javascript вы захотите установить ширину всех div.value
, div.max
и div.min
в зависимости от их текстовых значений, например:
$('div.value, div.min, div.max').each(function(){
$(this).width($(this).text() / 100);
});
Я пропускаю много деталей здесь, но, надеюсь, это поможет. Удачи!