Home > Software engineering >  How to put 4 sets of two charts side by side on HTML?
How to put 4 sets of two charts side by side on HTML?

Time:01-25

I'm a newbie in HTML. I'm currently trying to put 4 sets of two graphs side by side on a webpage. So each set would have a graph above and below. My code is as the following:

<template>
<div class = "container">
  <div >
    <div class ="row">
            <div >
              <div >
                <h4 >Graph</h4>
                <a ><i ></i></a>                
              </div>
              <div >
                <div >
                <div ref="prpsch1" id="prpsch1" >
                </div>
              </div>
            </div>
            </div>
      </div>
    <div class ="row">
          <div >
              <div >
                <h4 >Graph</h4>
                <a ><i ></i></a>                
              </div>
              <div >
                <div >
                <div ref = "prpdch1" id="prpdch1" >
                </div>
              </div>
            </div>
          </div>
    </div>>
        </div>
  <div >
    <div class ="row">
            <div >
              <div >
                <h4 >Graph</h4>
                <a ><i ></i></a>                
              </div>
              <div >
                <div >
                <div ref="prpsch2" id="prpsch2" >
                </div>
              </div>
            </div>
            </div>
      </div>
    <div class ="row">
          <div >
              <div >
                <h4 >Graph</h4>
                <a ><i ></i></a>                
              </div>
              <div >
                <div >
                <div ref = "prpdch2" id="prpdch2" >
                </div>
              </div>
            </div>
          </div>
    </div>>
        </div>
  <div >
    <div class ="row">
            <div >
              <div >
                <h4 >Graph</h4>
                <a ><i ></i></a>                
              </div>
              <div >
                <div >
                <div ref="prpsch3" id="prpsch3" >
                </div>
              </div>
            </div>
            </div>
      </div>
    <div class ="row">
          <div >
              <div >
                <h4 >Graph</h4>
                <a ><i ></i></a>                
              </div>
              <div >
                <div >
                <div ref = "prpdch3" id="prpdch3" >
                </div>
              </div>
            </div>
          </div>
    </div>>
        </div>
  <div >
    <div class ="row">
            <div >
              <div >
                <h4 >Graph</h4>
                <a ><i ></i></a>                
              </div>
              <div >
                <div >
                <div ref="prpsch4" id="prpsch4" >
                </div>
              </div>
            </div>
            </div>
      </div>
    <div class ="row">
          <div >
              <div >
                <h4 >Graph</h4>
                <a ><i ></i></a>                
              </div>
              <div >
                <div >
                <div ref = "prpdch4" id="prpdch4" >
                </div>
              </div>
            </div>
          </div>
    </div>>
        </div>
</div>
</template>

However, webpage just every charts from top to bottom. And those charts are not even whole.

enter image description here

I want to put the 8 charts in 2 rows and 4 columns in the blank portion of the page.

How can I do it?

Thanks a lot in advance!

CodePudding user response:

<template>
    <div class = "container">
      <div >
        <div class ="col-xl-3 col-lg-6">
                <div >
                  <div >
                    <h4 >Graph</h4>
                    <a ><i ></i></a>                
                  </div>
                  <div >
                    <div >
                    <div ref="prpsch1" id="prpsch1" >
                    </div>
                  </div>
                </div>
                </div>
          </div>
        <div class ="col-xl-3 col-lg-6">
              <div >
                  <div >
                    <h4 >Graph</h4>
                    <a ><i ></i></a>                
                  </div>
                  <div >
                    <div >
                    <div ref = "prpdch1" id="prpdch1" >
                    </div>
                  </div>
                </div>
              </div>
        </div>>
            </div>
      <div >
        <div class ="col-xl-3 col-lg-6">
                <div >
                  <div >
                    <h4 >Graph</h4>
                    <a ><i ></i></a>                
                  </div>
                  <div >
                    <div >
                    <div ref="prpsch2" id="prpsch2" >
                    </div>
                  </div>
                </div>
                </div>
          </div>
        <div class ="col-xl-3 col-lg-6">
              <div >
                  <div >
                    <h4 >Graph</h4>
                    <a ><i ></i></a>                
                  </div>
                  <div >
                    <div >
                    <div ref = "prpdch2" id="prpdch2" >
                    </div>
                  </div>
                </div>
              </div>
        </div>>
            </div>
      <div >
        <div class ="col-xl-3 col-lg-6">
                <div >
                  <div >
                    <h4 >Graph</h4>
                    <a ><i ></i></a>                
                  </div>
                  <div >
                    <div >
                    <div ref="prpsch3" id="prpsch3" >
                    </div>
                  </div>
                </div>
                </div>
          </div>
        <div class ="col-xl-3 col-lg-6">
              <div >
                  <div >
                    <h4 >Graph</h4>
                    <a ><i ></i></a>                
                  </div>
                  <div >
                    <div >
                    <div ref = "prpdch3" id="prpdch3" >
                    </div>
                  </div>
                </div>
              </div>
        </div>>
            </div>
      <div >
        <div class ="col-xl-3 col-lg-6">
                <div >
                  <div >
                    <h4 >Graph</h4>
                    <a ><i ></i></a>                
                  </div>
                  <div >
                    <div >
                    <div ref="prpsch4" id="prpsch4" >
                    </div>
                  </div>
                </div>
                </div>
          </div>
        <div class ="col-xl-3 col-lg-6">
              <div >
                  <div >
                    <h4 >Graph</h4>
                    <a ><i ></i></a>                
                  </div>
                  <div >
                    <div >
                    <div ref = "prpdch4" id="prpdch4" >
                    </div>
                  </div>
                </div>
              </div>
        </div>>
            </div>
    </div>
    </template>

Try this it will definatly help..

CodePudding user response:

Using Flexbox:

.wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.graph {
  background: linear-gradient(30deg, #ccc5, #ccc, #ccc5);
  flex-basis: calc(25% - 5px);
}
<div >
  <div >Graph 1</div>
  <div >Graph 2</div>
  <div >Graph 3</div>
  <div >Graph 4</div>
  <div >Graph 5</div>
  <div >Graph 6</div>
  <div >Graph 7</div>
  <div >Graph 8</div>
</div>

You define graphs' size in flex-basis. If you use gap (like my example, you need to substract it from it).

Using Grid:
(More useful if you know beforehand the structure of your content)

.wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 500px));
  grid-gap: 5px;
}

.graph {
  background: linear-gradient(30deg, #ccc5, #ccc, #ccc5);
}
<div >
  <div >Graph 1</div>
  <div >Graph 2</div>
  <div >Graph 3</div>
  <div >Graph 4</div>
  <div >Graph 5</div>
  <div >Graph 6</div>
  <div >Graph 7</div>
  <div >Graph 8</div>
</div>

The magic happens with grid-template-columns: repeat(auto-fit, minmax(250px, 500px));. This makes your graphs responsive. It will give them 500px when the graph elements are displayed in a big screen. When you view them in a small screen and elements are going smaller, they will start autofilling below each other.

  •  Tags:  
  • Related