css+js实现自适应商品列表数据分类筛选效果代码
代码语言:html
所属分类:响应式
代码描述:css+js实现自适应商品列表数据分类筛选效果代码
代码标签: css js 自适应 商品 列表 数据 分类 筛选
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
@import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;500&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");
html {
font-family: "Open Sans", sans-serif;
font-weight: 300;
min-height: 100vh;
width: 100vw;
font-size: 16px;
box-sizing: border-box;
}
html * {
box-sizing: inherit;
}
body {
display: flex;
flex-direction: column;
flex: 0 0 100%;
margin: 0;
background: #f5f5f5;
align-items: center;
justify-content: flex-start;
padding: 0 1.5rem;
}
.filters,
.products {
margin: 2rem auto;
padding: 0;
width: 1100px;
max-width: 100%;
}
.filters {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 1rem;
}
.filter {
all: unset;
appearence: none;
cursor: pointer;
color: #222;
opacity: 0.35;
font-weight: 500;
transition: 0.2s ease;
}
.filter:hover, .filter:focus {
opacity: 0.7;
}
.filter.is-active {
opacity: 1;
}
.products {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
grid-auto-rows: auto;
gap: 1.5rem;
position: relative;
}
.product {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 0.5rem;
overflow: hidden;
position: relative;
text-decoration: none;
color: #222;
will-change: opacity, visibility, transform;
transition-property: opacity, visibility;
transition-duration: 350ms;
transition-timing-function: ease;
}
.product:hover, .product:focus {
outline: none;
text-decoration: none;
}
.product:hover .product__image-inner, .product:focus .product__image-inner {
transform: scale(1.1, 1.1);
filter: grayscale(0);
}
.product.is-hidden {
position: absolute;
visibility: hidden;
opacity: 0;
}
.product__image {
position: relative;
margin-bottom: 0.5rem;
overflow: hidden;
width: 100%;
aspect-ratio: 1/1;
}
.product__image-inner {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
-o-object-fit: cover;
object-fit: cover;
-o-object-position: 50% 50%;
object-position: 50% 50%;
filter: grayscale(0.7);
transition: 0.2s ease;
}
.product__name {
font-size: 1.125rem;
font-weight: 500;
margin: 0;
line-height: 1;
}
.product__rating {
display: flex;
line-height: 1;
font-size: 1.5rem;
font-family: "Material Symbols Outlined";
font-variation-settings: "FILL" 0, "wght" 100, "GRAD" 200, "opsz" 48;
}
.product__rating span {
display: contents;
}
.product__rating span::before {
content: "star";
color: #787878;
}
.product__rating[value="1"] span:nth-child(1) ~ span::before {
opacity: 0.25;
}
.product__rating[value="2"] span:nth-child(2) ~ span::before {
opacity: 0.25;
}
.product__rating[value="3"] span:nth-child(3) ~ span::before {
opacity: 0.25;
}
.product__rating[value="4"] span:nth-child(4) ~ span::before {
opacity: 0.25;
}
.product__rating[value="5"] span:nth-child(5) ~ span::before {
opacity: 0.25;
}
.product__price {
margin: 0;
font-weight: 500;
}
</style>
</head>
<body>
<div class="filters">
<button class="filter" data-filter="Best Sellers">Best Sellers</button>
<button class="filter" data-filter="New Arrivals">New Arrivals</button>
<button class="filter" data-filter="Hot Sales">Hot Sales</button>
</div>
<div class="products">
<a class="product" href="" data-filter="New Arrivals,New Arrivals">
<div class="product__image"><img class="product__image-inner" src="https://images.unsplash.com/photo-1560769629-975ec94e6a86?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=764&q=80" /></div>
<h4 class="product__name">Some Cool Shoes</h4>
<data class="product__rating" value="5"><span></span><span></span><span></span><span></span><span></span></data>
<p class="product__price">$65.99</p>
</a>
<a class="product" href="" data-filter="Hot Sales,Best Sellers">
<div class="product__image"><img class="product__image-inner" src="https://images.unsplash.com/photo-1483103068651-8ce44652c331?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8" /></div>
<h4 class="product__name">Super Dope Hat</h4>
<data class="product__rating" value="3"><span></span><span></span><span></span><span></span><span></span></data>
<p class="product__price">$38.99</p>
</a>
<a class="product" href="" data-filter="New Arrivals,Hot Sales">
<div class="product__image"><img class="product__image-inner" src="https://images.unsplash.com/photo-1585751092218-cea84c1ecf01?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format" /></div>
<h4 class="product__name">Radical Tie-dye Shirt</h4>
<data class="product__rating" value="4"><span></span><span></span><span></span><span></span><span></span></data>
<p class="product__price">$65.99</p>
</a>
<a class="product" href="" data-filter="New Arrivals,Hot Sales">
<div class="product__image"><img class="product__image-inner" src="https://images.unsplash.com/photo-1632226390535-2f02c1a93541?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=764&q=80" /></div>
<h4 class="product__name">Very Suave Vest</h4>
<data class="product__rating" value="5"><span></span><span></span><span></span><span></span><span></span></data>
<p class="product__price">$65.99</p>
</a>
<a class="product" href="" data-filter="Hot Sales,New Arrivals">
<div class="product__image"><img class="product__image-inner" src="https://images.unsplash.com/photo-1542272604-787c3835535d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format" /></div>
<h4 class="product__name">Basci Denim Pants</h4>
<data class="product__rating" value="2"><span></span><span></span><span></span><span></span><span></span></data>
<p class="product__price">$45.99</p>
</a>
<a class="product" href="" data-filter="Hot Sales,New Arrivals">
<div class="product__image"><img class="product__image-inner" src="https://images.unsplash.com/photo-1590316519564-ebeeca222a95?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8NHx8aG9vZGllfGVufDB8fDB8fA%3D%3D&auto" /></div>
<h4 class="product__name">DJ Hoodie</h4>
<data class="product__rating" value="5"><span></span><span></span><span></span><span></span><span></span></data>
<p class="product__price">$79.99</p>
</a>
<a class="product" href="" data-filter="Best Sellers,New Arrivals">
<div class="product__image"><img class="product__image-inner" src="https://images.unsplash.com/photo-1560769629-975ec94e6a86?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=764&q=80" /></div>
<h4 class="product__name">Some Cool Shoes</h4>
<data class="product__rating" value="5"><span></span><span></span><span></span><span></span><span></span></data>
<p class="product__price">$65.99</p>
</a>
<a class="product" href="" data-filter="Best Sellers,Best Sellers">
<div class="product__image"><img class="product__image-inner" src="https://images.unsplash.com/photo-1483103068651-8ce44652c331?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8" /></div>
<h4 class="product__name">Super Dope Hat</h4>
<data class="product__rating" value="3"><span></span><span></span><span></span><span></span><span></span></data>
<p class="product__price">$38.99</p>
</a>
<a class="product" href="" data-filter="Hot Sales,New Arrivals">
<div class="product__image"><img class="product__image-inner" src="https://images.unsplash.com/photo-1585751092218-cea84c1ecf01?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format" /></div>
<h4 class="product__name">Radical Tie-dye Shirt</h4>
<data class="product__rating" value="4"><span></span><span></span><span></span><span></span><span></span></data>
<p class="product__price">$65.99</p>
</a>
<a class="product" href="" data-filter="Hot Sales,New Arrivals">
<div class="product__image"><img class="product__image-inner" src="https://images.unsplash.com/photo-1632226390535-2f02c1a93541?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=764&q=80" /></div>
<h4 class="product__name">Very Suave Vest</h4>
<data class="product__ratin.........完整代码请登录后点击上方下载按钮下载查看
网友评论0