Другая сетка при использовании XMLHttpRequest в js

#javascript #html #css

Вопрос:

Если бы я использовал данные, зафиксированные в HTML-файле, он показал бы 4 столбца/ поля подряд. Если бы я использовал данные, полученные из API, используя метод XMLHttpRequest, он показал бы 4 столбца. это может быть проблема css или проблема js, но я, похоже, не могу найти ее решение, и я надеялся, что кто-нибудь сможет решить эту проблему. Заранее спасибо!

HTML

 <section class="product" id="product">
    <h1 class="heading">latest <span>products</span></h1>
    <div class="box-container">
        <div id="fourfoodproducts"></div>
    </div>
</section>
 

CSS

 .product .box-container .box{
  flex:1 1 30rem;
  text-align: center;
  padding:2rem;
  border:.1rem solid rgba(0,0,0,.3);
  border-radius: .5rem;
  overflow: hidden;
  position: relative;
}
 

JS

 function GetTopsixFoods() {
    var baseurl = "https://something.herokuapp.com/products";
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", baseurl, true);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState === 4 amp;amp; xmlhttp.status === 200) {
            var product = JSON.parse(xmlhttp.responseText);

            //main table content we fill from data from the rest call
            var main = "";
            for (i = 0; i < 4; i  ) {
                main  = ` 
            

                <div class="box">
                <span class="discount">${product[i].Discount}</span>
                <div class="icons">
                    <a href="#" class="fas fa-heart"></a>
                    <a href="#" class="fas fa-share"></a>
                    <a href="#" class="fas fa-eye"></a>
                </div>
                <img src="${product[i].Image}" alt="">
                <h3>natural butter</h3>
                <div class="stars">
                    <i class="fas fa-star"></i>
                    <i class="fas fa-star"></i>
                    <i class="fas fa-star"></i>
                    <i class="fas fa-star"></i>
                    <i class="fas fa-star-half-alt"></i>
                </div>
                <div class="price"> $10.50 <span> $13.20 </span> </div>
                <div class="quantity">
                    <span>quantity : </span>
                    <input type="number" min="1" max="1000" value="1">
                    <span> /kg </span>
                </div>
                <a href="#" class="btn">add to cart</a>
            </div>
                
                `
            }
            var tbl = main;
            document.getElementById("fourfoodproducts").innerHTML = tbl;
        }
    };
    xmlhttp.send();
}
 

Большое спасибо, что прочитали все это!