.price-list { display: flex; flex-direction: column; } .price-item { width: 100%; } .price-item .name { font-size: 12px; font-weight: bold; margin-bottom: 5px; } .price-item .price { font-size: 16px; font-weight: bold; color: #f00; }
首先,大家需要将商品列表中的每个商品包裹在一个具有price-item类名的元素里面。在这个类里面,大家要定义商品名和价格的样式,以及商品项的宽度。
接下来,在商品列表列表的父元素上,大家需要定义display: flex,使它的子元素能够水平排列。默认情况下,它们会按照父元素的顺序排列。
<div class="price-list"> <div class="price-item"> <p class="name">商品1</p> <p class="price">100元</p> </div> <div class="price-item"> <p class="name">商品2</p> <p class="price">50元</p> </div> <div class="price-item"> <p class="name">商品3</p> <p class="price">80元</p> </div> </div>
最后,大家需要在JavaScript代码中利用sort()方法对商品列表进行排序。下面是一个从高到低排序的实例:
const priceList = document.querySelector('.price-list'); const priceItems = Array.from(priceList.querySelectorAll('.price-item')); priceItems.sort((a, b) => { const aPrice = parseInt(a.querySelector('.price').textContent); const bPrice = parseInt(b.querySelector('.price').textContent); return bPrice - aPrice; }); priceList.innerHTML = ''; priceItems.forEach(priceItem => priceList.appendChild(priceItem));
在这个代码中,大家首先获取商品列表的父元素和所有子元素,并将它们存储在一个数组中。然后,大家使用sort()方法对这个数组进行排序,从大到小排列。排序的标准是每个商品元素中的价格。
最后,大家使用innerHTML属性将排序好的商品列表重新渲染到父元素中。
到这里为止,大家已经完成了CSS价格排序的全部实现过程。通过上述代码,大家可以很方便地实现商品列表按照价格排序的功能,提高用户体验。