#javascript #html #css #layout
Вопрос:
Пожалуйста, помогите мне ….я слежу за видео на YouTube, и я создаю корзину, и я получаю данные из локального хранилища, и я хочу показать данные следующим образом: «изображение книги» и название должны быть под «НАЗВАНИЕМ» цена под ЦЕНОЙ Количество Под количеством и итого Под ИТОГОМ… Но я выставляю вещи друг под другом… как показано на прикрепленном изображении, введите описание изображения здесь, когда я использую свойство Display:flex; я получаю все результаты в одной строке, например, если у меня на 2,0 r больше результатов, я хочу, чтобы они были в отдельной строке….Пожалуйста, помогите
Это мой Html
<body>
<form id="form1" runat="server">
<header>
<div class="overlay">
<nav>
<h2>shop</h2>
<ul>
<li class="nav-item">
<asp:LinkButton ID="btnCart" class="btncart" runat="server">CART<span class="cartspan" style="color:lightslategrey"> 0</span></asp:LinkButton>
</li>
</ul>
</nav>
</div>
</header>
<div class="products-container">
<div class="product-header">
<h5 class="product-title"> TITLE</h5>
<h5 class="price">PRICE</h5>
<h5 class="quantity">QUANTITY</h5>
<h5 class="total">TOTAL</h5>
</div>
<div class="products"></div>
</div>
</form>
<script src="MyCustomJS/AddToCart.js"></script>
</body>
это стиль
.conatiner,.products-container{
display:flex;
justify-content:center;
flex-wrap:wrap;
margin-top:50px;
padding-bottom:100px;
}
.products-container {
max-width:650px;
justify-content:space-around;
margin:0 auto;
margin-top:50px;
}
.product-header{
width:100%;
max-width:650px;
display:flex;
justify-content:flex-start;
border-bottom:4px solid lightgrey;
margin:0 auto;
}
.product-title{
width:45%;
}
.price{
width:15%;
display:flex;
align-items:center;
}
.quantity{
width:30%;
border-bottom:1px solid lightgrey;
display:flex;
align-items:center;
}
.total{
width:10%;
border-bottom:1px solid lightgrey;
display:flex;
align-items:center;
}
.product{
width:45%;
max-width:650px;
display:flex;
justify-content:space-around;
align-items:center;
padding:10px 0;
border-bottom:1px solid lightgrey;
}
Это одно из применений JS
function displayCart()
{
let cartItems = localStorage.getItem('ProductsinCart');
cartItems = JSON.parse(cartItems);
let productContainer = document.querySelector(".products")
if(cartItems amp;amp; productContainer)
{
productContainer.innerHTML = '';
Object.values(cartItems).map(item => {
productContainer.innerHTML = `
<div class="product">
<img src="./imagesForCart/${item.tag}.jpg">
<span>${item.name}</span>
</div>
<div class="price">${item.price}.00 </div>
<div class="quantity">${item.inCart} </div>
<div class="total">${item.inCart * item.price} </div>`
});
}
}
Комментарии:
1.
.price !==pricce
так<div class="pricce">
что проигнорируем это правило css2. да, я изменил его на цену, но проблема еще не решена
3.
.products-container
установленоflex
wrap
значение, но я полагаю, что свойство по умолчаниюcolumn
равно, поэтому наследование, вероятно, играет определенную роль и заставляет эти элементы вставляться в макет столбца.
Ответ №1:
я изменился
.products{
width:100%;
max-width:650px;
display:flex;
justify-content:flex-start;
margin:0 auto;
border-bottom:1px solid lightgrey;
}
.product{
width:45%;
}
и <div class="price">$${item.price}.00 </div>
Комментарии:
1. спасибо за ваш ответ, но, брат, при этом все данные строк объединяются в одну строку ….
2. вам нужно создать рабочий фрагмент для этого, если вам нужен быстрый результат.