我在div中有一些卡片,希望它们在悬停时改变宽度,但是有两个问题:
这是我的密码
body {
background-color: #333;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.cardBox {
width: 800px;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
background-color: rgb(200, 201, 202);
padding: 20px;
overflow: hidden;
}
.card {
height: 450px;
background-color: #fff;
width: 100%
}
.card:hover {
width: 450px;
transition: all 1s ease;
}
.card:hover~ :not(:hover) {
width: 100%;
transition: all 1s ease;
}
.card img {
width: 100%;
height: 90%;
}
.card span {
text-transform: uppercase;
color: rgb(41, 40, 40);
font-weight: 600;
letter-spacing: 1.2px;
font-size: 20px;
display: block;
text-align: center;
line-height: 30px;
}<div class="cardBox">
<div class="card">
<!-- <img src="/1.jpg" alt=""> -->
<span>CSS</span>
</div>
<div class="card">
<!-- <img src="/3.jpg" alt=""> -->
<span>image</span>
</div>
<div class="card">
<!-- <img src="/2.jpg" alt=""> -->
<span>hover</span>
</div>
<div class="card">
<!-- <img src="/4.jpg" alt=""> -->
<span>effect</span>
</div>
</div>
发布于 2022-10-12 11:34:07
body {
background-color: #333;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.cardBox {
width: 800px;
display: flex;
gap: 20px;
background-color: rgb(200, 201, 202);
padding: 20px;
overflow: hidden;
}
.card {
height: 450px;
background-color: #fff;
width: 100%;
flex: 1;
}
.card:hover {
width: 450px;
transition: all 1s ease;
flex: 4;
}
.card:hover~ :not(:hover) {
width: 100%;
transition: all 1s ease;
}
.card img {
width: 100%;
height: 90%;
}
.card span {
text-transform: uppercase;
color: rgb(41, 40, 40);
font-weight: 600;
letter-spacing: 1.2px;
font-size: 20px;
display: block;
text-align: center;
line-height: 30px;
}<div class="cardBox">
<div class="card">
<!-- <img src="/1.jpg" alt=""> -->
<span>CSS</span>
</div>
<div class="card">
<!-- <img src="/3.jpg" alt=""> -->
<span>image</span>
</div>
<div class="card">
<!-- <img src="/2.jpg" alt=""> -->
<span>hover</span>
</div>
<div class="card">
<!-- <img src="/4.jpg" alt=""> -->
<span>effect</span>
</div>
</div>
发布于 2022-10-12 11:36:06
问题是网格显示和错误的css选择器(.card:hover~ :not(:hover))。另外,在选择器中不要使用转换:悬停选择器。
body {
background-color: #333;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.cardBox {
width: 800px;
/* display: grid;
grid-template-columns: repeat(4, 1fr); */
display: flex;
gap: 20px;
background-color: rgb(200, 201, 202);
padding: 20px;
overflow: hidden;
}
.card {
height: 450px;
background-color: #fff;
/* width: 100% */
width: 25%;
transition: all 1s ease;
}
.card:hover {
width: 450px;
/* transition: all 1s ease; */
}
/* .card:hover~ :not(:hover) {
width: 100%;
transition: all 1s ease;
} */
.card img {
width: 100%;
height: 90%;
}
.card span {
text-transform: uppercase;
color: rgb(41, 40, 40);
font-weight: 600;
letter-spacing: 1.2px;
font-size: 20px;
display: block;
text-align: center;
line-height: 30px;
}<div class="cardBox">
<div class="card">
<!-- <img src="/1.jpg" alt=""> -->
<span>CSS</span>
</div>
<div class="card">
<!-- <img src="/3.jpg" alt=""> -->
<span>image</span>
</div>
<div class="card">
<!-- <img src="/2.jpg" alt=""> -->
<span>hover</span>
</div>
<div class="card">
<!-- <img src="/4.jpg" alt=""> -->
<span>effect</span>
</div>
</div>
https://stackoverflow.com/questions/74041007
复制相似问题