Search code examples
javascriptcsspositionheight

CSS 'height' value going downwards instead of upwards


I am using javascript to generate a simple bar graph. I want to get the bars going up instead of down. How can I do this?

Note that the mainContainer is referencing a div in the HTML and that I am only adding styles with javascript.

var sampleData = [2, 8, 4, 5, 7, 3];

var mainContainer = document.querySelector(".graphite-container");

var addColumns = function(data) {
  for (i = 0; i < data.length; i++) {
    var column = document.createElement("div");
    column.className = "graphite-column";
    column.Id = 'column-' + (i + 1);
    column.innerHTML = column.Id;
    var columnValue = '';
    columnValue += (data[i] * 25) + 'px';
    $(column).css({
      "display": "inline-block",
      "height": columnValue,
      "background-color": "blue"
    });
    $(mainContainer).append(column);
  }
};

addColumns(sampleData);

Solution

  • You need to set vertical-align:bottom; to columns.

    var sampleData = [2, 8, 4, 5, 7, 3];
    
    var mainContainer = document.querySelector(".graphite-container");
    
    var addColumns = function(data) {
      for (i = 0; i < data.length; i++) {
        var column = document.createElement("div");
        column.className = "graphite-column";
        column.Id = 'column-' + (i + 1);
        column.innerHTML = column.Id;
        var columnValue = '';
        columnValue += (data[i] * 25) + 'px';
        $(column).css({
          "display": "inline-block",
          "height": columnValue,
          "background-color": "blue",
          "vertical-align": "bottom"
        });
        $(mainContainer).append(column);
      }
    };
    
    addColumns(sampleData);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="graphite-container"></div>